[Wasm RyuJit] Add JIT config JitWasmNyiToR2RUnsupported#125752
[Wasm RyuJit] Add JIT config JitWasmNyiToR2RUnsupported#125752AndyAyersMS merged 4 commits intodotnet:mainfrom
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 |
|
For example |
|
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.
|
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.
adamperlin
left a comment
There was a problem hiding this comment.
Looks good to me! This will be very useful.
|
OSX Build errors like: |
That is also from #125757 |
|
/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.