[PATCH] D91585: [NPM] Move more O0 pass building into PassBuilder

Arthur Eubanks via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 17 13:16:39 PST 2020


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



More information about the cfe-commits mailing list