Changes in directory llvm/lib/CodeGen:
VirtRegMap.cpp updated: 1.100 -> 1.101 --- Log message: A restore is promoted to copy (or deleted entirely), remove the kill from the last use of the targetted register. --- Diffs of the changes: (+4 -3) VirtRegMap.cpp | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) Index: llvm/lib/CodeGen/VirtRegMap.cpp diff -u llvm/lib/CodeGen/VirtRegMap.cpp:1.100 llvm/lib/CodeGen/VirtRegMap.cpp:1.101 --- llvm/lib/CodeGen/VirtRegMap.cpp:1.100 Sun Feb 25 03:51:27 2007 +++ llvm/lib/CodeGen/VirtRegMap.cpp Wed Feb 28 20:27:30 2007 @@ -855,14 +855,15 @@ } else DOUT << "Removing now-noop copy: " << MI; - // Extend the live range of the MI that last kill the register if - // the next MI reuse it. + // Either way, the live range of the last kill of InReg has been + // extended. Remove its kill. MachineOperand *MOK = SSMI->findRegisterUseOperand(InReg, true); if (MOK && NextMII != MBB.end()) { + MOK->unsetIsKill(); + // If NextMII uses InReg (must be the copy?), mark it killed. MachineOperand *MOU = NextMII->findRegisterUseOperand(InReg); if (MOU) { MOU->setIsKill(); - MOK->unsetIsKill(); Spills.UpdateLastUse(InReg, &(*NextMII)); } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits