diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2003-09-27 19:18:25 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2003-09-27 17:18:25 +0000 |
commit | e8226879d081098068ec39a204094449e38f3595 (patch) | |
tree | 69c65bf4228b0815d726602917430e7ecd31d590 /gcc/loop.h | |
parent | c003e212ead438407d7968c2ada135f90307a8be (diff) | |
download | gcc-e8226879d081098068ec39a204094449e38f3595.zip gcc-e8226879d081098068ec39a204094449e38f3595.tar.gz gcc-e8226879d081098068ec39a204094449e38f3595.tar.bz2 |
re PR rtl-optimization/12340 (loop unroller + gcse produces wrong code)
PR optimization/12340
* loop.h (struct induction): Document the new semantics
of the 'same' field for bivs.
* unroll.c (biv_total_increment): Don't count the same
biv increment several times.
(loop_iterations) [GENERAL_INDUCT]: Likewise.
From-SVN: r71859
Diffstat (limited to 'gcc/loop.h')
-rw-r--r-- | gcc/loop.h | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -148,9 +148,12 @@ struct induction based on the same biv. For bivs, links together all biv entries that refer to the same biv register. */ - 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 nonzero. */ + struct induction *same; /* For givs, if the giv has been combined with + another giv, this points to the base giv. + The base giv will have COMBINED_WITH nonzero. + For bivs, if the biv has the same LOCATION + than another biv, this points to the base + biv. */ 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 |