ifcvt.c (merge_if_block): Use any_uncondjump_p...

* 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.

From-SVN: r41939
This commit is contained in:
Jeffrey A Law 2001-05-10 15:15:48 +00:00 committed by Jeff Law
parent 8850521be3
commit f926a2566d
3 changed files with 13 additions and 3 deletions

View File

@ -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

View File

@ -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 ();
}

View File

@ -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