OSDN Git Service

* unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Jul 2002 17:37:58 +0000 (17:37 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Jul 2002 17:37:58 +0000 (17:37 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55877 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/unroll.c

index 42ffe44..13ed48e 100644 (file)
@@ -1,3 +1,7 @@
+Tue Jul 30 11:21:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.
+
 2002-07-30  Kazu Hirata  <kazu@cs.umass.edu>
 
        * fold-const.c: Fix comment typos.
index 85fd5d2..85dff19 100644 (file)
@@ -2258,15 +2258,15 @@ copy_loop_body (loop, copy_start, copy_end, map, exit_label, last_iteration,
        {
          /* VTOP notes are valid only before the loop exit test.
             If placed anywhere else, loop may generate bad code.
-            There is no need to test for NOTE_INSN_LOOP_CONT notes
-            here, since COPY_NOTES_FROM will be at most one or two (for cc0)
-            instructions before the last insn in the loop, and if the
-            end test is that short, there will be a VTOP note between
-            the CONT note and the test.  */
+            Although COPY_NOTES_FROM will be at most one or two (for cc0)
+            instructions before the last insn in the loop, COPY_NOTES_FROM
+            can be a NOTE_INSN_LOOP_CONT note if there is no VTOP note,
+            as in a do .. while loop.  */
          if (GET_CODE (insn) == NOTE
              && NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED
              && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK
-             && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_VTOP)
+             && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_VTOP
+             && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_CONT)
            emit_note (NOTE_SOURCE_FILE (insn), NOTE_LINE_NUMBER (insn));
        }
     }