diff options
author | Jeffrey A Law <law@cygnus.com> | 2001-05-10 15:15:48 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2001-05-10 09:15:48 -0600 |
commit | f926a2566dd729e82c3798ed9e3e0a91d67b06de (patch) | |
tree | cb402361427a0ac2783f5f9973e729622c3eafa5 /gcc | |
parent | 8850521be3f43147cbe9fa2ac5f1d9e16ac702ab (diff) | |
download | gcc-f926a2566dd729e82c3798ed9e3e0a91d67b06de.zip gcc-f926a2566dd729e82c3798ed9e3e0a91d67b06de.tar.gz gcc-f926a2566dd729e82c3798ed9e3e0a91d67b06de.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/ifcvt.c | 2 | ||||
-rw-r--r-- | gcc/jump.c | 5 |
3 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a081dfe..c640112 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 f40a656..b57cb13 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 (); } @@ -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 |