]> gcc.gnu.org Git - gcc.git/commitdiff
(copy_loop_body): Only copy VTOP note if it will end up
authorJim Wilson <wilson@gcc.gnu.org>
Tue, 11 Aug 1992 19:42:35 +0000 (12:42 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 11 Aug 1992 19:42:35 +0000 (12:42 -0700)
before a loop exit test.

From-SVN: r1796

gcc/unroll.c

index f8c2fca0647a1c9ee2e57a009b1cb1363b64cd2e..18ab396820401be3cf8066e295228ec0973af1a1 100644 (file)
@@ -1807,7 +1807,12 @@ copy_loop_body (copy_start, copy_end, map, exit_label, last_iteration,
          break;
          
        case NOTE:
-         if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED)
+         /* VTOP notes are valid only before the loop exit test.  If placed
+            anywhere else, loop may generate bad code.  */
+            
+         if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED
+             && (NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_VTOP
+                 || (last_iteration && unroll_type != UNROLL_COMPLETELY)))
            copy = emit_note (NOTE_SOURCE_FILE (insn),
                              NOTE_LINE_NUMBER (insn));
          else
This page took 0.062527 seconds and 5 git commands to generate.