[llvm] [PassBuilder] Treat pipeline aliases as normal passes (PR #146038)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 27 01:24:54 PDT 2025
================
@@ -240,6 +240,43 @@ MODULE_PASS_WITH_PARAMS(
},
parseStructuralHashPrinterPassOptions, "detailed;call-target-ignored")
+MODULE_PASS_WITH_PARAMS(
+ "default", "", [&](OptimizationLevel L) {
+ setupOptionsForPipelineAlias(PTO, L);
+ return buildPerModuleDefaultPipeline(L);
+ },
+ parseOptLevelParam, "O0;O1;O2;O3;Os;Oz")
+MODULE_PASS_WITH_PARAMS(
+ "thinlto-pre-link", "", [&](OptimizationLevel L) {
+ setupOptionsForPipelineAlias(PTO, L);
+ return buildThinLTOPreLinkDefaultPipeline(L);
+ },
+ parseOptLevelParam, "O0;O1;O2;O3;Os;Oz")
+MODULE_PASS_WITH_PARAMS(
+ "thinlto", "", [&](OptimizationLevel L) {
+ setupOptionsForPipelineAlias(PTO, L);
+ return buildThinLTODefaultPipeline(L, nullptr);
+ },
+ parseOptLevelParam, "O0;O1;O2;O3;Os;Oz")
+MODULE_PASS_WITH_PARAMS(
+ "lto-pre-link", "", [&](OptimizationLevel L) {
+ setupOptionsForPipelineAlias(PTO, L);
+ if (PTO.UnifiedLTO)
+ // When UnifiedLTO is enabled, use the ThinLTO pre-link pipeline. This
+ // avoids compile-time performance regressions and keeps the pre-link
+ // LTO pipeline "unified" for both LTO modes.
+ return buildThinLTOPreLinkDefaultPipeline(L);
+ else
+ return buildLTOPreLinkDefaultPipeline(L);
----------------
arsenm wrote:
No else after return
https://github.com/llvm/llvm-project/pull/146038
More information about the llvm-commits
mailing list