Skip to content

[RuntimeAsync] PGO support. #115096

Closed

Description

@VSadov

Re: #114675 (comment)

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.

Activity

  1. dotnet-policy-service commented on Apr 27, 2025

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
    See info in area-owners.md if you want to be subscribed.

  2. added and removed
    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
    on Apr 27, 2025
  3. dotnet-policy-service commented on Apr 27, 2025

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @mangod9
    See info in area-owners.md if you want to be subscribed.

  4. jakobbotsch commented on Apr 27, 2025

    @jakobbotsch
    Member

    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).

  5. VSadov commented on Apr 27, 2025

    @VSadov
    MemberAuthor

    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.

  6. jakobbotsch commented on Apr 27, 2025

    @jakobbotsch
    Member

    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).

  7. VSadov commented on Apr 28, 2025

    @VSadov
    MemberAuthor

    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.

  8. removed
    untriagedNew issue has not been triaged by the area owner
    on Jul 1, 2025
  9. added this to the 11.0.0 milestone on Jul 1, 2025
  10. dotnet-policy-service commented on Jun 29, 2026

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @JulieLeeMSFT, @EgorBo
    See info in area-owners.md if you want to be subscribed.

  11. locked and limited conversation to collaborators on Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

  • Status
    No status

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions