[llvm-commits] CVS: llvm/lib/CodeGen/VirtRegMap.cpp
Chris Lattner
lattner at cs.uiuc.edu
Thu Feb 2 19:07:01 PST 2006
Changes in directory llvm/lib/CodeGen:
VirtRegMap.cpp updated: 1.48 -> 1.49
---
Log message:
Simplify some code
---
Diffs of the changes: (+40 -45)
VirtRegMap.cpp | 85 ++++++++++++++++++++++++++-------------------------------
1 files changed, 40 insertions(+), 45 deletions(-)
Index: llvm/lib/CodeGen/VirtRegMap.cpp
diff -u llvm/lib/CodeGen/VirtRegMap.cpp:1.48 llvm/lib/CodeGen/VirtRegMap.cpp:1.49
--- llvm/lib/CodeGen/VirtRegMap.cpp:1.48 Thu Feb 2 20:02:59 2006
+++ llvm/lib/CodeGen/VirtRegMap.cpp Thu Feb 2 21:06:49 2006
@@ -593,7 +593,6 @@
if (MO.isRegister() && MO.getReg() && MO.isDef()) {
unsigned VirtReg = MO.getReg();
- bool TakenCareOf = false;
if (!MRegisterInfo::isVirtualRegister(VirtReg)) {
// Check to see if this is a def-and-use vreg operand that we do need
// to insert a store for.
@@ -609,54 +608,50 @@
if (!OpTakenCareOf) {
ClobberPhysReg(VirtReg, SpillSlotsAvailable, PhysRegsAvailable);
- TakenCareOf = true;
+ continue;
}
}
- if (!TakenCareOf) {
- // The only vregs left are stack slot definitions.
- int StackSlot = VRM.getStackSlot(VirtReg);
- const TargetRegisterClass *RC =
- MBB.getParent()->getSSARegMap()->getRegClass(VirtReg);
- unsigned PhysReg;
-
- // If this is a def&use operand, and we used a different physreg for
- // it than the one assigned, make sure to execute the store from the
- // correct physical register.
- if (MO.getReg() == VirtReg)
- PhysReg = VRM.getPhys(VirtReg);
- else
- PhysReg = MO.getReg();
-
- PhysRegsUsed[PhysReg] = true;
- MRI->storeRegToStackSlot(MBB, next(MII), PhysReg, StackSlot, RC);
- DEBUG(std::cerr << "Store:\t" << *next(MII));
- MI.SetMachineOperandReg(i, PhysReg);
-
- // If there is a dead store to this stack slot, nuke it now.
- MachineInstr *&LastStore = MaybeDeadStores[StackSlot];
- if (LastStore) {
- DEBUG(std::cerr << " Killed store:\t" << *LastStore);
- ++NumDSE;
- MBB.erase(LastStore);
- }
- LastStore = next(MII);
-
- // If the stack slot value was previously available in some other
- // register, change it now. Otherwise, make the register available,
- // in PhysReg.
- ModifyStackSlot(StackSlot, SpillSlotsAvailable, PhysRegsAvailable);
- ClobberPhysReg(PhysReg, SpillSlotsAvailable, PhysRegsAvailable);
-
- PhysRegsAvailable.insert(std::make_pair(PhysReg, StackSlot));
- SpillSlotsAvailable[StackSlot] = PhysReg;
- DEBUG(std::cerr << "Updating SS#" << StackSlot <<" in physreg "
- << MRI->getName(PhysReg) << " for virtreg #"
- << VirtReg << "\n");
-
- ++NumStores;
- VirtReg = PhysReg;
+ // The only vregs left are stack slot definitions.
+ int StackSlot = VRM.getStackSlot(VirtReg);
+ const TargetRegisterClass *RC =
+ MBB.getParent()->getSSARegMap()->getRegClass(VirtReg);
+ unsigned PhysReg;
+
+ // If this is a def&use operand, and we used a different physreg for
+ // it than the one assigned, make sure to execute the store from the
+ // correct physical register.
+ if (MO.getReg() == VirtReg)
+ PhysReg = VRM.getPhys(VirtReg);
+ else
+ PhysReg = MO.getReg();
+
+ PhysRegsUsed[PhysReg] = true;
+ MRI->storeRegToStackSlot(MBB, next(MII), PhysReg, StackSlot, RC);
+ DEBUG(std::cerr << "Store:\t" << *next(MII));
+ MI.SetMachineOperandReg(i, PhysReg);
+
+ // If there is a dead store to this stack slot, nuke it now.
+ MachineInstr *&LastStore = MaybeDeadStores[StackSlot];
+ if (LastStore) {
+ DEBUG(std::cerr << " Killed store:\t" << *LastStore);
+ ++NumDSE;
+ MBB.erase(LastStore);
}
+ LastStore = next(MII);
+
+ // If the stack slot value was previously available in some other
+ // register, change it now. Otherwise, make the register available,
+ // in PhysReg.
+ ModifyStackSlot(StackSlot, SpillSlotsAvailable, PhysRegsAvailable);
+ ClobberPhysReg(PhysReg, SpillSlotsAvailable, PhysRegsAvailable);
+
+ PhysRegsAvailable.insert(std::make_pair(PhysReg, StackSlot));
+ SpillSlotsAvailable[StackSlot] = PhysReg;
+ DEBUG(std::cerr << "Updating SS#" << StackSlot <<" in physreg "
+ << MRI->getName(PhysReg) << " for virtreg #"
+ << VirtReg << "\n");
+ ++NumStores;
}
}
More information about the llvm-commits
mailing list