Skip to content

[RyuJit/WASM] Decide what the baseline ISA should be #122309

@SingleAccretion

Description

@SingleAccretion

I. e. what minimum set of features we will assume "always exists" and hence won't need to add ISA constants and compOpportunisticallyDependsOn checks (in the Jit). This is notably not about what the "default" target ISA should be.

Some things that will definitely be in the baseline:

  1. https://github.com/WebAssembly/mutable-global (global.set).

Some things that should probably be in the baseline but have only minor impact on code generation (hence it wouldn't be hard to support excluding them):

  1. https://github.com/WebAssembly/nontrapping-float-to-int-conversions (trunc_sat family of instructions).
  2. https://github.com/WebAssembly/bulk-memory-operations (native memmove/memset).

Some things that would have major impact on code generation:

  1. Exception handling
    • Notably, this proposal has two versions: legacy and "new / exnref", which is relatively new.
    • NAOT-LLVM supports turning exceptions off with 2 other unwinding schemes and it has been an often-used feature. However for R2R it may be acceptable to say "no exceptions -> interpreter only".

Part of: #121208.

Metadata

Metadata

Assignees

No one assigned

    Labels

    arch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions