loop.c (strength_reduce): Clear not_every_iteration when passing the NOTE_INSN_LOOP_C...
authorJeffrey A Law <law@cygnus.com>
Fri, 5 Feb 1999 14:38:32 +0000 (14:38 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 5 Feb 1999 14:38:32 +0000 (07:38 -0700)
        * loop.c (strength_reduce): Clear not_every_iteration when
        passing the NOTE_INSN_LOOP_CONT note.

From-SVN: r25050

gcc/ChangeLog
gcc/loop.c

index f503136bb2061f9c501a9879fdd17a4da814eeff..1fdb2f0f21a36058ce3522bf75c08c4d291d9b67 100644 (file)
@@ -9,6 +9,9 @@ Fri Feb  5 11:49:49 1999  Benjamin Kosnik  <bkoz@loony.cygnus.com>
 
 Fri Feb  5 12:37:05 1999  Jeffrey A Law  (law@cygnus.com)
 
+       * loop.c (strength_reduce): Clear not_every_iteration when 
+       passing the NOTE_INSN_LOOP_CONT note.
+
        * haifa-sched.c (add_dependence): Do not add a dependency on a
        note.
 
index abf90cea5434939d8b72b4cec8883169e328d14a..29ef980ab9aa4993c9b500966ed87ef3f27bc376 100644 (file)
@@ -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++;