* flow.c (propagate_one_insn): Mark sets even when the insn is dead.
From-SVN: r33564
This commit is contained in:
parent
c4686982aa
commit
5e9e738cd2
@ -1,5 +1,7 @@
|
||||
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
|
||||
referenced bewteen the condition and the jump. Don't delete
|
||||
anything but the jump.
|
||||
|
14
gcc/flow.c
14
gcc/flow.c
@ -3364,6 +3364,15 @@ propagate_one_insn (pbi, insn)
|
||||
delete it. */
|
||||
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)
|
||||
{
|
||||
prev = propagate_block_delete_libcall (pbi->bb, insn, note);
|
||||
@ -3372,11 +3381,6 @@ propagate_one_insn (pbi, insn)
|
||||
else
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user