[llvm-commits] CVS: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp

Chris Lattner lattner at cs.uiuc.edu
Mon Jan 2 23:41:49 PST 2006



Changes in directory llvm/lib/CodeGen:

LiveIntervalAnalysis.cpp updated: 1.151 -> 1.152
---
Log message:

Change a variable from being an iterator to a raw MachineInstr*, to make
GDB use tolerable



---
Diffs of the changes:  (+12 -12)

 LiveIntervalAnalysis.cpp |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)


Index: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
diff -u llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.151 llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.152
--- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.151	Wed Oct 26 13:41:41 2005
+++ llvm/lib/CodeGen/LiveIntervalAnalysis.cpp	Tue Jan  3 01:41:37 2006
@@ -247,7 +247,7 @@
         index += InstrSlots::NUM;
       if (index == end) break;
 
-      MachineBasicBlock::iterator mi = getInstructionFromIndex(index);
+      MachineInstr *MI = getInstructionFromIndex(index);
 
       // NewRegLiveIn - This instruction might have multiple uses of the spilled
       // register.  In this case, for the first use, keep track of the new vreg
@@ -256,26 +256,26 @@
       unsigned NewRegLiveIn = 0;
 
     for_operand:
-      for (unsigned i = 0; i != mi->getNumOperands(); ++i) {
-        MachineOperand& mop = mi->getOperand(i);
+      for (unsigned i = 0; i != MI->getNumOperands(); ++i) {
+        MachineOperand& mop = MI->getOperand(i);
         if (mop.isRegister() && mop.getReg() == li.reg) {
           if (NewRegLiveIn && mop.isUse()) {
             // We already emitted a reload of this value, reuse it for
             // subsequent operands.
-            mi->SetMachineOperandReg(i, NewRegLiveIn);
+            MI->SetMachineOperandReg(i, NewRegLiveIn);
             DEBUG(std::cerr << "\t\t\t\treused reload into reg" << NewRegLiveIn
                             << " for operand #" << i << '\n');
-          } else if (MachineInstr* fmi = mri_->foldMemoryOperand(mi, i, slot)) {
+          } else if (MachineInstr* fmi = mri_->foldMemoryOperand(MI, i, slot)) {
             // Attempt to fold the memory reference into the instruction.  If we
             // can do this, we don't need to insert spill code.
             if (lv_)
-              lv_->instructionChanged(mi, fmi);
-            vrm.virtFolded(li.reg, mi, i, fmi);
-            mi2iMap_.erase(mi);
+              lv_->instructionChanged(MI, fmi);
+            vrm.virtFolded(li.reg, MI, i, fmi);
+            mi2iMap_.erase(MI);
             i2miMap_[index/InstrSlots::NUM] = fmi;
             mi2iMap_[fmi] = index;
-            MachineBasicBlock &MBB = *mi->getParent();
-            mi = MBB.insert(MBB.erase(mi), fmi);
+            MachineBasicBlock &MBB = *MI->getParent();
+            MI = MBB.insert(MBB.erase(MI), fmi);
             ++numFolded;
 
             // Folding the load/store can completely change the instruction in
@@ -300,7 +300,7 @@
 
             // create a new register for this spill
             NewRegLiveIn = mf_->getSSARegMap()->createVirtualRegister(rc);
-            mi->SetMachineOperandReg(i, NewRegLiveIn);
+            MI->SetMachineOperandReg(i, NewRegLiveIn);
             vrm.grow();
             vrm.assignVirt2StackSlot(NewRegLiveIn, slot);
             LiveInterval& nI = getOrCreateInterval(NewRegLiveIn);
@@ -316,7 +316,7 @@
 
             // update live variables if it is available
             if (lv_)
-              lv_->addVirtualRegisterKilled(NewRegLiveIn, mi);
+              lv_->addVirtualRegisterKilled(NewRegLiveIn, MI);
             
             // If this is a live in, reuse it for subsequent live-ins.  If it's
             // a def, we can't do this.






More information about the llvm-commits mailing list