Repository navigation
[User Story] RyuJIT Wasm Codegen Quality Improvements #135985
Copy link
Copy link
Open
Labels
User StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.arch-wasmWebAssembly architectureWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMItenet-performancePerformance related issuePerformance related issue
Milestone
Description
This is a blanket issue meant to track code quality improvements to size, startup, and runtime performance for the new RyuJIT Wasm Backend. Our current priorities are size-focused and so far, size improvements seem highly correlated with startup performance as well. Size improvements are often correlated with steady-state runtime performance improvements, though we shouldn't necessarily assume that will always be the case.
Perf Categories
Size / Startup
Regalloc
- More efficient use of locals: [wasm][r2r] Jit generates code with very large numbers of wasm locals #135139
- Allocate unexposed GC refs to locals: [wasm] Regalloc: Allow Non-exposed GC Ref Locals to Live in Wasm Locals #135543
- More general GC Ref Spilling accounting for liveness across safepoints (see [Wasm][CoreCLR] Enable GC-correct reference/byref locals to avoid hot-loop frame traffic #135980)
Inlining
- Tune inlining policy for Wasm to reduce code size
Morph
- Reduce arithmetic expression expansions: [Wasm][CoreCLR] Preserve native remainder instead of expanding constant MOD to SUB/MUL/DIV #135982
Prolog/Epilog
- Drop stack frame setup and teardown for methods which don't need stack space and don't need unwinding
Loops
- Investigate disabling loop cloning/unrolling on Wasm
SIMD
Tail Calls
Null Checks
- Propagate non-null
thisassertion: [NO MERGE] JIT: Experiment with non-nullthisfor Wasm R2R #134677 - Teach
fgAddrCouldBeNullto recognize more non-null cases
Steady-state runtime perf
Loops
- [Wasm][CoreCLR] Loop-hoisting profitability uses a negative native-register budget #135979 (loop hoisting profitability in a wasm context)
Cross-cutting
Opt-Repeat
- Investigate the impact of running opt repeat in an AOT Wasm context
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
User StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.arch-wasmWebAssembly architectureWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMItenet-performancePerformance related issuePerformance related issue
Activity
dotnet-policy-service commentedon Oct 16, 2026
Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.
dotnet-policy-service commentedon Oct 16, 2026
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.
[-][RyuJIT Wasm] Codegen Quality Improvements[/-][+][User Story] RyuJIT Wasm Codegen Quality Improvements[/+]