Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inliner: look at block weight allocation in inlinees #6096

Closed
AndyAyersMS opened this issue Jun 9, 2016 · 2 comments
Closed

Inliner: look at block weight allocation in inlinees #6096

AndyAyersMS opened this issue Jun 9, 2016 · 2 comments
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI enhancement Product code improvement that does NOT require public API changes/additions optimization tenet-performance Performance related issue
Milestone

Comments

@AndyAyersMS
Copy link
Member

The inliner's profitability model needs to take the local call site frequency into account. This value can either be provided by IBC (Instrumented Block Count) profile feedback or estimated (via heuristics).

Verify that the initial (top-level) estimates are reasonable. Since IBC is not yet available for CoreCLR we can initially just do this for the estimated weights. As far as I know the JIT has a simple model for branch probabilities.

As inlines are performed, new calll sites are added from calls in inlinees. Determine if the block weight allocation for these newly introduced call sites are likewise reasonable. These weight determinations are made in fgInsertInlineeBlocks.

category:cq
theme:inlining
skill-level:intermediate
cost:medium

@AndyAyersMS AndyAyersMS self-assigned this Jun 9, 2016
@msftgits msftgits transferred this issue from dotnet/coreclr Jan 30, 2020
@msftgits msftgits added this to the Future milestone Jan 30, 2020
@AndyAyersMS AndyAyersMS mentioned this issue Oct 19, 2020
54 tasks
@BruceForstall BruceForstall added the JitUntriaged CLR JIT issues needing additional triage label Oct 28, 2020
@AndyAyersMS AndyAyersMS removed the JitUntriaged CLR JIT issues needing additional triage label Nov 24, 2020
@AndyAyersMS
Copy link
Member Author

This issue is largely resolved for methods with profile data via #42277.

If there is no profile data the ultimate plan is to rely on profile synthesis. We may or may not get to this in .NET 6, so will keep this issue in Future for now.

@AndyAyersMS
Copy link
Member Author

Profile synthesis for inlinees (when root method has profile data, and inlinee doesn't), was implemented in #101739

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI enhancement Product code improvement that does NOT require public API changes/additions optimization tenet-performance Performance related issue
Projects
None yet
Development

No branches or pull requests

3 participants