diff options
author | Chris Lattner <sabre@nondot.org> | 2007-08-05 00:02:00 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-08-05 00:02:00 +0000 |
commit | e93e31198109b03b8c22296a1500839e95d59b5f (patch) | |
tree | 39918f01f62924b019b26ac28e1dcdacbc1c61f5 /include | |
parent | 0a5f83c22cc5d1fe24e57aadde9399fa90eb5c98 (diff) | |
download | llvm-e93e31198109b03b8c22296a1500839e95d59b5f.tar.gz llvm-e93e31198109b03b8c22296a1500839e95d59b5f.tar.bz2 llvm-e93e31198109b03b8c22296a1500839e95d59b5f.tar.xz |
Switch the internal "Info" map from an std::map to a DenseMap. This
speeds up idom by about 45% and postidom by about 33%.
Some extra precautions must be taken not to invalidate densemap iterators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40827 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Analysis/Dominators.h | 4 | ||||
-rw-r--r-- | include/llvm/Analysis/PostDominators.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/include/llvm/Analysis/Dominators.h b/include/llvm/Analysis/Dominators.h index 0740f729f2..0ee71b18ee 100644 --- a/include/llvm/Analysis/Dominators.h +++ b/include/llvm/Analysis/Dominators.h @@ -127,7 +127,7 @@ protected: std::vector<BasicBlock*> Vertex; // Info - Collection of information used during the computation of idoms. - std::map<BasicBlock*, InfoRec> Info; + DenseMap<BasicBlock*, InfoRec> Info; void updateDFSNumbers(); @@ -298,7 +298,7 @@ public: private: void calculate(Function& F); DomTreeNode *getNodeForBlock(BasicBlock *BB); - unsigned DFSPass(BasicBlock *V, InfoRec &VInfo, unsigned N); + unsigned DFSPass(BasicBlock *V, unsigned N); void Compress(BasicBlock *V); BasicBlock *Eval(BasicBlock *v); void Link(BasicBlock *V, BasicBlock *W, InfoRec &WInfo); diff --git a/include/llvm/Analysis/PostDominators.h b/include/llvm/Analysis/PostDominators.h index 5841da3fcf..8dfeafe55a 100644 --- a/include/llvm/Analysis/PostDominators.h +++ b/include/llvm/Analysis/PostDominators.h @@ -39,7 +39,7 @@ struct PostDominatorTree : public DominatorTreeBase { private: void calculate(Function &F); DomTreeNode *getNodeForBlock(BasicBlock *BB); - unsigned DFSPass(BasicBlock *V, InfoRec &VInfo,unsigned N); + unsigned DFSPass(BasicBlock *V, unsigned N); void Compress(BasicBlock *V, InfoRec &VInfo); BasicBlock *Eval(BasicBlock *V); void Link(BasicBlock *V, BasicBlock *W, InfoRec &WInfo); |