Skip to content

Conversation

@SingleAccretion
Copy link
Contributor

@SingleAccretion SingleAccretion commented Dec 8, 2025

Contributes to #122309.

This is just the very initial version, I expect we will add more features as the codegen work progresses (e. g. BigInt integration).

@github-actions github-actions bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Dec 8, 2025
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Dec 8, 2025
@SingleAccretion SingleAccretion added arch-wasm WebAssembly architecture area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Dec 8, 2025
@SingleAccretion SingleAccretion marked this pull request as ready for review December 8, 2025 21:46
@dotnet-policy-service
Copy link
Contributor

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

@SingleAccretion SingleAccretion changed the title [RyuJit/WASM] Add a small document for baseline WASM features [RyuJit/WASM] Document baseline WASM features Dec 8, 2025
@SingleAccretion
Copy link
Contributor Author

@dotnet/jit-contrib

@kg
Copy link
Member

kg commented Dec 9, 2025

We need EH and bigint and SIMD for sure, though I don't know which revision of EH we need/want.

@SingleAccretion
Copy link
Contributor Author

We need EH and bigint and SIMD for sure, though I don't know which revision of EH we need/want.

Do we really want SIMD as baseline? It means WasmEnableSIMD == false won't work / will force-disable AOT.

which revision of EH

We could start with the exnref version and see if anyone complains. Currently it's not yet widespread but hopefully in 2 years that'll change.

@kg
Copy link
Member

kg commented Dec 9, 2025

We need EH and bigint and SIMD for sure, though I don't know which revision of EH we need/want.

Do we really want SIMD as baseline? It means WasmEnableSIMD == false won't work / will force-disable AOT.

Performance without SIMD for mono-wasm was borderline unacceptable, to the point that we had to implement a subset of it in the interpreter, not just in AOT. So I suspect we will need it. I'm not against making it optional if it's important for some particular customer or use case - I was under the impression support for it was widespread by now. From looking at https://webassembly.org/features/ it seems like everything except Owi has had it for a while.

@SingleAccretion
Copy link
Contributor Author

I don't have concrete data besides that one "MVP-only" engine user, so have added both EH and SIMD. The baseline can be adjusted down in the future if needed, though it tends to be harder to do that post-factum.

Co-authored-by: Adam Perlin <adamp@nanosoft.com>
@AndyAyersMS
Copy link
Member

Think we should just leave this open until we get most of codegen implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arch-wasm WebAssembly architecture area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants