[PATCH] D28032: Allow target to specify early module passes

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 21 14:09:50 PST 2016


rampitec created this revision.
rampitec added a reviewer: jlebar.
rampitec added a subscriber: llvm-commits.
rampitec set the repository for this revision to rL LLVM.

Call addEarlyAsPossiblePasses to populate module passes from BackendUtil.

This patch depends on the llvm's counterpart https://reviews.llvm.org/D28031.


Repository:
  rL LLVM

https://reviews.llvm.org/D28032

Files:
  lib/CodeGen/BackendUtil.cpp


Index: lib/CodeGen/BackendUtil.cpp
===================================================================
--- lib/CodeGen/BackendUtil.cpp
+++ lib/CodeGen/BackendUtil.cpp
@@ -341,12 +341,19 @@
   MPM.add(new TargetLibraryInfoWrapperPass(*TLII));
 
   // Add target-specific passes that need to run as early as possible.
-  if (TM)
+  if (TM) {
     PMBuilder.addExtension(
         PassManagerBuilder::EP_EarlyAsPossible,
         [&](const PassManagerBuilder &, legacy::PassManagerBase &PM) {
-          TM->addEarlyAsPossiblePasses(PM);
+          TM->addEarlyAsPossiblePasses(PM, PMT_FunctionPassManager);
+        });
+
+    PMBuilder.addExtension(
+        PassManagerBuilder::EP_ModuleOptimizerEarly,
+        [&](const PassManagerBuilder &, legacy::PassManagerBase &PM) {
+          TM->addEarlyAsPossiblePasses(PM, PMT_ModulePassManager);
         });
+  }
 
   PMBuilder.addExtension(PassManagerBuilder::EP_EarlyAsPossible,
                          addAddDiscriminatorsPass);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28032.82272.patch
Type: text/x-patch
Size: 982 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161221/dd16ebe6/attachment-0001.bin>


More information about the llvm-commits mailing list