diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1999-02-03 12:48:48 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1999-02-03 12:48:48 +0000 |
commit | 4d87f7a77cbb3865e5cc0aca0a900b324012254d (patch) | |
tree | 2745f7a520daf446daec4f2acf8993d311d58f60 /gcc/loop.h | |
parent | 6ebec6eed47e4066484b19d0bc9f44d739562d1e (diff) | |
download | gcc-4d87f7a77cbb3865e5cc0aca0a900b324012254d.zip gcc-4d87f7a77cbb3865e5cc0aca0a900b324012254d.tar.gz gcc-4d87f7a77cbb3865e5cc0aca0a900b324012254d.tar.bz2 |
loop.h (express_from): Declare.
* loop.h (express_from): Declare.
(struct induction): Replace derived flag with derived_from pointer.
* loop.c (strength_reduce, record_giv, recombine_givs): Likewise.
(express_from): No longer static.
* unroll.c (find_splittable_givs): Replace derived with derived_from.
When processing an address giv with which another giv has been
combined that has also been derived from a third giv, handle like
having combined with the third giv.
Set splittable_regs_updates appropriately for derived givs.
From-SVN: r25007
Diffstat (limited to 'gcc/loop.h')
-rw-r--r-- | gcc/loop.h | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -101,8 +101,6 @@ struct induction initialized in unrolled loop. */ unsigned shared : 1; unsigned no_const_addval : 1; /* 1 if add_val does not contain a const. */ - unsigned derived : 1; /* For a giv, 1 if we decided to derive this - giv from another one. */ int lifetime; /* Length of life of this giv */ rtx derive_adjustment; /* If nonzero, is an adjustment to be subtracted from add_val when this giv @@ -115,6 +113,8 @@ struct induction struct induction *same; /* If this giv has been combined with another giv, this points to the base giv. The base giv will have COMBINED_WITH non-zero. */ + struct induction *derived_from;/* For a giv, if we decided to derive this + giv from another one. */ HOST_WIDE_INT const_adjust; /* Used by loop unrolling, when an address giv is split, and a constant is eliminated from the address, the -constant is stored here @@ -226,6 +226,7 @@ extern int first_increment_giv, last_increment_giv; int invariant_p PROTO((rtx)); rtx get_condition_for_loop PROTO((rtx)); void emit_iv_add_mult PROTO((rtx, rtx, rtx, rtx, rtx)); +rtx express_from PROTO((struct induction *, struct induction *)); /* Forward declarations for non-static functions declared in stmt.c. */ void find_loop_tree_blocks PROTO((void)); |