Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.42 -> 1.43 --- Log message: Use a DenseMap instead of an std::map for the value numbering. This reduces the time to optimize lencod on a PPC Debug build from ~300s to ~140s. --- Diffs of the changes: (+5 -4) GVNPRE.cpp | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) Index: llvm/lib/Transforms/Scalar/GVNPRE.cpp diff -u llvm/lib/Transforms/Scalar/GVNPRE.cpp:1.42 llvm/lib/Transforms/Scalar/GVNPRE.cpp:1.43 --- llvm/lib/Transforms/Scalar/GVNPRE.cpp:1.42 Tue Jun 19 18:07:16 2007 +++ llvm/lib/Transforms/Scalar/GVNPRE.cpp Tue Jun 19 18:23:54 2007 @@ -25,6 +25,7 @@ #include "llvm/Function.h" #include "llvm/Analysis/Dominators.h" #include "llvm/Analysis/PostDominators.h" +#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DepthFirstIterator.h" #include "llvm/ADT/Statistic.h" #include "llvm/Support/CFG.h" @@ -78,7 +79,7 @@ }; private: - std::map<Value*, uint32_t> valueNumbering; + DenseMap<Value*, uint32_t> valueNumbering; std::map<Expression, uint32_t> expressionNumbering; std::set<Expression> maximalExpressions; @@ -217,7 +218,7 @@ uint32_t ValueTable::lookup_or_add(Value* V) { maximalValues.insert(V); - std::map<Value*, uint32_t>::iterator VI = valueNumbering.find(V); + DenseMap<Value*, uint32_t>::iterator VI = valueNumbering.find(V); if (VI != valueNumbering.end()) return VI->second; @@ -255,7 +256,7 @@ } uint32_t ValueTable::lookup(Value* V) { - std::map<Value*, uint32_t>::iterator VI = valueNumbering.find(V); + DenseMap<Value*, uint32_t>::iterator VI = valueNumbering.find(V); if (VI != valueNumbering.end()) return VI->second; else @@ -265,7 +266,7 @@ } void ValueTable::add(Value* V, uint32_t num) { - std::map<Value*, uint32_t>::iterator VI = valueNumbering.find(V); + DenseMap<Value*, uint32_t>::iterator VI = valueNumbering.find(V); if (VI != valueNumbering.end()) valueNumbering.erase(VI); valueNumbering.insert(std::make_pair(V, num)); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits