aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-02-05 14:38:32 +0000
committerJeff Law <law@gcc.gnu.org>1999-02-05 07:38:32 -0700
commit5f3db57e5223051200369d2f799d49119ac24b32 (patch)
tree02c9bfa56c1e0180e91d432e214da935d14be972 /gcc/loop.c
parentd33c2956a4cce7a752b6326ea2f5ad5b2d12e259 (diff)
downloadgcc-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.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index abf90ce..29ef980 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -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++;