]> granicus.if.org Git - llvm/commitdiff
Provide basic Full LTO extension points
authorSerge Guelton <sguelton@redhat.com>
Tue, 2 Jul 2019 15:52:39 +0000 (15:52 +0000)
committerSerge Guelton <sguelton@redhat.com>
Tue, 2 Jul 2019 15:52:39 +0000 (15:52 +0000)
Differential Revision: https://reviews.llvm.org/D61738

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

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

index 33648e0f0835649ae455b1c844967d5061645a78..63ff00afc2ae7b8a030b96f1ff669e3fb4e3efbb 100644 (file)
@@ -112,6 +112,16 @@ public:
     /// passes at the end of the main CallGraphSCC passes and before any
     /// function simplification passes run by CGPassManager.
     EP_CGSCCOptimizerLate,
+
+    /// EP_FullLinkTimeOptimizationEarly - This extensions point allow adding
+    /// passes that
+    /// run at Link Time, before Full Link Time Optimization.
+    EP_FullLinkTimeOptimizationEarly,
+
+    /// EP_FullLinkTimeOptimizationLast - This extensions point allow adding
+    /// passes that
+    /// run at Link Time, after Full Link Time Optimization.
+    EP_FullLinkTimeOptimizationLast,
   };
 
   /// The Optimization Level - Specify the basic optimization level.
index d451653533a7c4cd07419dadfff1db931dd207b8..3ea77f08fd3c39b1eb63b6cf2bc8d4e027cf8c54 100644 (file)
@@ -1016,6 +1016,8 @@ void PassManagerBuilder::populateLTOPassManager(legacy::PassManagerBase &PM) {
   if (VerifyInput)
     PM.add(createVerifierPass());
 
+  addExtensionsToPM(EP_FullLinkTimeOptimizationEarly, PM);
+
   if (OptLevel != 0)
     addLTOOptimizationPasses(PM);
   else {
@@ -1037,6 +1039,8 @@ void PassManagerBuilder::populateLTOPassManager(legacy::PassManagerBase &PM) {
   if (OptLevel != 0)
     addLateLTOOptimizationPasses(PM);
 
+  addExtensionsToPM(EP_FullLinkTimeOptimizationLast, PM);
+
   if (VerifyOutput)
     PM.add(createVerifierPass());
 }