asbirlea added inline comments.
================ Comment at: llvm/lib/Passes/PassBuilder.cpp:1659 + bool DebugLogging) { + for (auto &C : PipelineStartEPCallbacks) + C(MPM); ---------------- aeubanks wrote: > ychen wrote: > > What I have in mind is a newly added `O0EPCallbacks` field in PassBuilder > > class. Then we can keep existing EPCallbacks (including > > PipelineStartEPCallbacks) for >O0 optimization pipeline. Yeah, then you > > need to add related passes to O0EPCallbacks (for BPF in this case). > It's a tradeoff between having to specify required passes in both > O0EPCallbacks and PipelineStartEPCallbacks which is repetitive, versus making > all callbacks in PipelineStartEPCallbacks run at -O0, meaning even optional > passes in PipelineStartEPCallbacks will run at -O0 (may be skipped via > optnone). > > The legacy PM chooses the first, and I'm inclined to keep it that way just > for consistency. > > If we did go down the second route, we could just have a second TargetMachine > API like TargetMachine::addO0Passes() which directly adds passes to a > ModulePassManager. This seems more in line with the LPM behavior for O0. If BPF needs those passes even for O0 they should be added as such. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D89158/new/ https://reviews.llvm.org/D89158 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits