Experiments show that inline deferral past pre-inlining slightly
pessimizes the performance.
This patch introduces an option to control inline deferral during PGO.
The option defaults to true for now (that is, NFC).
Paths
| Differential D80776
[Inlining] Introduce -enable-npm-pgo-inline-deferral ClosedPublic Authored by kazu on May 28 2020, 8:42 PM.
Details
Summary Experiments show that inline deferral past pre-inlining slightly This patch introduces an option to control inline deferral during PGO.
Diff Detail
Event Timeline
This revision is now accepted and ready to land.Jun 3 2020, 9:13 AM Closed by commit rG347a599e5f03: [Inlining] Introduce -enable-npm-pgo-inline-deferral (authored by kazu). · Explain WhyJun 4 2020, 1:02 AM This revision was automatically updated to reflect the committed changes. Comment Actions
What are the performance numbers in terms of % you saw when deferral is disabled, if it's ok to share? Was it from Instr. PGO or Sample FDO? Asking because the new switch seems to cover both. Comment Actions
I am seeing 0.2% to 0.3% improvement in one of our internal benchmarks. Please see https://reviews.llvm.org/D81216 for more numbers. My experiment is from Instrumentation-based PGO.
Revision Contents
Diff 267117 llvm/include/llvm/Analysis/InlineAdvisor.h
llvm/include/llvm/Analysis/InlineCost.h
llvm/lib/Analysis/InlineAdvisor.cpp
llvm/lib/Analysis/InlineCost.cpp
llvm/lib/Passes/PassBuilder.cpp
llvm/lib/Transforms/IPO/Inliner.cpp
|
give it a default value (true)?