unroll.c (copy_loop_body): Don't make extra copies of NOTE_INSN_LOOP_CONT notes.
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Tue, 2 Mar 1999 08:48:09 +0000 (08:48 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Tue, 2 Mar 1999 08:48:09 +0000 (08:48 +0000)
* unroll.c (copy_loop_body): Don't make extra copies of
NOTE_INSN_LOOP_CONT notes.

From-SVN: r25535

gcc/ChangeLog
gcc/unroll.c

index 6eb054b43a9725823ec3e8c55925594db5ab0719..8b984de08c2084e54b51d748895424d960cf5dc5 100644 (file)
@@ -1,3 +1,8 @@
+Tue Mar  2 16:45:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * unroll.c (copy_loop_body): Don't make extra copies of
+       NOTE_INSN_LOOP_CONT notes.
+
 Tue Mar  2 07:44:56 1999  Mark Mitchell  <mark@markmitchell.com>
 
        * tree.c (save_tree_status): Don't treat functions with no context
index 28c3e7b7cc309ae629f4410bdd2cc4c70455465d..841f06a23d1a1c744c5c4e126b8cd3afd708ae99 100644 (file)
@@ -2127,15 +2127,16 @@ copy_loop_body (copy_start, copy_end, map, exit_label, last_iteration,
          break;
 
        case NOTE:
-         /* VTOP notes are valid only before the loop exit test.  If placed
-            anywhere else, loop may generate bad code.  */
+         /* VTOP and CONT notes are valid only before the loop exit test.
+            If placed anywhere else, loop may generate bad code.  */
          /* BASIC_BLOCK notes exist to stabilize basic block structures with
             the associated rtl.  We do not want to share the structure in 
             this new block.  */
 
          if (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)
                  || (last_iteration && unroll_type != UNROLL_COMPLETELY)))
            copy = emit_note (NOTE_SOURCE_FILE (insn),
                              NOTE_LINE_NUMBER (insn));