• Manos Koukoutos's avatar
    [wasm-gc] Remove abstract rtts · b77deeca
    Manos Koukoutos authored
    In the latest wasm-gc spec, rtts of abstract types are no longer
    allowed. Consequently, canonical rtts of concrete types always have
    a depth of 0.
    
    Changes:
    - Change the immediate argument of rtts to a type index over a heap
      type. Abstract it with TypeIndexImmediate in function body decoding.
      This affects:
      value_type.h, read_value_type(), decoding of relevant opcodes,
      wasm subtyping, WasmInitExpr, consume_init_expr(), and
      wasm-module-builder.cc.
    - In function-body-decoder-impl.h, update rtt.canon to always produce
      an rtt of depth 0.
    - Pass a unit32_t type index over a HeapType to all rtt-related
      utilities.
    - Remove infrastructure for abstract-type rtts from the wasm compilers,
      setup-heap-internal.cc, roots.h, and module-instantiate.cc.
    - Remove ObjectReferenceKnowledge::rtt_is_i31. Remove related branches
      from ref.test, ref.cast and br_on_cast implementations in the wasm
      compilers.
    - Remove unused 'parent' field from WasmTypeInfo.
    - Make the parent argument optional in NewWasmTypeInfo, CreateStructMap,
      and CreateArrayMap.
    - Use more convenient arguments in IsHeapSubtypeOf.
    - Update tests.
    
    Bug: v8:7748
    Change-Id: Ib45efe0741e6558c9b291fc8b4a75ae303146bdc
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642248
    Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#72321}
    b77deeca
Name
Last commit
Last update
..
api Loading commit data...
asmjs Loading commit data...
assembler Loading commit data...
base Loading commit data...
codegen Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
date Loading commit data...
diagnostics Loading commit data...
execution Loading commit data...
heap Loading commit data...
interpreter Loading commit data...
libplatform Loading commit data...
logging Loading commit data...
numbers Loading commit data...
objects Loading commit data...
parser Loading commit data...
profiler Loading commit data...
regress Loading commit data...
strings Loading commit data...
tasks Loading commit data...
torque Loading commit data...
utils Loading commit data...
wasm Loading commit data...
zone Loading commit data...
BUILD.gn Loading commit data...
DEPS Loading commit data...
run-all-unittests.cc Loading commit data...
test-helpers.cc Loading commit data...
test-helpers.h Loading commit data...
test-utils.cc Loading commit data...
test-utils.h Loading commit data...
testcfg.py Loading commit data...
unittests.status Loading commit data...