[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