mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 05:24:01 +00:00
Revert r216803 "[MachineSinking] Clear kill flag of all operands at all their uses."
This reverts commit r216803, because it might have broken the buildbot. The issue is tracked in PR20842. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217120 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -724,19 +724,9 @@ bool MachineSinking::SinkInstruction(MachineInstr *MI, bool &SawStore) {
|
||||
++MachineBasicBlock::iterator(DbgMI));
|
||||
}
|
||||
|
||||
// When sinking the instruction the live time of its operands can be extended
|
||||
// bejond their original last use (marked with a kill flag). Conservatively
|
||||
// clear the kill flag in all instructions that use the same operand
|
||||
// registers.
|
||||
for (auto &MO : MI->uses())
|
||||
if (MO.isReg() && MO.isUse()) {
|
||||
// Preserve the kill flag for this instruction.
|
||||
bool IsKill = MO.isKill();
|
||||
// Clear the kill flag in all instruction that use this operand.
|
||||
MRI->clearKillFlags(MO.getReg());
|
||||
// Restore the kill flag for only this instruction.
|
||||
MO.setIsKill(IsKill);
|
||||
}
|
||||
// Conservatively, clear any kill flags, since it's possible that they are no
|
||||
// longer correct.
|
||||
MI->clearKillInfo();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user