diff options
| author | JF Bastien <jfb@google.com> | 2014-10-21 23:18:21 +0000 |
|---|---|---|
| committer | JF Bastien <jfb@google.com> | 2014-10-21 23:18:21 +0000 |
| commit | f42a6ea5ac541ad2b5863a0d406683f5e43a8106 (patch) | |
| tree | bd778adbd850717eaf6073f88483af2d78dc6820 /llvm/lib | |
| parent | ef1c9ad8644d495c32a39b69763898e262b216bd (diff) | |
| download | bcm5719-llvm-f42a6ea5ac541ad2b5863a0d406683f5e43a8106.tar.gz bcm5719-llvm-f42a6ea5ac541ad2b5863a0d406683f5e43a8106.zip | |
LTO: respect command-line options that disable vectorization.
Summary: Patches 202051 and 208013 added calls to LTO's PassManager which unconditionally add LoopVectorizePass and SLPVectorizerPass instead of following the logic in PassManagerBuilder::populateModulePassManager and honoring the -vectorize-loops -run-slp-after-loop-vectorization flags.
Reviewers: nadav, aschwaighofer, yijiang
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5884
llvm-svn: 220345
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index 877fc712ec7..4e048b7e91a 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -440,10 +440,12 @@ void PassManagerBuilder::addLTOOptimizationPasses(PassManagerBase &PM) { // More loops are countable; try to optimize them. PM.add(createIndVarSimplifyPass()); PM.add(createLoopDeletionPass()); - PM.add(createLoopVectorizePass(true, true)); + PM.add(createLoopVectorizePass(DisableUnrollLoops, LoopVectorize)); // More scalar chains could be vectorized due to more alias information - PM.add(createSLPVectorizerPass()); // Vectorize parallel scalar chains. + if (RunSLPAfterLoopVectorization) + if (SLPVectorize) + PM.add(createSLPVectorizerPass()); // Vectorize parallel scalar chains. // After vectorization, assume intrinsics may tell us more about pointer // alignments. |

