diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-07-17 14:46:06 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-07-17 14:46:06 +0000 |
commit | 1d322a970556023c6ef430b2617c126fefb1e9d2 (patch) | |
tree | adf0dd2a995e73cabb5b041099bb2f890e671cc9 /gcc/loop.h | |
parent | 0e9ea1e384fd35916e7b2771f5589e7200c99ff4 (diff) | |
download | gcc-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.h | 1 |
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 |