From: Chris Lattner Date: Fri, 30 Jan 2004 22:08:09 +0000 (+0000) Subject: Add a new lazily constructed mapping from Idx's the MBB they represent X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=43549f710aed19431df93d893aee1ade9a33245d;p=oota-llvm.git Add a new lazily constructed mapping from Idx's the MBB they represent git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11017 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/CodeGen/LiveVariables.h b/include/llvm/CodeGen/LiveVariables.h index 71dd437d996..454205afbe1 100644 --- a/include/llvm/CodeGen/LiveVariables.h +++ b/include/llvm/CodeGen/LiveVariables.h @@ -103,6 +103,12 @@ private: // Intermediate data structures /// BBMap - Maps LLVM basic blocks to their corresponding machine basic block. /// This also provides a numbering of the basic blocks in the function. std::map > BBMap; + + + /// BBIdxMap - This contains the inverse mapping of BBMap, going from block ID + /// numbers to the corresponding MachineBasicBlock. This is lazily computed + /// when the getIndexMachineBasicBlock() method is called. + std::vector BBIdxMap; const MRegisterInfo *RegInfo; @@ -126,6 +132,9 @@ public: return BBMap.find(BB)->second; } + /// getIndexMachineBasicBlock() - Given a block index, return the + /// MachineBasicBlock corresponding to it. + MachineBasicBlock *getIndexMachineBasicBlock(unsigned Idx); /// killed_iterator - Iterate over registers killed by a machine instruction /// @@ -243,6 +252,7 @@ public: RegistersKilled.clear(); RegistersDead.clear(); BBMap.clear(); + BBIdxMap.clear(); } /// getVarInfo - Return the VarInfo structure for the specified VIRTUAL