[PATCH] D61738: Provide basic LTO extension points

serge via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 9 08:51:33 PDT 2019


serge-sans-paille created this revision.
serge-sans-paille added reviewers: mehdi_amini, pcc.
Herald added subscribers: llvm-commits, dexonsmith, hiraditya, inglorion.
Herald added a project: LLVM.

There is no extension point for LTO passes, this patch provides two basic extension points. They don't apply to ThinLTO but it's a debatable question.


Repository:
  rL LLVM

https://reviews.llvm.org/D61738

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


Index: llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
===================================================================
--- llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
+++ llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
@@ -1012,6 +1012,8 @@
   if (VerifyInput)
     PM.add(createVerifierPass());
 
+  addExtensionsToPM(EP_LinkTimeOptimizationEarly, PM);
+
   if (OptLevel != 0)
     addLTOOptimizationPasses(PM);
   else {
@@ -1033,6 +1035,8 @@
   if (OptLevel != 0)
     addLateLTOOptimizationPasses(PM);
 
+  addExtensionsToPM(EP_LinkTimeOptimizationLast, PM);
+
   if (VerifyOutput)
     PM.add(createVerifierPass());
 }
Index: llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h
===================================================================
--- llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h
+++ llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h
@@ -112,6 +112,14 @@
     /// passes at the end of the main CallGraphSCC passes and before any
     /// function simplification passes run by CGPassManager.
     EP_CGSCCOptimizerLate,
+
+    /// EP_LinkTimeOptimizationStart - This extensions point allow adding passes that
+    /// run at Link Time, before any Link Time Optimization.
+    EP_LinkTimeOptimizationEarly,
+
+    /// EP_LinkTimeOptimizationStart - This extensions point allow adding passes that
+    /// run at Link Time, after all Link Time Optimization.
+    EP_LinkTimeOptimizationLast,
   };
 
   /// The Optimization Level - Specify the basic optimization level.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61738.198844.patch
Type: text/x-patch
Size: 1507 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190509/b09ee43b/attachment.bin>


More information about the llvm-commits mailing list