Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead)
authorChris Lattner <sabre@nondot.org>
Mon, 19 Jul 2004 06:55:21 +0000 (06:55 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 19 Jul 2004 06:55:21 +0000 (06:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14997 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/LiveVariables.h
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/LiveVariables.cpp
lib/CodeGen/PHIElimination.cpp
lib/CodeGen/TwoAddressInstructionPass.cpp

index 1df98e50e001d2692625812ce14622939558606e..80cbb41950b57c7eda9d3ec61d2371857cea830e 100644 (file)
@@ -151,11 +151,9 @@ public:
   /// specified register is killed after being used by the specified
   /// instruction.
   ///
-  void addVirtualRegisterKilled(unsigned IncomingReg,
-                                MachineBasicBlock *MBB,
-                                MachineInstr *MI) {
+  void addVirtualRegisterKilled(unsigned IncomingReg, MachineInstr *MI) {
     RegistersKilled.insert(std::make_pair(MI, IncomingReg));
-    getVarInfo(IncomingReg).Kills.push_back(std::make_pair(MBB, MI));
+    getVarInfo(IncomingReg).Kills.push_back(std::make_pair(MI->getParent(),MI));
   }
 
   /// removeVirtualRegisterKilled - Remove the specified virtual
@@ -189,11 +187,9 @@ public:
   /// addVirtualRegisterDead - Add information about the fact that the specified
   /// register is dead after being used by the specified instruction.
   ///
-  void addVirtualRegisterDead(unsigned IncomingReg,
-                              MachineBasicBlock *MBB,
-                              MachineInstr *MI) {
+  void addVirtualRegisterDead(unsigned IncomingReg, MachineInstr *MI) {
     RegistersDead.insert(std::make_pair(MI, IncomingReg));
-    getVarInfo(IncomingReg).Kills.push_back(std::make_pair(MBB, MI));
+    getVarInfo(IncomingReg).Kills.push_back(std::make_pair(MI->getParent(),MI));
   }
 
   /// removeVirtualRegisterDead - Remove the specified virtual
index ee988b10a40228af7af08c62cecb8864d25d0ac0..a20d23bb764d23765800528619510d903f060b61 100644 (file)
@@ -263,7 +263,7 @@ std::vector<LiveInterval*> LiveIntervals::addIntervalsForSpills(
                         nI.addRange(start, end);
                         added.push_back(&nI);
                         // update live variables
-                        lv_->addVirtualRegisterKilled(nReg, mi->getParent(),mi);
+                        lv_->addVirtualRegisterKilled(nReg, mi);
                         DEBUG(std::cerr << "\t\t\t\tadded new interval: "
                               << nI << '\n');
                     }
index 883b7813e7f132d80b3245b81f51cf057765fc4c..c82208aceab97d586f053c2e8358d157b9531862 100644 (file)
@@ -99,7 +99,7 @@ void LiveVariables::HandleVirtRegUse(VarInfo &VRInfo, MachineBasicBlock *MBB,
          "Should have kill for defblock!");
 
   // Add a new kill entry for this basic block.
-  VRInfo.Kills.push_back(std::make_pair(MBB, MI));
+  VRInfo.Kills.push_back(std::make_pair(MI->getParent(), MI));
 
   // Update all dominating blocks to mark them known live.
   const BasicBlock *BB = MBB->getBasicBlock();
@@ -233,7 +233,8 @@ bool LiveVariables::runOnMachineFunction(MachineFunction &MF) {
 
             assert(VRInfo.DefInst == 0 && "Variable multiply defined!");
             VRInfo.DefInst = MI;
-            VRInfo.Kills.push_back(std::make_pair(MBB, MI)); // Defaults to dead
+            // Defaults to dead
+            VRInfo.Kills.push_back(std::make_pair(MI->getParent(), MI));
           } else if (MRegisterInfo::isPhysicalRegister(MO.getReg()) &&
                      AllocatablePhysicalRegisters[MO.getReg()]) {
             HandlePhysRegDef(MO.getReg(), MI);
index 40bf5883ddcd50c7335f34b0daba0f0dcbcbfbfc..4b6723797ac8a9761b0ed3497e457258af3396c0 100644 (file)
@@ -122,7 +122,7 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) {
       // each for each incoming block), the "def" block and instruction fields
       // for the VarInfo is not filled in.
       //
-      LV->addVirtualRegisterKilled(IncomingReg, &MBB, PHICopy);
+      LV->addVirtualRegisterKilled(IncomingReg, PHICopy);
 
       // Since we are going to be deleting the PHI node, if it is the last use
       // of any registers, or if the value itself is dead, we need to move this
@@ -140,7 +140,7 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) {
 
         // Add all of the kills back, which will update the appropriate info...
         for (unsigned i = 0, e = Range.size(); i != e; ++i)
-          LV->addVirtualRegisterKilled(Range[i].second, &MBB, PHICopy);
+          LV->addVirtualRegisterKilled(Range[i].second, PHICopy);
       }
 
       RKs = LV->dead_range(MI);
@@ -149,7 +149,7 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) {
         Range.assign(RKs.first, RKs.second);
         LV->removeVirtualRegistersDead(RKs.first, RKs.second);
         for (unsigned i = 0, e = Range.size(); i != e; ++i)
-          LV->addVirtualRegisterDead(Range[i].second, &MBB, PHICopy);
+          LV->addVirtualRegisterDead(Range[i].second, PHICopy);
       }
     }
 
@@ -251,7 +251,7 @@ bool PNE::EliminatePHINodes(MachineFunction &MF, MachineBasicBlock &MBB) {
           //
           if (!ValueIsLive) {
             MachineBasicBlock::iterator Prev = prior(I);
-            LV->addVirtualRegisterKilled(SrcReg, &opBlock, Prev);
+            LV->addVirtualRegisterKilled(SrcReg, Prev);
           }
         }
       }
index 2190f2162e47afb72da32d1730955b8454f1e871..f2815eecffb17ae3212ffaaf2bd4161b02e02c0d 100644 (file)
@@ -151,10 +151,10 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
 
                     // update live variables for regB
                     if (LV->removeVirtualRegisterKilled(regB, &*mbbi, mi))
-                        LV->addVirtualRegisterKilled(regB, &*mbbi, prevMi);
+                        LV->addVirtualRegisterKilled(regB, prevMi);
 
                     if (LV->removeVirtualRegisterDead(regB, &*mbbi, mi))
-                        LV->addVirtualRegisterDead(regB, &*mbbi, prevMi);
+                        LV->addVirtualRegisterDead(regB, prevMi);
                 }
 
                 // replace all occurences of regB with regA