Commit 5e9e738c by Richard Henderson Committed by Richard Henderson

* flow.c (propagate_one_insn): Mark sets even when the insn is dead.

From-SVN: r33564
parent c4686982
2000-04-30 Richard Henderson <rth@cygnus.com> 2000-04-30 Richard Henderson <rth@cygnus.com>
* flow.c (propagate_one_insn): Mark sets even when the insn is dead.
* ifcvt.c (noce_process_if_block): Fail the conversion if X is * ifcvt.c (noce_process_if_block): Fail the conversion if X is
referenced bewteen the condition and the jump. Don't delete referenced bewteen the condition and the jump. Don't delete
anything but the jump. anything but the jump.
......
...@@ -3364,6 +3364,15 @@ propagate_one_insn (pbi, insn) ...@@ -3364,6 +3364,15 @@ propagate_one_insn (pbi, insn)
delete it. */ delete it. */
if ((flags & PROP_KILL_DEAD_CODE) && insn_is_dead) if ((flags & PROP_KILL_DEAD_CODE) && insn_is_dead)
{ {
/* Record sets. Do this even for dead instructions, since they
would have killed the values if they hadn't been deleted. */
mark_set_regs (pbi, PATTERN (insn), insn);
/* CC0 is now known to be dead. Either this insn used it,
in which case it doesn't anymore, or clobbered it,
so the next insn can't use it. */
pbi->cc0_live = 0;
if (libcall_is_dead) if (libcall_is_dead)
{ {
prev = propagate_block_delete_libcall (pbi->bb, insn, note); prev = propagate_block_delete_libcall (pbi->bb, insn, note);
...@@ -3372,11 +3381,6 @@ propagate_one_insn (pbi, insn) ...@@ -3372,11 +3381,6 @@ propagate_one_insn (pbi, insn)
else else
propagate_block_delete_insn (pbi->bb, insn); propagate_block_delete_insn (pbi->bb, insn);
/* CC0 is now known to be dead. Either this insn used it,
in which case it doesn't anymore, or clobbered it,
so the next insn can't use it. */
pbi->cc0_live = 0;
return prev; return prev;
} }
......
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