summaryrefslogtreecommitdiff
path: root/gcc/loop.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1998-07-17 14:46:06 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1998-07-17 14:46:06 +0000
commit1d322a970556023c6ef430b2617c126fefb1e9d2 (patch)
treeadf0dd2a995e73cabb5b041099bb2f890e671cc9 /gcc/loop.h
parent0e9ea1e384fd35916e7b2771f5589e7200c99ff4 (diff)
downloadgcc-1d322a970556023c6ef430b2617c126fefb1e9d2.tar.gz
* loop.h (struct induction): Add no_const_addval.
* loop.c (the_movables, reg_address_cost): New variables. (init_loop): Init reg_address_cost. (loop_optimize): Call end_alias_analysis. (scan_loop): Init the_movables. (record_giv): Init induction->no_const_addval. (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==. [REG]: Rearrange loop search test to catch more cases. (general_induction_var): Return success not benefit; take an extra argument for that. Change all callers. (simplify_giv_expr) [PLUS]: Always combine invariants. Use sge_plus. [MULT]: Use rtx_equal_p instead of ==. Combine simple invariants. [default]: Search the_movables for additional combinations. (sge_plus_constant, sge_plus): New functions. (express_from_1): New function. (express_from): Always define. Rewrite using express_from_1. (combine_givs_p): Handle more cases. Ignore address cost. (cmp_combine_givs_stats): New function. (combine_givs_used_once, combine_givs_benefit_from): New functions. (combine_givs): Rewrite to do best-fit combination. * fold-const.c (operand_equal_p): Handle RTL_EXPR. (fold): Do a complete (A*C)+(B*C) association check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21263 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop.h')
-rw-r--r--gcc/loop.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/loop.h b/gcc/loop.h
index 25c16f0d89b..6851aa78f0d 100644
--- a/gcc/loop.h
+++ b/gcc/loop.h
@@ -95,6 +95,7 @@ struct induction
unsigned unrolled : 1; /* 1 if new register has been allocated and
initialized in unrolled loop. */
unsigned shared : 1;
+ unsigned no_const_addval : 1; /* 1 if add_val does not contain a const. */
int lifetime; /* Length of life of this giv */
int times_used; /* # times this giv is used. */
rtx derive_adjustment; /* If nonzero, is an adjustment to be