diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-02-03 12:48:48 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-02-03 12:48:48 +0000 |
commit | 3a7923efe1b5bf98ba371307d3d56c859ae5da67 (patch) | |
tree | 2745f7a520daf446daec4f2acf8993d311d58f60 /gcc/loop.h | |
parent | 15fe599b11d86f1a5497a0325c4535aded4dd140 (diff) | |
download | gcc-3a7923efe1b5bf98ba371307d3d56c859ae5da67.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25007 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop.h')
-rw-r--r-- | gcc/loop.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/loop.h b/gcc/loop.h index f183b9e8fe5..50279bb09ec 100644 --- a/gcc/loop.h +++ b/gcc/loop.h @@ -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)); |