diff options
author | Owen Anderson <resistor@mac.com> | 2007-07-19 03:32:44 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-07-19 03:32:44 +0000 |
commit | 6a4ff8549bded55f155dbc308101326f13d667dc (patch) | |
tree | 72c6925a05caf7cbe581407fb5e5b51deea57f59 /llvm/lib/Transforms | |
parent | 186e0d8b0a7ae6f7e19508ef00f7478c3cc65233 (diff) | |
download | bcm5719-llvm-6a4ff8549bded55f155dbc308101326f13d667dc.tar.gz bcm5719-llvm-6a4ff8549bded55f155dbc308101326f13d667dc.zip |
Move some sets and maps to SmallPtrSet and DenseMap respectively. This
reduces the time to optimize 403.gcc from 17.6s to 16.4s.
llvm-svn: 40036
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Scalar/GVNPRE.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVNPRE.cpp b/llvm/lib/Transforms/Scalar/GVNPRE.cpp index e625fc224be..6746391743c 100644 --- a/llvm/lib/Transforms/Scalar/GVNPRE.cpp +++ b/llvm/lib/Transforms/Scalar/GVNPRE.cpp @@ -39,7 +39,6 @@ #include <deque> #include <map> #include <vector> -#include <set> using namespace llvm; //===----------------------------------------------------------------------===// @@ -655,12 +654,12 @@ namespace { SmallPtrSet<Value*, 16>& currTemps) ; bool buildsets_anticout(BasicBlock* BB, ValueNumberedSet& anticOut, - std::set<BasicBlock*>& visited) ; + SmallPtrSet<BasicBlock*, 8>& visited) ; unsigned buildsets_anticin(BasicBlock* BB, ValueNumberedSet& anticOut, ValueNumberedSet& currExps, SmallPtrSet<Value*, 16>& currTemps, - std::set<BasicBlock*>& visited) ; + SmallPtrSet<BasicBlock*, 8>& visited) ; void buildsets(Function& F) ; void insertion_pre(Value* e, BasicBlock* BB, @@ -1351,7 +1350,7 @@ void GVNPRE::buildsets_availout(BasicBlock::iterator I, /// set as a function of the ANTIC_IN set of the block's predecessors bool GVNPRE::buildsets_anticout(BasicBlock* BB, ValueNumberedSet& anticOut, - std::set<BasicBlock*>& visited) { + SmallPtrSet<BasicBlock*, 8>& visited) { if (BB->getTerminator()->getNumSuccessors() == 1) { if (BB->getTerminator()->getSuccessor(0) != BB && visited.count(BB->getTerminator()->getSuccessor(0)) == 0) { @@ -1398,7 +1397,7 @@ unsigned GVNPRE::buildsets_anticin(BasicBlock* BB, ValueNumberedSet& anticOut, ValueNumberedSet& currExps, SmallPtrSet<Value*, 16>& currTemps, - std::set<BasicBlock*>& visited) { + SmallPtrSet<BasicBlock*, 8>& visited) { ValueNumberedSet& anticIn = anticipatedIn[BB]; unsigned old = anticIn.size(); @@ -1439,8 +1438,8 @@ unsigned GVNPRE::buildsets_anticin(BasicBlock* BB, /// buildsets - Phase 1 of the main algorithm. Construct the AVAIL_OUT /// and the ANTIC_IN sets. void GVNPRE::buildsets(Function& F) { - std::map<BasicBlock*, ValueNumberedSet> generatedExpressions; - std::map<BasicBlock*, SmallPtrSet<Value*, 16> > generatedTemporaries; + DenseMap<BasicBlock*, ValueNumberedSet> generatedExpressions; + DenseMap<BasicBlock*, SmallPtrSet<Value*, 16> > generatedTemporaries; DominatorTree &DT = getAnalysis<DominatorTree>(); @@ -1471,7 +1470,7 @@ void GVNPRE::buildsets(Function& F) { // Phase 1, Part 2: calculate ANTIC_IN - std::set<BasicBlock*> visited; + SmallPtrSet<BasicBlock*, 8> visited; SmallPtrSet<BasicBlock*, 4> block_changed; for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; ++FI) block_changed.insert(FI); |