Skip to content

JIT/EE interface cleanup - #136618

Merged
jkotas merged 2 commits into
dotnet:mainfrom
jkotas:jkotas-jit-interface-cleanup
Oct 29, 2026
Merged

jkotas merged 2 commits into
dotnet:mainfrom
jkotas:jkotas-jit-interface-cleanup

Conversation

@jkotas

@jkotas jkotas commented Oct 29, 2026

Copy link
Copy Markdown
Member
  • Delete unused methodMustBeLoadedBeforeCodeIsRun and classMustBeLoadedBeforeCodeIsRun methods
  • Add dedicated byref-like and shared-instantiation queries
  • Normalize eeIsByRefLike casing
  • Simplify async continuation capture checks.

Add dedicated byref-like and shared-instantiation queries across the VM, AOT tools, and SuperPMI. Normalize eeIsByRefLike casing and simplify async continuation capture checks.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@jkotas jkotas added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Oct 29, 2026
@jkotas
jkotas requested review from EgorBo and a balanced review from Copilot October 29, 2026 05:50
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging @dotnet/jit-contrib for JIT-EE GUID update

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 6 pipeline(s).
10 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Relying on IsStackOnly() alone can allow stress-generated layouts containing GC byrefs into continuations, violating ContinuationLayoutBuilder::Create’s assertion.

1 open issue
What changed in this PR

This PR streamlines the JIT–execution engine interface across CoreCLR, ahead-of-time compilers, and SuperPMI.

Changes:

  • Removes unused class/method loading callbacks and updates interface versioning.
  • Adds dedicated byref-like and shared-instantiation queries, including wrappers and SuperPMI recording/replay support.
  • Normalizes eeIsByRefLike casing and simplifies async continuation capture checks.
File Description
src/​coreclr/​vm/​jitinterface.cpp Implements dedicated queries and removes obsolete callbacks.
src/​coreclr/​tools/​superpmi/​superpmi/​icorjitinfo.cpp Updates query replay and removes obsolete call recording.
src/​coreclr/​tools/​superpmi/​superpmi-shim-simple/​icorjitinfo_generated.cpp Updates generated forwarding methods.
src/​coreclr/​tools/​superpmi/​superpmi-shim-counter/​icorjitinfo_generated.cpp Updates generated call-counting wrappers.
src/​coreclr/​tools/​superpmi/​superpmi-shim-collector/​icorjitinfo.cpp Records new query results and removes obsolete callbacks.
src/​coreclr/​tools/​superpmi/​superpmi-shared/​methodcontext.h Declares query support and assigns packet identifiers.
src/​coreclr/​tools/​superpmi/​superpmi-shared/​methodcontext.cpp Implements query recording, dumping, and replay.
src/​coreclr/​tools/​superpmi/​superpmi-shared/​lwmlist.h Adds maps for the new queries.
src/​coreclr/​tools/​superpmi/​superpmi-shared/​crlwmlist.h Removes obsolete loading-call maps.
src/​coreclr/​tools/​superpmi/​superpmi-shared/​compileresult.h Removes obsolete recording declarations.
src/​coreclr/​tools/​superpmi/​superpmi-shared/​compileresult.cpp Removes obsolete recording implementations.
src/​coreclr/​tools/​Common/​JitInterface/​ThunkGenerator/​ThunkInput.txt Updates the interface generator input.
src/​coreclr/​tools/​Common/​JitInterface/​CorInfoImpl.cs Implements managed queries and removes an unused callback.
src/​coreclr/​tools/​Common/​JitInterface/​CorInfoImpl_generated.cs Updates generated managed callbacks.
src/​coreclr/​tools/​aot/​jitinterface/​jitinterface_generated.h Updates generated native callback wrappers.
src/​coreclr/​tools/​aot/​ILCompiler.RyuJit/​JitInterface/​CorInfoImpl.RyuJit.cs Removes the no-op class-loading callback.
src/​coreclr/​tools/​aot/​ILCompiler.ReadyToRun/​JitInterface/​CorInfoImpl.ReadyToRun.cs Removes the handle-based class-loading overload.
src/​coreclr/​jit/​morph.cpp Updates byref-like helper casing.
src/​coreclr/​jit/​layout.cpp Updates byref-like helper casing.
src/​coreclr/​jit/​importercalls.cpp Updates the byref-like intrinsic query call.
src/​coreclr/​jit/​importer.cpp Updates byref-like helper call sites.
src/​coreclr/​jit/​ICorJitInfo_wrapper_generated.hpp Updates generated instrumented wrappers.
src/​coreclr/​jit/​ICorJitInfo_names_generated.h Updates the interface method-name list.
src/​coreclr/​jit/​ee_il_dll.hpp Routes helper queries through dedicated interface methods.
src/​coreclr/​jit/​compiler.h Renames the byref-like helper declaration.
src/​coreclr/​jit/​asyncanalysis.cpp Simplifies struct continuation-capture filtering.
src/​coreclr/​inc/​jiteeversionguid.h Changes the JIT/EE compatibility identifier.
src/​coreclr/​inc/​icorjitinfoimpl_generated.h Updates generated override declarations.
src/​coreclr/​inc/​corinfo.h Adds dedicated queries and removes obsolete interface methods.

Review effort: Balanced

Comment thread src/coreclr/jit/asyncanalysis.cpp Resolved
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Comment thread src/coreclr/inc/corinfo.h Resolved
@jkotas
jkotas merged commit 00599fa into dotnet:main Oct 29, 2026
118 checks passed
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 12.0-preview1 milestone Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-CodeGen-coreclr CLR 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.

3 participants