aeubanks added a comment.
What about removing the existing AlwaysInlinerPass and replacing it with this
one? Or is that something you were planning to do in a follow-up change?
> open the opportunity to help the full inliner by performing additional
> function passes after the mandatory inlinings, but before the full inliner
This change doesn't run the function simplification pipeline between the
mandatory and full inliner though, only
if (AttributorRun & AttributorRunOption::CGSCC)
MainCGPipeline.addPass(AttributorCGSCCPass());
if (PTO.Coroutines)
MainCGPipeline.addPass(CoroSplitPass(Level != OptimizationLevel::O0));
// Now deduce any function attributes based in the current code.
MainCGPipeline.addPass(PostOrderFunctionAttrsPass());
And is there any evidence that running the function simplification pipeline
between the mandatory and full inliner is helpful? It could affect compile
times.
I'd think that adding the mandatory inliner right before the full inliner in
the same CGSCC pass manager would do the job. e.g. add it in
`ModuleInlinerWrapperPass::ModuleInlinerWrapperPass()` right before
`PM.addPass(InlinerPass());`
================
Comment at: llvm/include/llvm/Analysis/InlineAdvisor.h:27
/// There are 3 scenarios we can use the InlineAdvisor:
/// - Default - use manual heuristics.
----------------
4
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91567/new/
https://reviews.llvm.org/D91567
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits