summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/GVNPRE.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2007-06-22 00:43:22 +0000
committerOwen Anderson <resistor@mac.com>2007-06-22 00:43:22 +0000
commitd50a29d61314efd68c84197843dea9bccae8c9d6 (patch)
treed54c69b51c9b711c698f6f6494975dd5c60bf9ee /llvm/lib/Transforms/Scalar/GVNPRE.cpp
parent28a2d449fa8c252a3950ab44083d018dd0b2a920 (diff)
downloadbcm5719-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/Scalar/GVNPRE.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/GVNPRE.cpp2
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";
OpenPOWER on IntegriCloud