1. 05 May, 2021 1 commit
  2. 15 Apr, 2021 2 commits
  3. 16 Mar, 2021 1 commit
  4. 28 Jan, 2021 1 commit
  5. 27 Jan, 2021 1 commit
    • Manos Koukoutos's avatar
      Reland "[wasm-gc] Remove abstract rtts" · d3b41d07
      Manos Koukoutos authored
      This is a reland of b77deeca
      
      Changes compared to original: Add explicit narrowing casts in tests
      for MSVC.
      
      Original change's description:
      > [wasm-gc] Remove abstract rtts
      >
      > 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: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#72321}
      
      Bug: v8:7748
      Change-Id: I22b204b486fd185077cd6c7f15d492f5143f48fe
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2650207
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72355}
      d3b41d07
  6. 26 Jan, 2021 2 commits
    • Clemens Backes's avatar
      Revert "[wasm-gc] Remove abstract rtts" · f30c2681
      Clemens Backes authored
      This reverts commit b77deeca.
      
      Reason for revert: MSVC compile fails: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20-%20msvc/16535/overview
      
      Original change's description:
      > [wasm-gc] Remove abstract rtts
      >
      > 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: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#72321}
      
      TBR=ulan@chromium.org,jkummerow@chromium.org,manoskouk@chromium.org
      
      Change-Id: I2f0d97f1a34f7c81c5a97d7c37925cb84c66eea3
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7748
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2650206Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72322}
      f30c2681
    • 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
  7. 12 Jan, 2021 1 commit
  8. 19 Nov, 2020 1 commit
  9. 24 Sep, 2020 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc] Some cleanup and documentation · e241c6da
      Manos Koukoutos authored
      Changes:
      - Add dedicated exception for call_ref invoking a WasmJSFunction.
      - Small restructuring of read_value_type.
      - Change HeapType::kLastSentinel to point to the last valid type,
        update is_valid().
      - Remove redundant DCHECK from ValueType constructors.
      - Rename a few section-related macros in module-decoder-unittest.cc,
        add a small test.
      - Rename "Simd128" -> "s128" in error message.
      - Write some documentation, mostly in value-type.h and wasm-subtyping.h.
      
      Bug: v8:7748
      Change-Id: I4fc4826fbdeac50e21ef524787c2024d7aa1b3b2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2424139
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70118}
      e241c6da
  10. 09 Sep, 2020 1 commit
  11. 24 Jun, 2020 1 commit
  12. 18 Jun, 2020 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc] Change ValueType representation to account for new types · 52f65296
      Manos Koukoutos authored
      Motivation:
      Changes to the typed function references and gc proposals solidified
      the notion of heap type, clarified nullable vs. non-nullable reference
      types, and introduced rtts, which contain an integer depth field in
      addition to a heap type. This required us to overhaul our ValueType
      representation, which results in extensive changes.
      
      To keep this CL "small", we do not try to implement the binary encoding
      as described in the proposals, but rather devise a simpler one of our
      own (see below). Also, we do not try to implement additional
      functionality for the new types.
      
      Changes:
      - Introduce HeapType. Move heap types from ValueType to HeapType.
      - Introduce Nullability for reference types.
      - Rework ValueType helper methods.
      - Introduce rtts in ValueType with an integer depth field. Include depth
        in the ValueType encoding.
      - Make the constructor of ValueType private, instead expose static
        functions which explicitly state what they create.
      - Change every switch statement on ValueType::Kind. Sometimes, we need
        nested switches.
      - Introduce temporary constants in ValueTypeCode for nullable types,
        use them for decoding.
      - In WasmGlobalObject, split 'flags' into 'raw_type' and 'is_mutable'.
      - Change IsSubtypeOfRef to IsSubtypeOfHeap and implement changes in
        subtyping.
      - kWasmFuncRef initializers are now non-nullable. Initializers are
        only required to be subtypes of the declared global type.
      - Change tests and fuzzers as needed.
      
      Bug: v8:7748
      Change-Id: If41f783bd4128443b07e94188cea7dd53ab0bfa5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2247657
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68408}
      52f65296
  13. 05 Jun, 2020 1 commit