[llvm-commits] CVS: llvm/lib/CodeGen/VirtRegMap.cpp
Evan Cheng
evan.cheng at apple.com
Wed Feb 28 18:27:46 PST 2007
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));
}
}
More information about the llvm-commits
mailing list