Remove dead methods, add getNumBlockIDs() method
authorChris Lattner <sabre@nondot.org>
Thu, 14 Sep 2006 06:40:48 +0000 (06:40 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 14 Sep 2006 06:40:48 +0000 (06:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30322 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/LiveIntervalAnalysis.h
include/llvm/CodeGen/MachineFunction.h

index 77451846c291f64bf5e425fc11452aabc298ad61..2bcef48e9660f2bdbd9181bb39c54d384d8db44c 100644 (file)
@@ -38,6 +38,10 @@ namespace llvm {
     const TargetInstrInfo* tii_;
     LiveVariables* lv_;
 
+    /// MBB2IdxMap - The index of the first instruction in the specified basic
+    /// block.
+    std::vector<unsigned> MBB2IdxMap;
+    
     typedef std::map<MachineInstr*, unsigned> Mi2IndexMap;
     Mi2IndexMap mi2iMap_;
 
@@ -113,6 +117,17 @@ namespace llvm {
       return I->second;
     }
 
+    /// getMBBStartIdx - Return the base index of the first instruction in the
+    /// specified MachineBasicBlock.
+    unsigned getMBBStartIdx(MachineBasicBlock *MBB) const {
+      return getMBBStartIdx(MBB->getNumber());
+    }
+    
+    unsigned getMBBStartIdx(unsigned MBBNo) const {
+      assert(MBBNo < MBB2IdxMap.size() && "Invalid MBB number!");
+      return MBB2IdxMap[MBBNo];
+    }
+
     /// getInstructionIndex - returns the base index of instr
     unsigned getInstructionIndex(MachineInstr* instr) const {
       Mi2IndexMap::const_iterator it = mi2iMap_.find(instr);
@@ -128,7 +143,7 @@ namespace llvm {
              "index does not correspond to an instruction");
       return i2miMap_[index];
     }
-
+    
     std::vector<LiveInterval*> addIntervalsForSpills(const LiveInterval& i,
                                                      VirtRegMap& vrm,
                                                      int slot);
@@ -155,12 +170,17 @@ namespace llvm {
       }
     }
       
-    /// computeIntervals - compute live intervals
-    void computeIntervals();
+    /// computeIntervals - Compute live intervals.  This returns a vector of all
+    /// the two-address instructions to the caller.
+    void computeIntervals(std::vector<MachineInstr*> &TwoAddrInsts);
 
     /// joinIntervals - join compatible live intervals
     void joinIntervals();
 
+    /// HandleTwoAddressInsts - Arrange for the specified list of 2-addr
+    /// instructions to have their src/dst regs allocated to the same register.
+    void HandleTwoAddressInsts(const std::vector<MachineInstr*> &TwoAddrInsts);
+
     /// CopyCoallesceInMBB - Coallsece copies in the specified MBB, putting
     /// copies that cannot yet be coallesced into the "TryAgain" list.
     void CopyCoallesceInMBB(MachineBasicBlock *MBB,
index 340e2f936b469e95c557cb90d3061482f4aa32e6..b06dd639228e0bbe2e249f0cb71c969e629a0f56 100644 (file)
@@ -223,13 +223,8 @@ public:
     return MBBNumbering[N];
   }
 
-  /// getLastBlock - Returns the MachineBasicBlock with the greatest number
-  MachineBasicBlock *getLastBlock() {
-    return MBBNumbering.back();
-  }
-  const MachineBasicBlock *getLastBlock() const {
-    return MBBNumbering.back();
-  }
+  /// getNumBlockIDs - Return the number of MBB ID's allocated.
+  unsigned getNumBlockIDs() const { return MBBNumbering.size(); }
   
   /// print - Print out the MachineFunction in a format suitable for debugging
   /// to the specified stream.