[llvm-commits] [llvm] r168905 - in /llvm/trunk: include/llvm/CodeGen/MachineModuleInfo.h include/llvm/Pass.h include/llvm/PassManager.h lib/VMCore/PassManager.cpp tools/bugpoint/CrashDebugger.cpp tools/llc/llc.cpp tools/llvm-extract/llvm-extract.cpp tools/llvm-prof/llvm-prof.cpp tools/llvm-stress/llvm-stress.cpp tools/lto/LTOCodeGenerator.cpp tools/opt/opt.cpp

Pedro Artigas partigas at apple.com
Thu Nov 29 09:47:05 PST 2012


Author: partigas
Date: Thu Nov 29 11:47:05 2012
New Revision: 168905

URL: http://llvm.org/viewvc/llvm-project?rev=168905&view=rev
Log:
One more step towards making doInitialization and doFinalization useful for
start up and clean up module passes, now that ASAN and TSAN are fixed the
tests pass


Modified:
    llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h
    llvm/trunk/include/llvm/Pass.h
    llvm/trunk/include/llvm/PassManager.h
    llvm/trunk/lib/VMCore/PassManager.cpp
    llvm/trunk/tools/bugpoint/CrashDebugger.cpp
    llvm/trunk/tools/llc/llc.cpp
    llvm/trunk/tools/llvm-extract/llvm-extract.cpp
    llvm/trunk/tools/llvm-prof/llvm-prof.cpp
    llvm/trunk/tools/llvm-stress/llvm-stress.cpp
    llvm/trunk/tools/lto/LTOCodeGenerator.cpp
    llvm/trunk/tools/opt/opt.cpp

Modified: llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineModuleInfo.h Thu Nov 29 11:47:05 2012
@@ -180,7 +180,10 @@
                     const MCObjectFileInfo *MOFI);
   ~MachineModuleInfo();
 
+  using ModulePass::doInitialization;
   bool doInitialization();
+
+  using ModulePass::doFinalization;
   bool doFinalization();
 
   /// EndFunction - Discard function meta information.

Modified: llvm/trunk/include/llvm/Pass.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Pass.h?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Pass.h (original)
+++ llvm/trunk/include/llvm/Pass.h Thu Nov 29 11:47:05 2012
@@ -230,7 +230,7 @@
   /// doInitialization - Virtual method overridden by subclasses to do
   /// any necessary initialization before any pass is run.
   ///
-  virtual bool doInitialization()  { return false; }
+  virtual bool doInitialization(Module &)  { return false; }
 
   /// runOnModule - Virtual method overriden by subclasses to process the module
   /// being operated on.
@@ -239,7 +239,7 @@
   /// doFinalization - Virtual method overriden by subclasses to do any
   /// necessary clean up after all passes have run.
   ///
-  virtual bool doFinalization() { return false; }
+  virtual bool doFinalization(Module &) { return false; }
 
   virtual void assignPassManager(PMStack &PMS,
                                  PassManagerType T);

Modified: llvm/trunk/include/llvm/PassManager.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/PassManager.h?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/include/llvm/PassManager.h (original)
+++ llvm/trunk/include/llvm/PassManager.h Thu Nov 29 11:47:05 2012
@@ -58,14 +58,6 @@
   /// whether any of the passes modifies the module, and if so, return true.
   bool run(Module &M);
 
-  /// doInitialization - Run all of the initializers for the module passes.
-  ///
-  bool doInitialization();
-
-  /// doFinalization - Run all of the finalizers for the module passes.
-  ///
-  bool doFinalization();
-
 private:
   /// PassManagerImpl_New is the actual class. PassManager is just the
   /// wraper to publish simple pass manager interface

Modified: llvm/trunk/lib/VMCore/PassManager.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/PassManager.cpp?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/PassManager.cpp (original)
+++ llvm/trunk/lib/VMCore/PassManager.cpp Thu Nov 29 11:47:05 2012
@@ -1528,12 +1528,12 @@
 }
 
 bool FPPassManager::runOnModule(Module &M) {
-  bool Changed = doInitialization(M);
+  bool Changed = false;
 
   for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
     Changed |= runOnFunction(*I);
 
-  return doFinalization(M) || Changed;
+  return Changed;
 }
 
 bool FPPassManager::doInitialization(Module &M) {
@@ -1541,16 +1541,16 @@
 
   for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index)
     Changed |= getContainedPass(Index)->doInitialization(M);
-
+  
   return Changed;
 }
 
 bool FPPassManager::doFinalization(Module &M) {
   bool Changed = false;
-
+ 
   for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index)
     Changed |= getContainedPass(Index)->doFinalization(M);
-
+  
   return Changed;
 }
 
@@ -1572,6 +1572,10 @@
     Changed |= FPP->doInitialization(M);
   }
 
+  // Initialize module passes
+  for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index)
+    Changed |= getContainedPass(Index)->doInitialization(M);
+
   for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
     ModulePass *MP = getContainedPass(Index);
     bool LocalChanged = false;
@@ -1600,6 +1604,10 @@
     removeDeadPasses(MP, M.getModuleIdentifier(), ON_MODULE_MSG);
   }
 
+  // Finalize module passes
+  for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index)
+    Changed |= getContainedPass(Index)->doFinalization(M);
+
   // Finalize on-the-fly passes
   for (std::map<Pass *, FunctionPassManagerImpl *>::iterator
        I = OnTheFlyManagers.begin(), E = OnTheFlyManagers.end();
@@ -1610,29 +1618,7 @@
     FPP->releaseMemoryOnTheFly();
     Changed |= FPP->doFinalization(M);
   }
-
-  return Changed;
-}
-
-/// Run all of the initializers for the module passes.
-///
-bool MPPassManager::doInitialization() {
-  bool Changed = false;
-
-  for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index)
-    Changed |= getContainedPass(Index)->doInitialization();
-
-  return Changed;
-}
-
-/// Run all of the finalizers for the module passes.
-///
-bool MPPassManager::doFinalization() {
-  bool Changed = false;
-
-  for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index)
-    Changed |= getContainedPass(Index)->doFinalization();
-
+  
   return Changed;
 }
 
@@ -1692,24 +1678,6 @@
 //===----------------------------------------------------------------------===//
 // PassManagerImpl implementation
 
-bool PassManagerImpl::doInitialization() {
-  bool Changed = false;
-
-  for (unsigned Index = 0; Index < getNumContainedManagers(); ++Index)
-    Changed |= getContainedManager(Index)->doInitialization();
-
-  return Changed;
-}
-
-bool PassManagerImpl::doFinalization() {
-  bool Changed = false;
-
-  for (unsigned Index = 0; Index < getNumContainedManagers(); ++Index)
-    Changed |= getContainedManager(Index)->doFinalization();
-
-  return Changed;
-}
-
 //
 /// run - Execute all of the passes scheduled for execution.  Keep track of
 /// whether any of the passes modifies the module, and if so, return true.
@@ -1754,18 +1722,6 @@
   return PM->run(M);
 }
 
-/// doInitialization - Run all of the initializers for the module passes.
-///
-bool PassManager::doInitialization() {
-  return PM->doInitialization();
-}
-
-/// doFinalization - Run all of the finalizers for the module passes.
-///
-bool PassManager::doFinalization() {
-  return PM->doFinalization();
-}
-
 //===----------------------------------------------------------------------===//
 // TimingInfo Class - This class is used to calculate information about the
 // amount of time each pass takes to execute.  This only happens with

Modified: llvm/trunk/tools/bugpoint/CrashDebugger.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/CrashDebugger.cpp?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/tools/bugpoint/CrashDebugger.cpp (original)
+++ llvm/trunk/tools/bugpoint/CrashDebugger.cpp Thu Nov 29 11:47:05 2012
@@ -412,9 +412,7 @@
   // Verify that this is still valid.
   PassManager Passes;
   Passes.add(createVerifierPass());
-  Passes.doInitialization();
   Passes.run(*M);
-  Passes.doFinalization();
 
   // Try running on the hacked up program...
   if (TestFn(BD, M)) {

Modified: llvm/trunk/tools/llc/llc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llc/llc.cpp?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/tools/llc/llc.cpp (original)
+++ llvm/trunk/tools/llc/llc.cpp Thu Nov 29 11:47:05 2012
@@ -359,9 +359,7 @@
     // Before executing passes, print the final values of the LLVM options.
     cl::PrintOptionValues();
 
-    PM.doInitialization();
     PM.run(*mod);
-    PM.doFinalization();
   }
 
   // Declare success.

Modified: llvm/trunk/tools/llvm-extract/llvm-extract.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-extract/llvm-extract.cpp?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-extract/llvm-extract.cpp (original)
+++ llvm/trunk/tools/llvm-extract/llvm-extract.cpp Thu Nov 29 11:47:05 2012
@@ -276,9 +276,7 @@
   else if (Force || !CheckBitcodeOutputToConsole(Out.os(), true))
     Passes.add(createBitcodeWriterPass(Out.os()));
 
-  Passes.doInitialization();
   Passes.run(*M.get());
-  Passes.doFinalization();
 
   // Declare success.
   Out.keep();

Modified: llvm/trunk/tools/llvm-prof/llvm-prof.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-prof/llvm-prof.cpp?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-prof/llvm-prof.cpp (original)
+++ llvm/trunk/tools/llvm-prof/llvm-prof.cpp Thu Nov 29 11:47:05 2012
@@ -287,9 +287,7 @@
   PassManager PassMgr;
   PassMgr.add(createProfileLoaderPass(ProfileDataFile));
   PassMgr.add(new ProfileInfoPrinterPass(PIL));
-  PassMgr.doInitialization();
   PassMgr.run(*M);
-  PassMgr.doFinalization();
 
   return 0;
 }

Modified: llvm/trunk/tools/llvm-stress/llvm-stress.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-stress/llvm-stress.cpp?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-stress/llvm-stress.cpp (original)
+++ llvm/trunk/tools/llvm-stress/llvm-stress.cpp Thu Nov 29 11:47:05 2012
@@ -713,9 +713,7 @@
   PassManager Passes;
   Passes.add(createVerifierPass());
   Passes.add(createPrintModulePass(&Out->os()));
-  Passes.doInitialization();
   Passes.run(*M.get());
-  Passes.doFinalization();
   Out->keep();
 
   return 0;

Modified: llvm/trunk/tools/lto/LTOCodeGenerator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/LTOCodeGenerator.cpp?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/tools/lto/LTOCodeGenerator.cpp (original)
+++ llvm/trunk/tools/lto/LTOCodeGenerator.cpp Thu Nov 29 11:47:05 2012
@@ -342,9 +342,7 @@
   passes.add(createInternalizePass(mustPreserveList));
 
   // apply scope restrictions
-  passes.doInitialization();
   passes.run(*mergedModule);
-  passes.doFinalization();
 
   _scopeRestrictionsDone = true;
 }
@@ -399,9 +397,7 @@
   }
 
   // Run our queue of passes all at once now, efficiently.
-  passes.doInitialization();
   passes.run(*mergedModule);
-  passes.doFinalization();
 
   // Run the code generator, and write assembly file
   codeGenPasses->doInitialization();

Modified: llvm/trunk/tools/opt/opt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=168905&r1=168904&r2=168905&view=diff
==============================================================================
--- llvm/trunk/tools/opt/opt.cpp (original)
+++ llvm/trunk/tools/opt/opt.cpp Thu Nov 29 11:47:05 2012
@@ -820,9 +820,7 @@
   cl::PrintOptionValues();
 
   // Now that we have all of the passes ready, run them.
-  Passes.doInitialization();
   Passes.run(*M.get());
-  Passes.doFinalization();
 
   // Declare success.
   if (!NoOutput || PrintBreakpoints)





More information about the llvm-commits mailing list