summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-08-05 00:02:00 +0000
committerChris Lattner <sabre@nondot.org>2007-08-05 00:02:00 +0000
commite93e31198109b03b8c22296a1500839e95d59b5f (patch)
tree39918f01f62924b019b26ac28e1dcdacbc1c61f5 /include
parent0a5f83c22cc5d1fe24e57aadde9399fa90eb5c98 (diff)
downloadllvm-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.h4
-rw-r--r--include/llvm/Analysis/PostDominators.h2
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);