1. 18 Jun, 2021 2 commits
  2. 02 Jun, 2021 1 commit
  3. 31 May, 2021 1 commit
  4. 27 May, 2021 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc] Implement array.copy (experimental) · dfdc8f68
      Manos Koukoutos authored
      Changes:
      - Add --experimental-wasm-gc-experiments flag.
      - Add array.copy opcode. Implement it in decoding and code generation
        behind the new flag.
      - Add WasmCodeBuilder::BoundsCheckArrayCopy. Move BoundsCheckArray to
        the private section.
      - Add WasmArrayCopy and WasmArrayCopyWithChecks builtin.
      - Add WasmArrayCopy runtime function.
      - Add WasmArray::ElementSlot.
      - Always print two hex digits in CHECK_PROTOTYPE_OPCODE.
      - In test-gc, print the thrown-error message if the function should not
        throw.
      - In test-gc, add GetResultObject with one argument.
      
      Bug: v8:7748
      Change-Id: I58f4d37e254154596cdef5e78482b55260dd3782
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2912729
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74806}
      dfdc8f68
  5. 21 May, 2021 1 commit
  6. 20 May, 2021 1 commit
  7. 19 May, 2021 2 commits
  8. 14 May, 2021 1 commit
  9. 15 Apr, 2021 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc] Implement function subtyping · e1cae86e
      Manos Koukoutos authored
      Changes:
      - Implement function subtyping in wasm-subtyping.cc.
      - Add Signature::Build(), which takes initializer lists for the return
        and parameter types.
      - Only throw kTrapFuncSigMismatch in call_indirect, change that trap's
        message.
      - Add a missing "return 0" in function-body-decoder-impl.h
      - Fix a faulty check in wasm-objects.cc.
      - Improve some comments.
      - Write tests. Improve readability of subtyping-unittest.
      
      Bug: v8:7748
      Change-Id: I1caba09d5bd01cfd4d6125f300cd9c16af7aba99
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2822633Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73972}
      e1cae86e
  10. 29 Mar, 2021 1 commit
  11. 24 Mar, 2021 1 commit
    • Andreas Haas's avatar
      [wasm][liftoff] Fix reftype parameter handling · 7d844bdb
      Andreas Haas authored
      LiftoffCompiler::ProcessParameter assumed that by processing parameters
      in the order of their index, register parameters get
      processed first, and that for processing stack parameters it can already
      use all registers as temp registers. This is not true with reference
      type parameters, because registers always first get assigned to value
      type parameters even when there is a reference type parameter with a
      lower index. Because of this incorrect assumption register parameters
      were overwritten by reference type parameters on the stack that got
      processed first.
      
      With this CL, only those registers get used as temp registers for
      reference type parameters that are not used for parameters.
      
      CC=jkummerow@chromium.org, clemensb@chromium.org
      R=thibaudm@chromium.org
      
      Bug: v8:11596
      Change-Id: I30ed7f073147df0bd81b9ef4d2b2a54d7badc937
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784560
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73635}
      7d844bdb
  12. 17 Mar, 2021 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc] Bring V8 up to date with latest spec updates · 103a42d3
      Manos Koukoutos authored
      Changes:
      - Remove the restriction that ref.test, ref.cast and br_on_cast may only
        cast to subtypes of the cast object's type. Optimize unrelated type
        casts in the decoder. Add tests.
      - Generalize Unreachable() interface function to Trap(TrapReason).
      - Fix rtt.sub to be able to accept an rtt without depth. Modify related
        test accordingly.
      - Type local.tee according to the local's type as opposed to the value's
        type.
      
      Bug: v8:7748, v8:11541
      Change-Id: I4d1846a2cfda891d32a9c1ed26781e4518d4cdf9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756210Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73461}
      103a42d3
  13. 10 Feb, 2021 1 commit
  14. 09 Feb, 2021 1 commit
  15. 02 Feb, 2021 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc] Fixes around rtts, especially functions · 44fa3408
      Manos Koukoutos authored
      Changes:
      - Rename ObjectReferenceKnowledgs::object_must_be_data_ref to
        reference_kind, introduce an enum to describe it.
      - In both compilers, remove the dynamic check whether the object is an
        array/struct. This is known statically. Instead, if we are checking
        for a function, just check for rtt equality and exit.
      - Remove is_data_ref_type(), replace it in the compilers with calls to
        has_signature().
      - Restructure AllocateSubRtt() to handle function rtts properly.
      - Add a couple execution tests.
      
      Bug: v8:7748
      Change-Id: I46fbbfe2f2a7d29b583de0d536d71c534b98322f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2661460Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72477}
      44fa3408
  16. 01 Feb, 2021 2 commits
  17. 31 Jan, 2021 1 commit
  18. 29 Jan, 2021 1 commit
  19. 28 Jan, 2021 4 commits
  20. 27 Jan, 2021 2 commits
    • Manos Koukoutos's avatar
      [wasm-gc] ref.cast forwards null input · 4b03f024
      Manos Koukoutos authored
      According to the new wasm-gc spec, ref.cast should forward a null input
      without trapping.
      
      Bug: v8:7748
      Change-Id: Ifee17f02a572e7028c14482bc94f0e1c7fc82a5b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2647261
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72358}
      4b03f024
    • 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
  21. 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
  22. 25 Jan, 2021 1 commit
  23. 22 Jan, 2021 1 commit
  24. 12 Jan, 2021 1 commit
  25. 09 Jan, 2021 1 commit
  26. 08 Jan, 2021 1 commit
  27. 17 Dec, 2020 4 commits
  28. 16 Dec, 2020 2 commits