Commit 7d5ab30e by Jan Hubicka Committed by Richard Henderson

* gcse.c (cprop_jump): Delete insn if simplified jump is no-op.

From-SVN: r48694
parent ffb9c594
2002-01-09 Jan Hubicka <jh@suse.cz>
* gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
2002-01-09 Richard Henderson <rth@redhat.com> 2002-01-09 Richard Henderson <rth@redhat.com>
* config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode. * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
......
...@@ -4037,28 +4037,20 @@ cprop_jump (bb, insn, from, src) ...@@ -4037,28 +4037,20 @@ cprop_jump (bb, insn, from, src)
if (rtx_equal_p (new, SET_SRC (set))) if (rtx_equal_p (new, SET_SRC (set)))
return 0; return 0;
/* If this is now a no-op leave it that way, but update LABEL_NUSED if /* If this is now a no-op delete it, otherwise this must be a valid insn. */
necessary. */
if (new == pc_rtx) if (new == pc_rtx)
delete_insn (insn);
else
{ {
SET_SRC (set) = new; if (! validate_change (insn, &SET_SRC (set), new, 0))
return 0;
if (JUMP_LABEL (insn) != 0)
{
--LABEL_NUSES (JUMP_LABEL (insn));
JUMP_LABEL (insn) = NULL_RTX;
}
}
/* Otherwise, this must be a valid instruction. */
else if (! validate_change (insn, &SET_SRC (set), new, 0))
return 0;
/* If this has turned into an unconditional jump, /* If this has turned into an unconditional jump,
then put a barrier after it so that the unreachable then put a barrier after it so that the unreachable
code will be deleted. */ code will be deleted. */
if (GET_CODE (SET_SRC (set)) == LABEL_REF) if (GET_CODE (SET_SRC (set)) == LABEL_REF)
emit_barrier_after (insn); emit_barrier_after (insn);
}
run_jump_opt_after_gcse = 1; run_jump_opt_after_gcse = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment