summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2014-02-24 18:19:31 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2014-02-24 18:19:31 +0000
commit6ccda923e594bff47aade5a2342f01e5d2dbc661 (patch)
treecaa247c10c3b90de5370f7c8294a99cc6148dbe9
parent83708e65853503a174f36320e4d288b4a5b8b2f2 (diff)
downloadbcm5719-llvm-6ccda923e594bff47aade5a2342f01e5d2dbc661.tar.gz
bcm5719-llvm-6ccda923e594bff47aade5a2342f01e5d2dbc661.zip
LTO: Add the loop vectorizer to the LTO pipeline.
During the LTO phase LICM will move loop invariant global variables out of loops (informed by GlobalModRef). This makes more loops countable presenting opportunity for the loop vectorizer. Adding the loop vectorizer improves some TSVC benchmarks and twolf/ref dataset (5%) on x86-64. radar://15970632 llvm-svn: 202051
-rw-r--r--llvm/lib/Transforms/IPO/PassManagerBuilder.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
index 69e6526c731..21d8e58db7c 100644
--- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
+++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
@@ -331,6 +331,9 @@ void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM,
// Nuke dead stores.
PM.add(createDeadStoreEliminationPass());
+ // More loops are countable try to vectorize them.
+ PM.add(createLoopVectorizePass(true, true));
+
// Cleanup and simplify the code after the scalar optimizations.
PM.add(createInstructionCombiningPass());
OpenPOWER on IntegriCloud