aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms/IPO/PassManagerBuilder.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-11-17 16:02:50 +0000
committerHal Finkel <hfinkel@anl.gov>2013-11-17 16:02:50 +0000
commitc8dc96be28fd1a3d6ddebbb48b8d55b61e4bd89b (patch)
treeef0d752361928fd7bf0a0142d4b938eede1be18d /lib/Transforms/IPO/PassManagerBuilder.cpp
parente8a957d2a91d02af0b9c3808b31067d236b22196 (diff)
downloadexternal_llvm-c8dc96be28fd1a3d6ddebbb48b8d55b61e4bd89b.zip
external_llvm-c8dc96be28fd1a3d6ddebbb48b8d55b61e4bd89b.tar.gz
external_llvm-c8dc96be28fd1a3d6ddebbb48b8d55b61e4bd89b.tar.bz2
Add a loop rerolling flag to the PassManagerBuilder
This adds a boolean member variable to the PassManagerBuilder to control loop rerolling (just like we have for unrolling and the various vectorization options). This is necessary for control by the frontend. Loop rerolling remains disabled by default at all optimization levels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194966 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO/PassManagerBuilder.cpp')
-rw-r--r--lib/Transforms/IPO/PassManagerBuilder.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Transforms/IPO/PassManagerBuilder.cpp b/lib/Transforms/IPO/PassManagerBuilder.cpp
index 5399e68..24c5018 100644
--- a/lib/Transforms/IPO/PassManagerBuilder.cpp
+++ b/lib/Transforms/IPO/PassManagerBuilder.cpp
@@ -69,6 +69,7 @@ PassManagerBuilder::PassManagerBuilder() {
SLPVectorize = RunSLPVectorization;
LoopVectorize = RunLoopVectorization;
LateVectorize = LateVectorization;
+ RerollLoops = RunLoopRerolling;
}
PassManagerBuilder::~PassManagerBuilder() {
@@ -220,7 +221,7 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) {
addExtensionsToPM(EP_ScalarOptimizerLate, MPM);
- if (RunLoopRerolling)
+ if (RerollLoops)
MPM.add(createLoopRerollPass());
if (SLPVectorize)
MPM.add(createSLPVectorizerPass()); // Vectorize parallel scalar chains.