1. 28 Jan, 2021 2 commits
  2. 15 Jan, 2021 1 commit
  3. 07 Jan, 2021 2 commits
  4. 05 Jan, 2021 1 commit
    • Benedikt Meurer's avatar
      [debug][wasm] Move DebugEvaluate implementation to wasm-debug.cc. · 5fc4649d
      Benedikt Meurer authored
      Previously the proxies that make up the DebugEvaluate implementation for
      Wasm frames lived in wasm-js.cc, but that was quite confusing since
      
      (a) the rest of the debug support for Wasm lives in wasm-debug.cc (and
          we intend to eventually unify the DebugEvaluate and Scope objects),
          and
      (b) the wasm-js.cc file is explicitly about the WebAssembly JS API
          that's part of the WebAssembly specification, and the DebugEvaluate
          proxies aren't part of that.
      
      Bug: chromium:1162229, chromium:1071432, chromium:1127914
      Change-Id: I63016dcace6d8e2af4a03c8eed4f02d464c1dee1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2609418
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71911}
      5fc4649d
  5. 29 Dec, 2020 1 commit
    • Benedikt Meurer's avatar
      [wasm][debug] Expose instance and module instead of imports / exports. · ad42f966
      Benedikt Meurer authored
      The "imports" and "exports" that were exposed on WebAssembly frames via
      Debug-Evaluate aren't useful for the DWARF C/C++ extension (and likely
      not for any other language extension), since they only expose static
      information that's easily available (upfront) by reading the Wasm wire
      bytes.
      
      In fact, there are already standardized functions in the WebAssembly
      specification, namely `WebAssembly.Module.imports(module)` and
      `WebAssembly.Module.exports(module)`, which yield static information
      about the imports and exports of a Wasm module.
      
      So instead of exposing special, non-standard "imports" and "exports", we
      now instead expose both the "instance" and the "module" objects via both
      the Debug Proxy and the Scope view, and also add internal [[Exports]]
      and [[Imports]] properties to WasmModuleObject, which under the hood use
      the standard methods mentioned above.
      
      Fixed: chromium:1162069
      Bug: chromium:1071432, chromium:1083146
      Screenshot: https://imgur.com/lcaW2jL.png
      Doc: https://docs.google.com/document/d/1rqbu0jKTl3q_xCxLnKzkjGXWEsHnJ9aERVhKV9RNDgE#bookmark=id.925bb2qgou38
      Change-Id: Ie27e55bb08ea5f90493c57375bf2b48dfb11a4d2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606050
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71893}
      ad42f966
  6. 03 Dec, 2020 1 commit
  7. 30 Nov, 2020 1 commit
  8. 19 Nov, 2020 1 commit
  9. 17 Nov, 2020 1 commit
  10. 11 Nov, 2020 2 commits
  11. 06 Nov, 2020 1 commit
  12. 06 Oct, 2020 2 commits
  13. 05 Oct, 2020 1 commit
  14. 24 Sep, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Remove --wasm-max-mem-pages-growth flag · 5f265c33
      Clemens Backes authored
      This unifies {max_initial_mem_pages} and {max_maximum_mem_pages} into
      {max_mem_pages}.
      The {CompilationEnv} constructor was incorrectly using the former
      instead of the latter anyway. This did not really matter though, since
      they typically have the same value.
      Also, there is not a single test that sets --wasm-max-mem-pages-growth.
      
      R=manoskouk@chromium.org
      CC=jkummerow@chromium.org
      
      Bug: v8:10949
      Change-Id: Ib7ab9b4c239d50b72013087eda5a214829c90369
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2426619Reviewed-by: 's avatarManos Koukoutos <manoskouk@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70114}
      5f265c33
  15. 21 Sep, 2020 1 commit
  16. 18 Sep, 2020 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc] Preparation for typed function tables · a5f68abe
      Manos Koukoutos authored
      Changes:
      - Rename IsSignatureEqual -> MatchesSignature for consistency
      - Add WasmInstanceObject field to WasmTableObject.
      - Improve some error messages related to tables in
        function-body-decoder-impl.h.
      - Introduce WasmTable::IsValidTableType. Use it wherever appropriate.
      - Overload equality operators in HeapType to work with
        HeapType::Representation.
      - Rename DynamicTypeCheckRef -> TypecheckJSObject.
      - Handle WasmCapiFunctions in TypecheckJSObject.
      - Use TypecheckJSObject in WasmTableObject::IsValidElement.
      - A few more minor improvements.
      
      Bug: v8:9495
      Change-Id: I2867dd3486d7c31717ac26b87a50e15cf2b898be
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2416491
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70001}
      a5f68abe
  17. 14 Sep, 2020 1 commit
  18. 06 Aug, 2020 1 commit
    • Andreas Haas's avatar
      [wasm] Check size of tables dynamically · 47434265
      Andreas Haas authored
      We used to check the size of tables at compile time, and threw a
      CompilationError if a given size exceeded the implementation-defined
      limit. However, the spec defines that an error should only be thrown
      when the implementation-defined limit is reached, which is either at
      instantiation time of during runtime at a table.grow.
      
      With this CL the V8 implementation becomes spec compliant in this
      regard.
      
      R=jkummerow@chromium.org
      
      Bug: v8:10556
      Change-Id: I7d0e688b385a65e4060a569e5ab1dec68947ceea
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2326331
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69267}
      47434265
  19. 03 Aug, 2020 1 commit
  20. 01 Jul, 2020 1 commit
    • Manos Koukoutos's avatar
      [wasm] Properly implement parsing of s33 values · 5df74c35
      Manos Koukoutos authored
      Motivation:
      We used to approximate s33/i33 value parsing by first checking for
      specific negative codes, and then parsing an u32 value if that failed.
      This is not correct in all cases.
      
      Changes:
      - Implement i33 parsing in Decoder.
      - Factor out parsing of heap types into read_heap_type.
      - Introduce HeapType::kBottom.
      - Introduce helper functions in WasmFeatures and value_type_reader.
      - Remove macros from the parsing of value types.
      - HeapType::code now returns an i32 for compatibility with the i33
        requirement.
      - Introduce HeapType::Repr.
      - Renamings: HeapType::type() -> representation(),
                   ValueType::heap() -> heap_representation()
      
      Bug: v8:7748
      Change-Id: I04deabce8837a48af2226411cd706a397f9e5725
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2274118
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68633}
      5df74c35
  21. 29 Jun, 2020 1 commit
  22. 25 Jun, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Experimentally allow modules >1GB · 49097109
      Clemens Backes authored
      Add an experimental flag to allow modules up to a size slightly below
      2GB, to make sure that we don't run into integer overflows.
      Modules this large are not tested at all currently, hence the explicit
      "experimental" in the flag name.
      
      Drive-by: Fix one comparison to use ">" instead of ">=".
      
      R=ahaas@chromium.org
      CC=​bmeurer@chromium.org
      
      Bug: v8:10642
      Change-Id: I91cfc290c262b9b81750e3c8af5358c1cd2572b1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2266535Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68547}
      49097109
  23. 23 Jun, 2020 1 commit
  24. 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
  25. 16 Jun, 2020 2 commits
  26. 10 Jun, 2020 1 commit
  27. 09 Jun, 2020 1 commit
  28. 03 Jun, 2020 1 commit
    • Andreas Haas's avatar
      [wasm] Introduce v8.wasm.detailed trace event category · d529da01
      Andreas Haas authored
      This CL repurposes the v8.wasm trace event category, and introduces
      additionally the v8.wasm.detailed category.
      
      The v8.wasm category is enabled by default and captures core wasm events
      like validation, compilation, instantiation, and important operations
      like grow-memory and tier-up timings.
      
      The v8.wasm.detailed category is disabled by default. It captures all
      events the previous v8.wasm category captured, like compilation of
      single functions, time needed for register allocation, ...
      
      This CL splits these categories to allow enabling the v8.wasm category
      in telemetry benchmarks to calculate compile time and other metrics
      from traces of telemetry runs.
      
      R=ecmziegler@chromium.org
      
      Bug: chromium:1084929
      Change-Id: Ida58b8f344b0ccb6ee1210e259c3e0e993eff497
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2210230
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarEmanuel Ziegler <ecmziegler@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68156}
      d529da01
  29. 27 May, 2020 1 commit
  30. 25 May, 2020 1 commit
    • Andreas Haas's avatar
      [wasm] Introduce the SyncStreamingDecoder · d4bb8208
      Andreas Haas authored
      This CL introduces the SyncStreamingDecoder to support
      streaming compilation when --single-threaded is set. The
      SyncStreamingDecoder buffers all bytes it receives over
      {OnBytesReceived}, and compiles them synchronously upon {Finish}.
      
      In addition to introducing SyncStreamingDecoder, this CL does
      the following changes:
      * Redirect streaming compilation to the new streaming decoder if
        --no-wasm-async-compilation is set. This flag is set if
        --single-threaded is set.
      * Extend the test-streaming-compilation.cc tests to test also the new
        streaming decoder.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10548
      Change-Id: I807e291a6060067c9835de4adf82bcb00321d995
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2209053
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67955}
      d4bb8208
  31. 19 May, 2020 1 commit
    • Emanuel Ziegler's avatar
      [wasm] Implement optional init parameter for Table.grow · 4372a9b5
      Emanuel Ziegler authored
      The typed function references proposal allows an optional second
      parameter to Table.grow containing the initialization value for the
      newly added entries for tables that do not support null defaults.
      
      This CL adds this functionality but hides it behind a newly added
      experimental flag --experimental-wasm-typed-funcref.
      
      R=ahaas@chromium.org
      CC=jkummerow@chromium.org
      CC=manoskouk@chromium.org
      
      Bug: v8:9495
      Change-Id: Ia156aeacf95bc36a9fc182990f315c42075cbb7b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207184
      Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67900}
      4372a9b5
  32. 15 May, 2020 1 commit
  33. 14 May, 2020 1 commit
  34. 04 May, 2020 1 commit
  35. 17 Apr, 2020 1 commit