mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-04 06:59:59 +08:00
rtl-ssa: Don't leave NOTE_INSN_DELETED around
This patch tweaks change_insns to also call ::remove_insn to ensure the underlying RTL insn gets removed from the insn chain in the case of a deletion. This avoids leaving NOTE_INSN_DELETED around after deleting insns. For movement, the RTL insn chain is updated earlier in change_insns with the call to move_insn. For deletion, it seems reasonable to do it here. gcc/ChangeLog: * rtl-ssa/changes.cc (function_info::change_insns): Ensure we call ::remove_insn on deleted insns.
This commit is contained in:
parent
d6add7aa90
commit
e90c7bd520
@ -706,7 +706,11 @@ function_info::change_insns (array_slice<insn_change *> changes)
|
||||
insn_change &change = *changes[i];
|
||||
insn_info *insn = change.insn ();
|
||||
if (change.is_deletion ())
|
||||
remove_insn (insn);
|
||||
{
|
||||
if (rtx_insn *rtl = insn->rtl ())
|
||||
::remove_insn (rtl); // Remove the underlying RTL insn.
|
||||
remove_insn (insn);
|
||||
}
|
||||
else if (insn_info *placeholder = placeholders[i])
|
||||
{
|
||||
// Check if earlier movements turned a move into a no-op.
|
||||
|
Loading…
Reference in New Issue
Block a user