diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-02-05 14:38:32 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-02-05 07:38:32 -0700 |
commit | 5f3db57e5223051200369d2f799d49119ac24b32 (patch) | |
tree | 02c9bfa56c1e0180e91d432e214da935d14be972 /gcc/loop.c | |
parent | d33c2956a4cce7a752b6326ea2f5ad5b2d12e259 (diff) | |
download | gcc-5f3db57e5223051200369d2f799d49119ac24b32.zip gcc-5f3db57e5223051200369d2f799d49119ac24b32.tar.gz gcc-5f3db57e5223051200369d2f799d49119ac24b32.tar.bz2 |
loop.c (strength_reduce): Clear not_every_iteration when passing the NOTE_INSN_LOOP_CONT note.
* loop.c (strength_reduce): Clear not_every_iteration when
passing the NOTE_INSN_LOOP_CONT note.
From-SVN: r25050
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 18 |
1 files changed, 14 insertions, 4 deletions
@@ -3824,8 +3824,13 @@ strength_reduce (scan_start, end, loop_top, insn_count, { /* At the virtual top of a converted loop, insns are again known to be executed each iteration: logically, the loop begins here - even though the exit code has been duplicated. */ - if (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_VTOP && loop_depth == 0) + even though the exit code has been duplicated. + + Insns are also again known to be executed each iteration at + the LOOP_CONT note. */ + if ((NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_VTOP + || NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_CONT) + && loop_depth == 0) not_every_iteration = 0; else if (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_BEG) loop_depth++; @@ -4381,8 +4386,13 @@ strength_reduce (scan_start, end, loop_top, insn_count, { /* At the virtual top of a converted loop, insns are again known to be executed each iteration: logically, the loop begins here - even though the exit code has been duplicated. */ - if (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_VTOP && loop_depth == 0) + even though the exit code has been duplicated. + + Insns are also again known to be executed each iteration at + the LOOP_CONT note. */ + if ((NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_VTOP + || NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_CONT) + && loop_depth == 0) not_every_iteration = 0; else if (NOTE_LINE_NUMBER (p) == NOTE_INSN_LOOP_BEG) loop_depth++; |