aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-10-01 20:35:09 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-10-01 20:35:09 -0400
commitcd423eadfe03513eb1a0a76853d2c4af11bf9f10 (patch)
treee8a312ba66efabe994e2aa8352723c742f2e6a09 /gcc
parentba21328576034c3ed1fdd42a6719c74376d90ea3 (diff)
downloadgcc-cd423eadfe03513eb1a0a76853d2c4af11bf9f10.zip
gcc-cd423eadfe03513eb1a0a76853d2c4af11bf9f10.tar.gz
gcc-cd423eadfe03513eb1a0a76853d2c4af11bf9f10.tar.bz2
(jump_optimize): When deleting a jump, properly set NEXT.
(duplicate_loop_exit_test): Don't insety NOTE_INSN_LOOP_VTOP before deleted insn; insert first, then delete. From-SVN: r8194
Diffstat (limited to 'gcc')
-rw-r--r--gcc/jump.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/jump.c b/gcc/jump.c
index 0792f17..28d25e5 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -661,6 +661,7 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan)
/* Detect jump to following insn. */
if (reallabelprev == insn && condjump_p (insn))
{
+ next = next_real_insn (JUMP_LABEL (insn));
delete_jump (insn);
changed = 1;
continue;
@@ -2202,11 +2203,11 @@ duplicate_loop_exit_test (loop_start)
emit_barrier_before (loop_start);
}
- delete_insn (next_nonnote_insn (loop_start));
-
/* Mark the exit code as the virtual top of the converted loop. */
emit_note_before (NOTE_INSN_LOOP_VTOP, exitcode);
+ delete_insn (next_nonnote_insn (loop_start));
+
return 1;
}