summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/ifcvt.c2
-rw-r--r--gcc/jump.c5
3 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a081dfe90a6..c6401124b24 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+Thu May 10 09:17:42 2001 Jeffrey A Law (law@cygnus.com)
+
+ * ifcvt.c (merge_if_block): Use any_uncondjump_p, not simplejump_p
+ to determine if a block has an unconditional jump at its end.
+
+ * jump.c (jump_optimize_1): When converting a conditional jump
+ to an unconditional jump, build the jump using gen_jump instead
+ of just modify operands in-place.
+
2001-05-09 Zack Weinberg <zackw@stanford.edu>
* cppinit.c (cpp_post_options): Shut off macro expansion if
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index f40a656da34..b57cb138e6b 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -1745,7 +1745,7 @@ merge_if_block (test_bb, then_bb, else_bb, join_bb)
/* There should sill be a branch at the end of the THEN or ELSE
blocks taking us to our final destination. */
- if (! simplejump_p (combo_bb->end)
+ if (! any_uncondjump_p (combo_bb->end)
&& ! returnjump_p (combo_bb->end))
abort ();
}
diff --git a/gcc/jump.c b/gcc/jump.c
index 314a20bb029..68adb835890 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -608,8 +608,9 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan,
do_cross_jump (insn, newjpos, newlpos);
/* Make the old conditional jump
into an unconditional one. */
- SET_SRC (PATTERN (insn))
- = gen_rtx_LABEL_REF (VOIDmode, JUMP_LABEL (insn));
+ PATTERN (insn)
+ = gen_jump (gen_rtx_LABEL_REF (VOIDmode,
+ JUMP_LABEL (insn)));
INSN_CODE (insn) = -1;
emit_barrier_after (insn);
/* Add to jump_chain unless this is a new label