[PATCH] D110658: [InlineAdvisor] Add -inline-replay-strict to replay inline decisions only in callers that have remarks
Di Mo via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 28 17:13:09 PDT 2021
modimo marked an inline comment as not done.
modimo added inline comments.
================
Comment at: llvm/lib/Transforms/IPO/Inliner.cpp:835
// Check whether we want to inline this callsite.
- if (!Advice->isInliningRecommended()) {
+ if (!Advice || !Advice->isInliningRecommended()) {
Advice->recordUnattemptedInlining();
----------------
modimo wrote:
> mtrofin wrote:
> > modimo wrote:
> > > Since getAdvice returns a unique_ptr, returning a null seems like a good way to indicate "no advice". Does that also make sense for the ML inliner @mtrofin?
> > The design intent was for the advice to be clear, i.e. either inline or not. You probably want to delegate the decision to some other advisor if you don't have one? i.e. the remarks advisor could delegate to the default one - and return a non-null Advice. WDYT?
> It does delegate it in the CGSCC case because we have a nicely nested system with the default one taking over.
>
> Unfortunately the SampleProfile inliner currently isn't using the InlineAdvisor setup. That being said, perhaps the better approach is to adapt the SampleProfile inliner to an InlineAdvisor so the replay advisor will always return a non-null.
The SampleProfile inliner needs additional information beyond `CallBase` to make its decision. Namely, `InlineCandidate` which contains sampling information. Does it make sense to extend `getAdvice` to take additional information?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D110658/new/
https://reviews.llvm.org/D110658
More information about the llvm-commits
mailing list