[RyuJIT] Add a JIT flag for Portable Entry Points and set it by default for Browser compilations#125284
[RyuJIT] Add a JIT flag for Portable Entry Points and set it by default for Browser compilations#125284kg merged 10 commits intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
There was a problem hiding this comment.
Pull request overview
Adds a new JIT/EE interface flag intended to enable “portable entry points”, and enables it by default when compiling for Browser targets (likely for WASM AOT scenarios).
Changes:
- Introduce
CORJIT_FLAG_PORTABLE_ENTRY_POINTS/JIT_FLAG_PORTABLE_ENTRY_POINTSwith bit value32across managed and native JIT interface definitions. - Set the new flag by default in
CorInfoImpl.getJitFlagswhenTargetOS.Browseris the compilation target. - Extend JIT flag equality assertions to include the new flag mapping.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs | Adds the managed CorJitFlag enum value for portable entry points. |
| src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs | Sets the portable entry points flag automatically for Browser-target compilations. |
| src/coreclr/jit/jitee.h | Adds the corresponding JIT_FLAG_* enum value and asserts it matches CORJIT_FLAGS. |
| src/coreclr/inc/corjitflags.h | Adds the native CORJIT_FLAG_PORTABLE_ENTRY_POINTS definition in the JIT/EE interface. |
|
We can use this flag around |
|
How would I describe this flag? I'm not exactly clear on the semantics |
My suggestion from #125284 (comment) "Use portable entrypoints for managed calling convention (see clr-abi.md for details)" |
…lt for Browser compilations (#125284) * Introduces CORJIT_FLAG_PORTABLE_ENTRY_POINTS * Wires up the new PEP flag in a couple places (there are more left to fix) * Renumbers CORJIT_FLAG_ASYNC to not be grouped with the ARM-only JIT flags * This PR consumes two unused JIT flags * Fixes some places where CORJIT_FLAG_ASYNC was not handled
cc @jkotas just improvising here based on existing code.