diff options
author | Owen Anderson <resistor@mac.com> | 2007-06-22 00:43:22 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-06-22 00:43:22 +0000 |
commit | d50a29d61314efd68c84197843dea9bccae8c9d6 (patch) | |
tree | d54c69b51c9b711c698f6f6494975dd5c60bf9ee /llvm/lib/Transforms | |
parent | 28a2d449fa8c252a3950ab44083d018dd0b2a920 (diff) | |
download | bcm5719-llvm-d50a29d61314efd68c84197843dea9bccae8c9d6.tar.gz bcm5719-llvm-d50a29d61314efd68c84197843dea9bccae8c9d6.zip |
Reserve space in vectors before topologically sorting into them. This improves the time to optimize 403.gcc from 28s to 23.5s.
llvm-svn: 37699
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Scalar/GVNPRE.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVNPRE.cpp b/llvm/lib/Transforms/Scalar/GVNPRE.cpp index 078d8954847..045ca5c4f82 100644 --- a/llvm/lib/Transforms/Scalar/GVNPRE.cpp +++ b/llvm/lib/Transforms/Scalar/GVNPRE.cpp @@ -585,6 +585,7 @@ bool GVNPRE::dependsOnInvoke(Value* V) { /// above) void GVNPRE::clean(SmallPtrSet<Value*, 32>& set) { std::vector<Value*> worklist; + worklist.reserve(set.size()); topo_sort(set, worklist); for (unsigned i = 0; i < worklist.size(); ++i) { @@ -1173,6 +1174,7 @@ bool GVNPRE::insertion(Function& F) { // If there is more than one predecessor... if (pred_begin(BB) != pred_end(BB) && ++pred_begin(BB) != pred_end(BB)) { std::vector<Value*> workList; + workList.reserve(anticIn.size()); topo_sort(anticIn, workList); DOUT << "Merge Block: " << BB->getName() << "\n"; |