Add a new PassManagerBuilder customization point,
authorDan Gohman <gohman@apple.com>
Tue, 17 Jan 2012 20:51:32 +0000 (20:51 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 17 Jan 2012 20:51:32 +0000 (20:51 +0000)
EP_ModuleOptimizerEarly, to allow passes to be added before the
main ModulePass optimizers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148329 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Transforms/IPO/PassManagerBuilder.h
lib/Transforms/IPO/PassManagerBuilder.cpp

index d265bdac49681fcbb65f51256bc1e5869c2166f1..b4ba1847816263ee6b5a304f04f5b2cce99238e1 100644 (file)
@@ -60,6 +60,10 @@ public:
     /// out of the frontend.
     EP_EarlyAsPossible,
 
+    /// EP_ModuleOptimizerEarly - This extension point allows adding passes
+    /// just before the main module-level optimization passes.
+    EP_ModuleOptimizerEarly,
+
     /// EP_LoopOptimizerEnd - This extension point allows adding loop passes to
     /// the end of the loop optimizer.
     EP_LoopOptimizerEnd,
index f63f532101b878623ec6899eade6c5e1f2fb541b..afd25dc317d3a0f5f01378d073774d496283b43d 100644 (file)
@@ -110,6 +110,8 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) {
   addInitialAliasAnalysisPasses(MPM);
 
   if (!DisableUnitAtATime) {
+    addExtensionsToPM(EP_ModuleOptimizerEarly, MPM);
+
     MPM.add(createGlobalOptimizerPass());     // Optimize out global vars
 
     MPM.add(createIPSCCPPass());              // IP SCCP