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
This commit is contained in:
Hal Finkel 2013-11-17 16:02:50 +00:00
parent e8a957d2a9
commit c8dc96be28
2 changed files with 3 additions and 1 deletions

View File

@ -112,6 +112,7 @@ public:
bool SLPVectorize;
bool LoopVectorize;
bool LateVectorize;
bool RerollLoops;
private:
/// ExtensionList - This is list of all of the extensions that are registered.

View File

@ -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.