aeubanks marked an inline comment as done.
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"));
----------------
tejohnson wrote:
> aeubanks wrote:
> > 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.
> Ok, just to confirm, it seems like this code was incorrectly adding 
> additional passes before for thinlto<O0> (coroutines, 
> runRegisteredEPCallbacks) and for lto<O0> (pgo, coroutines, 
> runRegisteredEPCallbacks) - is that correct?
> 
> I would have expected some changes in the new PM pipeline tests, but it looks 
> like there is a lack of testing of these two. I don't see any pipeline tests 
> for lto<O0>, and only one for thinlto<O0> - and that only checks the PGO 
> passes (llvm/test/Other/new-pm-pgo-O0.ll). Can you add lto<O0> to that test? 
> Can you also beef it up to add some of the other passes that (I think) we 
> were previously adding below here for thinlto and lto that we won't anymore?
added a new test in the vein of new-pm-defaults.ll, could you see if the 
printed passes make sense?


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

Reply via email to