[clang] [llvm] [fatlto] Add coroutine passes when using FatLTO with ThinLTO (PR #134434)
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 8 14:21:31 PDT 2025
================
@@ -1692,6 +1692,19 @@ PassBuilder::buildFatLTODefaultPipeline(OptimizationLevel Level, bool ThinLTO,
if (ThinLTO && PGOOpt && PGOOpt->Action == PGOOptions::SampleUse)
MPM.addPass(buildThinLTODefaultPipeline(Level, /*ImportSummary=*/nullptr));
else {
+ // ModuleSimplification does not run the coroutine passes for
+ // ThinLTOPreLink, so we need the coroutine passes to run for ThinLTO
+ // builds, otherwise they will miscompile.
+ if (ThinLTO) {
+ // TODO: replace w/ buildCoroWrapper() when it takes phase and level into
+ // consideration.
+ CGSCCPassManager CGPM;
----------------
vitalybuka wrote:
maybe better to use buildCoroWrapper?
https://github.com/llvm/llvm-project/pull/134434
More information about the llvm-commits
mailing list