mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 05:22:04 +00:00
A couple of places where reused use operands should be marked kill. This is exposed by recent availability fallthrough changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64745 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1599,6 +1599,12 @@ void LocalSpiller::RewriteMBB(MachineBasicBlock &MBB, VirtRegMap &VRM,
|
||||
|
||||
PotentialDeadStoreSlots.push_back(ReuseSlot);
|
||||
}
|
||||
|
||||
// Assumes this is the last use. IsKill will be unset if reg is reused
|
||||
// unless it's a two-address operand.
|
||||
if (ti == -1)
|
||||
MI.getOperand(i).setIsKill();
|
||||
|
||||
continue;
|
||||
} // CanReuse
|
||||
|
||||
@@ -1764,6 +1770,11 @@ void LocalSpiller::RewriteMBB(MachineBasicBlock &MBB, VirtRegMap &VRM,
|
||||
DefMO = NextMII->findRegisterDefOperand(DestReg);
|
||||
DefMO->setSubReg(SubIdx);
|
||||
}
|
||||
|
||||
// Mark is killed.
|
||||
MachineOperand *KillOpnd = NextMII->findRegisterUseOperand(InReg);
|
||||
KillOpnd->setIsKill();
|
||||
|
||||
BackTracked = true;
|
||||
} else {
|
||||
DOUT << "Removing now-noop copy: " << MI;
|
||||
|
||||
Reference in New Issue
Block a user