[llvm] r216174 - Move DisableGVNLoadPRE from populateLTOPassManager to PassManagerBuilder.
Rafael Espindola
rafael.espindola at gmail.com
Thu Aug 21 06:13:18 PDT 2014
Author: rafael
Date: Thu Aug 21 08:13:17 2014
New Revision: 216174
URL: http://llvm.org/viewvc/llvm-project?rev=216174&view=rev
Log:
Move DisableGVNLoadPRE from populateLTOPassManager to PassManagerBuilder.
Modified:
llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h
llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
llvm/trunk/tools/bugpoint/bugpoint.cpp
llvm/trunk/tools/opt/opt.cpp
Modified: llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h?rev=216174&r1=216173&r2=216174&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h (original)
+++ llvm/trunk/include/llvm/Transforms/IPO/PassManagerBuilder.h Thu Aug 21 08:13:17 2014
@@ -118,6 +118,7 @@ public:
bool LoopVectorize;
bool RerollLoops;
bool LoadCombine;
+ bool DisableGVNLoadPRE;
private:
/// ExtensionList - This is list of all of the extensions that are registered.
@@ -144,8 +145,7 @@ public:
/// populateModulePassManager - This sets up the primary pass manager.
void populateModulePassManager(PassManagerBase &MPM);
- void populateLTOPassManager(PassManagerBase &PM, bool RunInliner,
- bool DisableGVNLoadPRE);
+ void populateLTOPassManager(PassManagerBase &PM, bool RunInliner);
};
/// Registers a function for adding a standard set of passes. This should be
Modified: llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOCodeGenerator.cpp?rev=216174&r1=216173&r2=216174&view=diff
==============================================================================
--- llvm/trunk/lib/LTO/LTOCodeGenerator.cpp (original)
+++ llvm/trunk/lib/LTO/LTOCodeGenerator.cpp Thu Aug 21 08:13:17 2014
@@ -474,9 +474,11 @@ bool LTOCodeGenerator::generateObjectFil
// Enabling internalize here would use its AllButMain variant. It
// keeps only main if it exists and does nothing for libraries. Instead
// we create the pass ourselves with the symbol list provided by the linker.
- if (!DisableOpt)
- PassManagerBuilder().populateLTOPassManager(passes, !DisableInline,
- DisableGVNLoadPRE);
+ if (!DisableOpt) {
+ PassManagerBuilder PMB;
+ PMB.DisableGVNLoadPRE = DisableGVNLoadPRE;
+ PMB.populateLTOPassManager(passes, !DisableInline);
+ }
// Make sure everything is still good.
passes.add(createVerifierPass());
Modified: llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp?rev=216174&r1=216173&r2=216174&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp Thu Aug 21 08:13:17 2014
@@ -77,6 +77,7 @@ PassManagerBuilder::PassManagerBuilder()
LoopVectorize = RunLoopVectorization;
RerollLoops = RunLoopRerolling;
LoadCombine = RunLoadCombine;
+ DisableGVNLoadPRE = false;
}
PassManagerBuilder::~PassManagerBuilder() {
@@ -217,7 +218,7 @@ void PassManagerBuilder::populateModuleP
if (OptLevel > 1) {
MPM.add(createMergedLoadStoreMotionPass()); // Merge load/stores in diamond
- MPM.add(createGVNPass()); // Remove redundancies
+ MPM.add(createGVNPass(DisableGVNLoadPRE)); // Remove redundancies
}
MPM.add(createMemCpyOptPass()); // Remove memcpy / form memset
MPM.add(createSCCPPass()); // Constant prop with SCCP
@@ -243,7 +244,7 @@ void PassManagerBuilder::populateModuleP
MPM.add(createInstructionCombiningPass());
addExtensionsToPM(EP_Peephole, MPM);
if (OptLevel > 1 && UseGVNAfterVectorization)
- MPM.add(createGVNPass()); // Remove redundancies
+ MPM.add(createGVNPass(DisableGVNLoadPRE)); // Remove redundancies
else
MPM.add(createEarlyCSEPass()); // Catch trivial redundancies
@@ -282,7 +283,7 @@ void PassManagerBuilder::populateModuleP
MPM.add(createInstructionCombiningPass());
addExtensionsToPM(EP_Peephole, MPM);
if (OptLevel > 1 && UseGVNAfterVectorization)
- MPM.add(createGVNPass()); // Remove redundancies
+ MPM.add(createGVNPass(DisableGVNLoadPRE)); // Remove redundancies
else
MPM.add(createEarlyCSEPass()); // Catch trivial redundancies
@@ -313,8 +314,7 @@ void PassManagerBuilder::populateModuleP
}
void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM,
- bool RunInliner,
- bool DisableGVNLoadPRE) {
+ bool RunInliner) {
// Provide AliasAnalysis services for optimizations.
addInitialAliasAnalysisPasses(PM);
@@ -483,5 +483,5 @@ void LLVMPassManagerBuilderPopulateLTOPa
LLVMBool RunInliner) {
PassManagerBuilder *Builder = unwrap(PMB);
PassManagerBase *LPM = unwrap(PM);
- Builder->populateLTOPassManager(*LPM, RunInliner != 0, false);
+ Builder->populateLTOPassManager(*LPM, RunInliner != 0);
}
Modified: llvm/trunk/tools/bugpoint/bugpoint.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/bugpoint.cpp?rev=216174&r1=216173&r2=216174&view=diff
==============================================================================
--- llvm/trunk/tools/bugpoint/bugpoint.cpp (original)
+++ llvm/trunk/tools/bugpoint/bugpoint.cpp Thu Aug 21 08:13:17 2014
@@ -179,7 +179,7 @@ int main(int argc, char **argv) {
if (StandardLinkOpts) {
PassManagerBuilder Builder;
- Builder.populateLTOPassManager(PM, /*RunInliner=*/true, false);
+ Builder.populateLTOPassManager(PM, /*RunInliner=*/true);
}
if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
Modified: llvm/trunk/tools/opt/opt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=216174&r1=216173&r2=216174&view=diff
==============================================================================
--- llvm/trunk/tools/opt/opt.cpp (original)
+++ llvm/trunk/tools/opt/opt.cpp Thu Aug 21 08:13:17 2014
@@ -267,7 +267,7 @@ static void AddStandardLinkPasses(PassMa
if (DisableOptimizations) return;
PassManagerBuilder Builder;
- Builder.populateLTOPassManager(PM, /*RunInliner=*/!DisableInline, false);
+ Builder.populateLTOPassManager(PM, /*RunInliner=*/!DisableInline);
}
//===----------------------------------------------------------------------===//
More information about the llvm-commits
mailing list