summaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-08 15:07:57 +0000
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-08 15:07:57 +0000
commit9ccaa77450992f7503ae612552439a9931444933 (patch)
tree0ebeefa37492fc33063a9f55bc090391a092d0fd /gcc/target.h
parent328a94247b97ce93b288726a460b9227f6cb6656 (diff)
downloadgcc-9ccaa77450992f7503ae612552439a9931444933.tar.gz
2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
Wolfgang Gellerich <gellerich@de.ibm.com> Implement target hook for loop unrolling * target.h (loop_unroll_adjust): Add a new target hook function. * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise. * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it. * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it. (s390_loop_unroll_adjust): Implement the new target hook for s390. * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll target hook (decide_unroll_stupid): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158132 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target.h')
-rw-r--r--gcc/target.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h
index 41ae3e3e812..e4e82a3dcbd 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -97,6 +97,9 @@ struct _dep;
/* This is defined in ddg.h . */
struct ddg;
+/* This is defined in cfgloop.h . */
+struct loop;
+
/* Assembler instructions for creating various kinds of integer object. */
struct asm_int_op
@@ -637,6 +640,9 @@ struct gcc_target
/* Return true if the target supports conditional execution. */
bool (* have_conditional_execution) (void);
+ /* Return a new value for loop unroll size. */
+ unsigned (* loop_unroll_adjust) (unsigned nunroll, struct loop *loop);
+
/* True if the constant X cannot be placed in the constant pool. */
bool (* cannot_force_const_mem) (rtx);