aeubanks planned changes to this revision. aeubanks added inline comments.
================ Comment at: llvm/lib/Passes/PassBuilder.cpp:2365 + // Don't do anything for (thin)lto backend compiles at O0. + if (Matches[1] != "thinlto" && Matches[1] != "lto") + MPM.addPass(buildO0DefaultPipeline(L, Matches[1] != "default")); ---------------- aeubanks wrote: > tejohnson wrote: > > This seems to change behavior. For one, previously we were only suppressing > > adding the PGO Instr passes for ThinLTO. Now this will suppress adding the > > coroutines passes and whatever else runRegisteredEPCallbacks was doing. > > Also, it's now doing the same for regular LTO but it didn't seem to do any > > special handling in that case before. Are these changes intended? > The callbacks are generally for two purposes. One is to lower certain > constructs, which only needs to be done once. It should already have been > done in the pre-link step. The other is for optimization purposes at specific > points in the pipeline. Since this is -O0, that doesn't matter. > > So I think this makes sense. Actually, I just noticed that build(Thin)LTODefaultPipeline does handle O0. The default and LTO pre-link ones assert when passed O0 so I assumed that was the case for the LTO pipelines, but that's not the case. I'll change that. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D91585/new/ https://reviews.llvm.org/D91585 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits