• Manos Koukoutos's avatar
    [wasm-gc] Implement non-nullable function tables · e3acd9f8
    Manos Koukoutos authored
    This adds the possibility to define non-nullable function tables of heap
    types kFunc and user-defined functions. When such table is defined, it
    is obligatory to provide an initializer expression after its limits.
    Currently, this can only be a function reference.
    
    Changes:
    - Change WasmTableObject::raw_type to encode the whole entry type.
    - Restructure call_indirect to load the signature only if needed, and
      do null checks only if needed.
    - Add the requirement to provide an initializer expression for
      non-nullable tables in module-decoder.
    - Rename "global initializer" -> "initializer expression" everywhere.
    - Add table initialization in module-instantiate.
    - Edit both the C++ and JS WasmModuleBuilder.
    - Add and slightly improve tests.
    - Format wasm-module-builder.js.
    
    Bug: v8:9495
    Change-Id: I7453ee7d567afd5b5fe48a4f1653513787cfe99a
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2732673
    Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#73215}
    e3acd9f8
liftoff-compiler.cc 241 KB