[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