From: Serge Guelton Date: Tue, 2 Jul 2019 15:52:39 +0000 (+0000) Subject: Provide basic Full LTO extension points X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3a58154548c4ed4a48a0a026b38fcea5167e931d;p=llvm Provide basic Full LTO extension points Differential Revision: https://reviews.llvm.org/D61738 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364937 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Transforms/IPO/PassManagerBuilder.h b/include/llvm/Transforms/IPO/PassManagerBuilder.h index 33648e0f083..63ff00afc2a 100644 --- a/include/llvm/Transforms/IPO/PassManagerBuilder.h +++ b/include/llvm/Transforms/IPO/PassManagerBuilder.h @@ -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. diff --git a/lib/Transforms/IPO/PassManagerBuilder.cpp b/lib/Transforms/IPO/PassManagerBuilder.cpp index d451653533a..3ea77f08fd3 100644 --- a/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -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()); }