[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcRegisterInfo.cpp
Evan Cheng
evan.cheng at apple.com
Wed Nov 15 12:58:31 PST 2006
Changes in directory llvm/lib/Target/Sparc:
SparcRegisterInfo.cpp updated: 1.46 -> 1.47
---
Log message:
Properly transfer kill / dead info.
---
Diffs of the changes: (+9 -5)
SparcRegisterInfo.cpp | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
Index: llvm/lib/Target/Sparc/SparcRegisterInfo.cpp
diff -u llvm/lib/Target/Sparc/SparcRegisterInfo.cpp:1.46 llvm/lib/Target/Sparc/SparcRegisterInfo.cpp:1.47
--- llvm/lib/Target/Sparc/SparcRegisterInfo.cpp:1.46 Mon Nov 13 17:36:35 2006
+++ llvm/lib/Target/Sparc/SparcRegisterInfo.cpp Wed Nov 15 14:58:11 2006
@@ -77,15 +77,16 @@
unsigned OpNum,
int FI) const {
bool isFloat = false;
+ MachineInstr *NewMI = NULL;
switch (MI->getOpcode()) {
case SP::ORrr:
if (MI->getOperand(1).isRegister() && MI->getOperand(1).getReg() == SP::G0&&
MI->getOperand(0).isRegister() && MI->getOperand(2).isRegister()) {
if (OpNum == 0) // COPY -> STORE
- return BuildMI(TII, SP::STri, 3).addFrameIndex(FI).addImm(0)
+ NewMI = BuildMI(TII, SP::STri, 3).addFrameIndex(FI).addImm(0)
.addReg(MI->getOperand(2).getReg());
else // COPY -> LOAD
- return BuildMI(TII, SP::LDri, 2, MI->getOperand(0).getReg())
+ NewMI = BuildMI(TII, SP::LDri, 2, MI->getOperand(0).getReg())
.addFrameIndex(FI).addImm(0);
}
break;
@@ -94,14 +95,17 @@
// FALLTHROUGH
case SP::FMOVD:
if (OpNum == 0) // COPY -> STORE
- return BuildMI(TII, isFloat ? SP::STFri : SP::STDFri, 3)
+ NewMI = BuildMI(TII, isFloat ? SP::STFri : SP::STDFri, 3)
.addFrameIndex(FI).addImm(0).addReg(MI->getOperand(1).getReg());
else // COPY -> LOAD
- return BuildMI(TII, isFloat ? SP::LDFri : SP::LDDFri, 2,
+ NewMI = BuildMI(TII, isFloat ? SP::LDFri : SP::LDDFri, 2,
MI->getOperand(0).getReg()).addFrameIndex(FI).addImm(0);
break;
}
- return 0;
+
+ if (NewMI)
+ NewMI->copyKillDeadInfo(MI);
+ return NewMI;
}
const unsigned* SparcRegisterInfo::getCalleeSaveRegs() const {
More information about the llvm-commits
mailing list