diff options
author | Chris Lattner <sabre@nondot.org> | 2006-09-14 06:40:48 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-09-14 06:40:48 +0000 |
commit | 2540813e5d583fdc40458a53badb323ae5d83a07 (patch) | |
tree | 9c39a1b4d99a8eaf0953deb78a92ccca7491e91a /include/llvm/CodeGen/LiveIntervalAnalysis.h | |
parent | 5f1d01393c1dbafca3c5d91adbb0a97c387a5a1e (diff) | |
download | llvm-2540813e5d583fdc40458a53badb323ae5d83a07.tar.gz llvm-2540813e5d583fdc40458a53badb323ae5d83a07.tar.bz2 llvm-2540813e5d583fdc40458a53badb323ae5d83a07.tar.xz |
Remove dead methods, add getNumBlockIDs() method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30322 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/LiveIntervalAnalysis.h')
-rw-r--r-- | include/llvm/CodeGen/LiveIntervalAnalysis.h | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/LiveIntervalAnalysis.h b/include/llvm/CodeGen/LiveIntervalAnalysis.h index 77451846c2..2bcef48e96 100644 --- a/include/llvm/CodeGen/LiveIntervalAnalysis.h +++ b/include/llvm/CodeGen/LiveIntervalAnalysis.h @@ -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, |