Uh oh!
There was an error while loading. Please reload this page.
[Wasm RyuJit] Add JIT config JitWasmNyiToR2RUnsupported - #125752
Conversation
Set this to allow crossgen2 for Wasm to continue even if there is a method that runs into an NYI_WASM in the JIT.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
AndyAyersMS
commented
Mar 18, 2026
For example |
AndyAyersMS
commented
Mar 18, 2026
PTAL @dotnet/jit-contrib @davidwrighton |
There was a problem hiding this comment.
Pull request overview
Adds a Wasm-specific JIT config intended to allow crossgen2 to continue when codegen hits NYI_WASM, by mapping those NYIs to ReadyToRun “unsupported” failures.
Changes:
- Adds new JIT config value
JitWasmNyiToR2RUnsupportedunderTARGET_WASM. - Updates
NYI_WASMto optionally callimplReadyToRunUnsupported()(instead of the existing NYI path) based on the new config.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
src/coreclr/jit/jitconfigvalues.h | Introduces the new Wasm config flag intended to control NYI_WASM behavior. |
src/coreclr/jit/error.h | Updates NYI_WASM macro to optionally convert NYIs into R2R-unsupported failures. |
You can also share your feedback on Copilot code review. Take the survey.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
AndyAyersMS
commented
Mar 18, 2026
With this set a debug SPC still runs into two methods with asserts, see #125756 |
There was a problem hiding this comment.
Pull request overview
Adds a Wasm-specific JIT config intended to let crossgen2 continue when encountering Wasm NYI paths by mapping NYI_WASM to an R2R-unsupported failure instead of the usual NYI handling.
Changes:
- Introduce
JitWasmNyiToR2RUnsupportedJIT config value underTARGET_WASM. - Update
NYI_WASMmacro to optionally callimplReadyToRunUnsupported()when the config is enabled (DEBUG-only in this PR). - Add a Wasm NYI check in
emitTypeSizeand adjust Wasm codegen default handling to consult the new config.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| src/coreclr/jit/jitconfigvalues.h | Adds the new Wasm-only JIT config knob. |
| src/coreclr/jit/error.h | Changes NYI_WASM macro behavior based on the new config. |
| src/coreclr/jit/emit.h | Uses NYI_WASM when emitTypeSizes[...] is unexpectedly 0. |
| src/coreclr/jit/codegenwasm.cpp | Adds config-aware handling for unimplemented opcodes in Wasm codegen. |
You can also share your feedback on Copilot code review. Take the survey.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
adamperlin
left a comment
There was a problem hiding this comment.
Looks good to me! This will be very useful.
AndyAyersMS
commented
Mar 19, 2026
OSX Build errors like: |
EgorBo
commented
Mar 19, 2026
That is also from #125757 |
AndyAyersMS
commented
Mar 19, 2026
/ba-g OSX build issues |
Set this to allow crossgen2 for Wasm to continue even if there is a method that runs into an NYI_WASM in the JIT.