diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a081dfe90a61ca9d8c4c4c1cb4e911d8f66eb835..c6401124b24f732c609d732a7692576357a27c3a 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 f40a656da34448f5607967c37d44ab85aebfc421..b57cb138e6b53a0f87ff2697fb2ed349f8013a2b 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 314a20bb0290f9649d59c80d9c6c31aaa42189d1..68adb83589083dab32037d51868fc60469cf00cf 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