Skip to content

[Wasm RyuJit] More codegen and fixes for crossgen replay#124362

Merged
AndyAyersMS merged 8 commits intodotnet:mainfrom
AndyAyersMS:WasmCodegen4
Feb 14, 2026
Merged

[Wasm RyuJit] More codegen and fixes for crossgen replay#124362
AndyAyersMS merged 8 commits intodotnet:mainfrom
AndyAyersMS:WasmCodegen4

Conversation

@AndyAyersMS
Copy link
Member

Implement codegen for

  • GT_INDEX_ADDR (no bounds check case)
  • GT_LEA
  • GT_MEMORYBARRIER (no-op)
  • GT_RETFILT

Add an SPMI workaround for type symbol lookup.

Relax some checks that assume try regions remain contiguous.

Copilot AI review requested due to automatic review settings February 13, 2026 00:34
@github-actions github-actions bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 13, 2026
@AndyAyersMS
Copy link
Member Author

@dotnet/jit-contrib PTAL

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements additional codegen support and fixes for WebAssembly RyuJIT compilation, particularly to enable crossgen replay functionality. The changes focus on implementing missing instruction node types and relaxing exception handling assumptions for the WASM target's non-contiguous try region layout.

Changes:

  • Implements codegen for GT_INDEX_ADDR (no bounds check case), GT_LEA, GT_MEMORYBARRIER (no-op), and GT_RETFILT nodes
  • Adds SPMI workaround to allow cross-platform replay by providing a fake handle for WASM type symbols when replaying non-WASM traces
  • Relaxes exception handling verification checks to account for WASM's non-contiguous try regions after layout

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp Adds null check to return fake handle for WASM type symbols during cross-replay scenarios
src/coreclr/jit/targetwasm.h Defines WASM_THREAD_SUPPORT constant to document that codegen doesn't support multi-threading yet
src/coreclr/jit/jiteh.cpp Relaxes exception handler verification assertions when try regions are non-contiguous (WASM-specific)
src/coreclr/jit/fgdiagnostic.cpp Relaxes finally-return predecessor check when try regions are non-contiguous
src/coreclr/jit/codegenwasm.cpp Implements codegen for GT_INDEX_ADDR, GT_LEA, GT_MEMORYBARRIER (no-op), and GT_RETFILT; adds INS_I_mul constants

@AndyAyersMS
Copy link
Member Author

/ba-g timeouts in some builds

@AndyAyersMS AndyAyersMS merged commit 1969a31 into dotnet:main Feb 14, 2026
116 of 125 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments