aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/unroll.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 42ffe44..13ed48e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 85fd5d2..85dff19 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -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));
}
}