-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
JIT: Suboptimal block layout with loops exiting to returns #105083
Comments
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
Thanks for pointing this out. I suspect
The edge likelihoods look sketchy. The block weights suggest the edge In this case, |
With #105084, here's the new layout:
|
I noticed this codegen from the aspnet collection:
Note the
G_M16141_IG04
epilog in the middle of the loop. I would expect that epilog to be placed after the loop instead, such thatG_M16141_IG05
was packed together withG_M16141_IG03
. In this case that block even has higher block weight, so I am surprised to see it there.FWIW, this problem seems quite common without PGO; e.g.
results in
without PGO (e.g. when looking in disasmo, or with
DOTNET_TieredCompilation=0
).Not sure if this is already on the radar, cc @amanasifkhalid @dotnet/jit-contrib
The text was updated successfully, but these errors were encountered: