Skip to content

Support dynamically creating tailored continuation layouts - #120411

Merged
jakobbotsch merged 51 commits into
dotnet:mainfrom
jakobbotsch:tailored-continuation-layouts
Oct 18, 2025
Merged

Support dynamically creating tailored continuation layouts#120411
jakobbotsch merged 51 commits into
dotnet:mainfrom
jakobbotsch:tailored-continuation-layouts

Conversation

@jakobbotsch

Copy link
Copy Markdown
Member

Add ability for the VM to dynamically create continuation layout types and for the JIT to request such types to be created.

Add ability for the VM to dynamically create continuation layout types
and for the JIT to request such types to be created.
@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Oct 4, 2025
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

Comment threadsrc/coreclr/vm/jitinterface.cpp Outdated
Comment threadsrc/coreclr/vm/methodtable.h Outdated
Comment threadsrc/coreclr/vm/jitinterface.cpp Outdated
Comment threadsrc/coreclr/vm/jitinterface.cpp Outdated
Comment threadsrc/coreclr/vm/methodtable.cpp Outdated
Comment threadsrc/coreclr/vm/methodtable.inl Outdated
Comment threadsrc/coreclr/inc/corinfo.h Outdated
Comment threadsrc/coreclr/jit/async.cpp
Comment threadsrc/coreclr/inc/corinfo.h Outdated

@noahfalknoahfalk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me modulo making RuntimeAsync on by default. If there is a need to get it on by default regardless of the diagnostics I'd suggest we do it in a separate PR.

Comment threadsrc/coreclr/inc/clrconfigvalues.h Outdated

@AndyAyersMSAndyAyersMS left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JIT changes look good.

Comment threadsrc/coreclr/inc/corinfo.h Outdated

@jkotasjkotas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@noahfalknoahfalk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto!

@VSadovVSadov left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!!

Comment threadsrc/coreclr/vm/asyncthunks.cpp
Comment threadsrc/coreclr/vm/jitinterface.cpp
Comment threadsrc/coreclr/vm/corelib.h
@jakobbotsch

Copy link
Copy Markdown
MemberAuthor

Some numbers for the micro benchmark in #120865 (comment) that measures raw suspension/resumption performance, with 10 million iterations:

Before the change: Took 596.9 ms
After the change: Took 558.0 ms
Async1 for comparison: Took 332.1 ms

@jakobbotsch
jakobbotsch merged commit c928a95 into dotnet:mainOct 18, 2025
148 of 150 checks passed
@jakobbotsch
jakobbotsch deleted the tailored-continuation-layouts branch October 18, 2025 14:59
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Nov 18, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@jakobbotsch@noahfalk@jkotas@jkoritzinsky@VSadov@AndyAyersMS@davidwrighton