You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now async variants are explicitly excluded from PGO.
No fundamental reason for that, it is just an NYI that needs to be revisited, implemented, tested.
I assume by async variants you mean specifically the runtime provided thunks. I believe PGO already works fine in the methods with user provided IL (at least it was the case a few months ago).
I did not look in details if it is only thunks that we do not support. This is just an issue to make sure we act on TODOs in that area.
It may be that we decide that what we have working is sufficient. Then removing TODO would be the only action.
I am not sure how much thunks can dynamically learn and improve something.
Maybe some kind of devirtualization/inlining is still possible.
You did the work in dotnet/runtimelab#2818 (comment) to ensure tiered compilation and PGO worked (in the first version the PR broke it.)
I am not sure how much thunks can dynamically learn something and improve.
Maybe some kind of devirtualization/inlining is still possible.
Yeah, this would likely be around inlining. But yes, it likely is not super important, and it is not clear if we would even benefit from it. I also believe there currently is no tiering at all for the runtime provided stubs (so they are always compiled in tier 1).
Ah, right. I remember there was a major issue with tiering as we got confused which of the two variants we are dealing with.
I forgot that it was in a PGO testcase.
I guess PGO is working in scenarios where we allow tiering.
Activity
dotnet-policy-service commentedon Apr 27, 2025
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.
dotnet-policy-service commentedon Apr 27, 2025
Tagging subscribers to this area: @mangod9
See info in area-owners.md if you want to be subscribed.
jakobbotsch commentedon Apr 27, 2025
I assume by async variants you mean specifically the runtime provided thunks. I believe PGO already works fine in the methods with user provided IL (at least it was the case a few months ago).
VSadov commentedon Apr 27, 2025
I did not look in details if it is only thunks that we do not support. This is just an issue to make sure we act on TODOs in that area.
It may be that we decide that what we have working is sufficient. Then removing TODO would be the only action.
I am not sure how much thunks can dynamically learn and improve something.
Maybe some kind of devirtualization/inlining is still possible.
jakobbotsch commentedon Apr 27, 2025
You did the work in dotnet/runtimelab#2818 (comment) to ensure tiered compilation and PGO worked (in the first version the PR broke it.)
Yeah, this would likely be around inlining. But yes, it likely is not super important, and it is not clear if we would even benefit from it. I also believe there currently is no tiering at all for the runtime provided stubs (so they are always compiled in tier 1).
VSadov commentedon Apr 28, 2025
Ah, right. I remember there was a major issue with tiering as we got confused which of the two variants we are dealing with.
I forgot that it was in a PGO testcase.
I guess PGO is working in scenarios where we allow tiering.
dotnet-policy-service commentedon Jun 29, 2026
Tagging subscribers to this area: @JulieLeeMSFT, @EgorBo
See info in area-owners.md if you want to be subscribed.