Reuse extends the liveness of a register. Transfer the kill to the operand that reuse it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34536 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2007-02-23 21:47:50 +00:00
parent 1da20a71d1
commit 50d25d7ff7

View File

@ -665,8 +665,13 @@ void LocalSpiller::RewriteMBB(MachineBasicBlock &MBB, VirtRegMap &VRM) {
// Extend the live range of the MI that last kill the register if
// necessary.
MachineOperand *MOK = SSMI->findRegisterUseOperand(PhysReg, true);
if (MOK)
if (MOK) {
MOK->unsetIsKill();
if (ti == -1)
// Unless it's the use of a two-address code, transfer the kill
// of the reused register to this use.
MI.getOperand(i).setIsKill();
}
// The only technical detail we have is that we don't know that
// PhysReg won't be clobbered by a reloaded stack slot that occurs