Skip to content

JIT: Double check lvHasExplicitInit when resuming runtime async functions #126750

Closed

Description

@jakobbotsch

Explicit init is computed during SSA which is before runtime async runs. We may forego zeroing that ends up being necessary if GC happens during runtime async resumption.

Activity

  1. self-assigned this
    on Apr 10, 2026
  2. added
    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
    on Apr 10, 2026
  3. added and removed
    untriagedNew issue has not been triaged by the area owner
    on Apr 10, 2026
  4. added this to the 11.0.0 milestone on Apr 10, 2026
  5. dotnet-policy-service commented on Apr 10, 2026

    @dotnet-policy-service
    Contributor

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

  6. added
    Priority:2Work that is important, but not critical for the release
    on Jul 9, 2026
  7. added
    Priority:1Work that is critical for the release, but we could probably ship without
    and removed
    Priority:2Work that is important, but not critical for the release
    on Jul 30, 2026
  8. jakobbotsch commented on Aug 14, 2026

    @jakobbotsch
    MemberAuthor

    We introduce TLS access as part of the IR inserted to save contexts, and that means there will always be a GC safe point between the entry and the user's code. So I don't think there is a problem here in practice.

    I still think an explicit check is warranted in optRemoveRedundantZeroInits, but it can be done in .NET 12.

  9. modified the milestones: 11.0.0, 12.0.0 on Aug 14, 2026
  10. jakobbotsch commented on Aug 14, 2026

    @jakobbotsch
    MemberAuthor

    Nope, I was able to produce an example repro that reports a garbage reference to the runtime using async versions. Moving it back...

  11. modified the milestones: 12.0.0, 11.0.0 on Aug 14, 2026
  12. locked and limited conversation to collaborators on Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Priority:1Work that is critical for the release, but we could probably ship withoutarea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIruntime-async

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions