- 13 Feb, 2022 1 commit
-
-
Manos Koukoutos authored
We optimize trivial type checks in the function body decoder, i.e., ref.as_<type> and ref.is_<type> when invoked on a value that is statically known to be of typeable as <type>. Bug: v8:7748 Change-Id: Ieee608a965ba44c4cadd9c7171ed8bdc129fce8b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3447375Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79061}
-
- 08 Feb, 2022 1 commit
-
-
Manos Koukoutos authored
Since {WasmGraphBuildingInterface::UnOp} always sets the result value node, we have to ensure the passed {result} is not null. Note: This can never happen with the current set of operators; this is guarding against possible future operators. Bug: chromium:1285041 Change-Id: I657cb02a9c650121a51ee795ef5572a5abd66933 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3447373Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78995}
-
- 03 Feb, 2022 1 commit
-
-
Clemens Backes authored
This makes the bulk memory operations respect the memory type, i.e. using i64 values for memory offsets if memory64 is enabled. The called C functions now expect memory offsets to be passed as {uintptr_t}, such that we can address any memory on all systems. For 64-bit memories on 32-bit systems, the upper half of the 64-bit value is checked in compiled code before passing the lower half to the C function. Liftoff support turned out to be a bit harder than expected, because we cannot hold three 64-bit values in registers on ia32 (not enough registers...). Thus implement that in a follow-up CL. R=thibaudm@chromium.org Bug: v8:10949, chromium:1281995 Change-Id: Ie77636145f94cc579d479c4e7c346ba3c682679d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3427206Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#78918}
-
- 02 Feb, 2022 1 commit
-
-
Clemens Backes authored
Some of the numeric opcodes have a variadic signature, e.g. table.grow or table.fill, and soon also the bulk memory opcodes because their consumed types depend on the memory type. For those opcodes, remove the signature definition from the opcode macro lists, because using it might result in bugs. R=thibaudm@chromium.org Bug: v8:10949, chromium:1281995 Change-Id: I350e75db7197d97a561f8219cedba5fe85b5c9c9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3424494Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#78903}
-
- 31 Jan, 2022 2 commits
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: If5027ac632438937407aeea0bb266b58cb1cbba2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3422633Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78865}
-
Manos Koukoutos authored
Since inheritance depth of every type is known in the isorecursive hybrid type system, rtts with depth are removed. This enables simplification of type checks in Liftoff and Turbofan, as well as decoding of object allocation instructions. Bug: v8:7748 Change-Id: I6b52579b584191d92644de1c6e805d9f054641d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3422626Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78860}
-
- 27 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
This CL replaces the equirecursive type system for wasm-gc with the isorecursive hybrid type system presented here: https://github.com/WebAssembly/gc/issues/257. In broad strokes, this includes the following changes: - In the module decoder, remove equirecursive types. Implement recursive type groups, subtype definitions, and function/struct/array definitions. Treat nominal modules as syntactic sugar of an isorecursive module, where all types belong in the same recursive group. - Remove rtt.sub and all related infrastructure. - Change subtyping to work with explicit supertypes only. - Add ValidSubtypeDefinition in subtyping, to check that subtype declarations are valid during decoding. - Remove the subtyping cache. - Add support for functions to have specific signature index in WasmModuleBuilder and in test-gc.cc. - Adapt tests. Current restrictions: - Recursive groups are not stored beyond decoding. - Type canonicalization is not implemented. No tests relying on types being considered identical post-canonicalization. - No cross-module subtyping is possible. Tests relying on cross-module subtyping have been commented out. Bug: v8:7748 Change-Id: I69fd04ecc5611f6230c95d5c89d1c520163fffae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416239Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78816}
-
- 26 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Iee5afc3ce21f3a09fdb810beb6a73123bf21afdf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401594Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78766}
-
- 19 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
This is a reland of f1c2a208 Changes compared to original: Revert test change which used simd and caused problems in multiple test configurations. Original change's description: > [wasm] Various small cleanups/fixes > > Changes: > - Fix a bug in objects-printer where array elements were not treated as > tagged pointers. > - Fix a few TODOs, mainly in the wasm interpreter. > - Improve documentation, small refactorings. > > Change-Id: I1d70ad454b3a0693b9b784b17395434d81d01b61 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383136 > Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78656} Change-Id: I91f4fed5fbc91acb8b42413a6f40a8202bd43096 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3398111Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78677}
-
- 18 Jan, 2022 1 commit
-
-
Maya Lekova authored
This reverts commit f1c2a208. Reason for revert: Breaks some tests on no-sse configuration, please see https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/45243/overview Original change's description: > [wasm] Various small cleanups/fixes > > Changes: > - Fix a bug in objects-printer where array elements were not treated as > tagged pointers. > - Fix a few TODOs, mainly in the wasm interpreter. > - Improve documentation, small refactorings. > > Change-Id: I1d70ad454b3a0693b9b784b17395434d81d01b61 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383136 > Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78656} Change-Id: Ic698177259bb14b4c251a4212c79cc0d945b07f8 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3398109 Auto-Submit: Maya Lekova <mslekova@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Maya Lekova <mslekova@chromium.org> Owners-Override: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#78657}
-
- 17 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
Changes: - Fix a bug in objects-printer where array elements were not treated as tagged pointers. - Fix a few TODOs, mainly in the wasm interpreter. - Improve documentation, small refactorings. Change-Id: I1d70ad454b3a0693b9b784b17395434d81d01b61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383136Reviewed-by:
Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78656}
-
- 13 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I3a20c588c2e0753c646cceb0a03fd882041fed7e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383779Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78612}
-
- 12 Jan, 2022 2 commits
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I5280a22240ef5e920f701e991ed13d8b8881fc6b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3377122Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78584}
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Ieedb5bb0d6555cdf6c628f6700f7116ca142a2d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3376963Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78577}
-
- 11 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
We introduce a type arrayref, which is a supertype of all array types and a subtype of dataref. We change array.len to accept values of type (ref null array). Drive-by: Fix kEq/kData case in TypecheckJSObject. Bug: v8:7748 Change-Id: I47c6a4487ddf5e7280c1427f43abe87a97c896bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368105Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78565}
-
- 10 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
This is a reland of be6bd4f4. The reason for revert was two bots timing out. On further inspection, the timeouts seem unrelated. Original change's description: > [wasm] Fast paths in EvaluateInitExpression > > We add fast paths for the most common types of expressions in > {EvaluateInitExpression} to improve instantiation time. We fall back to > full expression decoding for less common operators, or for expressions > with operands. > > Bug: chromium:1284557 > Change-Id: I39a1816176974058b801cdad6eaaa6da156cea04 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3367627 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78497} Bug: chromium:1284557 Change-Id: I209458c1fa36ae41899434b90759ebe3fe5e2a57 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3375545Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78529}
-
- 05 Jan, 2022 2 commits
-
-
Shu-yu Guo authored
This reverts commit be6bd4f4. Reason for revert: Consistent timeouts on Linux and Mac, e.g. https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20debug/37973/overview https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac64%20-%20debug/37346/overview Original change's description: > [wasm] Fast paths in EvaluateInitExpression > > We add fast paths for the most common types of expressions in > {EvaluateInitExpression} to improve instantiation time. We fall back to > full expression decoding for less common operators, or for expressions > with operands. > > Bug: chromium:1284557 > Change-Id: I39a1816176974058b801cdad6eaaa6da156cea04 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3367627 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78497} Bug: chromium:1284557 Change-Id: If09468eb1e790d4359573ddff8b653fe84b0e11e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368602 Auto-Submit: Shu-yu Guo <syg@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shu-yu Guo <syg@chromium.org> Owners-Override: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#78502}
-
Manos Koukoutos authored
We add fast paths for the most common types of expressions in {EvaluateInitExpression} to improve instantiation time. We fall back to full expression decoding for less common operators, or for expressions with operands. Bug: chromium:1284557 Change-Id: I39a1816176974058b801cdad6eaaa6da156cea04 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3367627Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78497}
-
- 13 Dec, 2021 1 commit
-
-
Manos Koukoutos authored
Since the reftypes proposal has shipped, we remove the respective flag and the code that handled its absence. We maintain a WasmFeature for reftypes for feature detection purposes. We remove the flag declaration from tests, and adapt some tests that make no sense without the flag. Bug: v8:7581 Change-Id: Icf2f8d0feae8f30ec68d5560f1e7ee5959481483 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329781Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78351}
-
- 02 Dec, 2021 1 commit
-
-
Manos Koukoutos authored
We optimize away type upcasts for nominal types in WasmFullDecoder. Upcasts trivially hold for nominal types, which is not the case for structural types. Note that we already optimize away trivially-failing checks (when types are unrelated) for both nominal and structural types. Bug: v8:7748 Change-Id: I720c9803cb8b4071aa4bae112ce06d587b7a68fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306984 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#78201}
-
- 01 Oct, 2021 1 commit
-
-
Ng Zhi An authored
Bug: chromium:1254675 Change-Id: I8c24d3956752a367a4fa60827ee47a589c48e699 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3197700Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77201}
-
- 30 Sep, 2021 1 commit
-
-
Clemens Backes authored
We currently could produce the error message 'not enough arguments on the stack for block, expected 0 more'. This CL fixes this by printing the available number of arguments and the needed number, and adds DCHECKs to catch similar miscomputations in the future. It also adds a new test that produced the broken error before, and includes the expected failure message in a few more tests for robustness. R=manoskouk@chromium.org Change-Id: Ia08863889ae36ae0a05d96d36e92295b7159a01e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3194264Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#77167}
-
- 24 Sep, 2021 1 commit
-
-
Clemens Backes authored
Instead of hand-coding a loop, use range-based for loops for iterating signatures. Similarly, {std::transform} can replace a hand-coded loop for constructing values from return types. R=thibaudm@chromium.org Bug: v8:12244 Change-Id: I467656650b731cbcb9ea57c54f5311885bb158dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3181520Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#77054}
-
- 20 Sep, 2021 2 commits
-
-
Manos Koukoutos authored
Change-Id: Ie07e626900f8fc8218944be2b33da6fc109adf92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168273 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#76930}
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I5b6d8bf0b6dbf88c4762f4d61fb468c3e2898201 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168621Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#76927}
-
- 17 Sep, 2021 1 commit
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Ic25e7be11cb1a06b160c1abe6d004a4c74b88b49 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3167493 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#76912}
-
- 15 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
Per https://github.com/WebAssembly/gc/issues/234, this implements "nominal" type definitions with explicit supertypes, and statically typed RTT-less instructions for allocation and testing/casting. This should be fully backwards compatible with existing Wasm modules. Spec: https://bit.ly/3cWcm6Q ("version 4") Bug: v8:7748 Change-Id: Id5a1399b368fdfad22036cfd66f1bef593e640f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3144916 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#76844}
-
- 13 Sep, 2021 1 commit
-
-
Thibaud Michaud authored
R=clemensb@chromium.org Bug: v8:12108 Change-Id: Iad128d108df64a5a0c205f7ed69a06cdffb40c31 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148133Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#76790}
-
- 07 Sep, 2021 1 commit
-
-
Jakob Kummerow authored
Simply putting all features behind --experimental-wasm-gc. The intent is to simplify command lines. Bug: v8:7748 Change-Id: Ibfaa4dc720087a490b177a2b95841620a4d25d89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3141583 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#76703}
-
- 06 Sep, 2021 1 commit
-
-
Thibaud Michaud authored
Update the behavior of 'delegate' according to: https://github.com/WebAssembly/exception-handling/issues/176 Summary: delegate can target any block, which just rethrows to the next outer try/catch. R=clemensb@chromium.org Bug: v8:8091 Change-Id: I967db9ab1cbb1a15b2c5e0a1a20f64fa19a3f769 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3140603 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#76677}
-
- 25 Aug, 2021 1 commit
-
-
Jakob Kummerow authored
This introduces a new flag, --experimental-wasm-unsafe-nn-locals, which allows arbitrary unvalidated local.get operations on non-nullable locals. For invalid accesses, this will crash. The intention is to allow module producers to experiment; if they find these locals particularly useful, we will add engine-side validation later. Bug: v8:7748 Change-Id: I9a05747eaff312448ce0acf57a412e76679ff061 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3110192 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#76489}
-
- 16 Aug, 2021 1 commit
-
-
Manos Koukoutos authored
We need to drop the object and the rtt from the liftoff stack before loading the result. Bug: v8:7748 Change-Id: Idbd4878ededc35892c951cafb3f8a8298133adff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3094015Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#76304}
-
- 04 Aug, 2021 1 commit
-
-
Jakob Kummerow authored
The merge values of a block have to be initialized to their static types, even if the actual values on the stack have subtypes of the loop's static type. Drive-by cleanup: drop some unneeded manual {TestModuleBuilder} instantiations from existing tests. The test fixture provides one anyway. Bug: chromium:1234453 Change-Id: I39c7eae4b6a6d5124f29be92da5ee92ff7e20e57 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068948Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#76087}
-
- 29 Jul, 2021 1 commit
-
-
Thibaud Michaud authored
The JS API constructor was renamed to "WebAssembly.Tag" to match the spec: https://github.com/WebAssembly/exception-handling/issues/159 Rename "exception" to "tag" throughout the codebase for consistency with the JS API, and to match the spec terminology (e.g. "tag section"). R=clemensb@chromium.org,nicohartmann@chromium.org Bug: v8:11992 Change-Id: I63f9f3101abfeefd49117461bd59c594ca5dab70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3053583Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75994}
-
- 12 Jul, 2021 1 commit
-
-
Jakob Kummerow authored
The recently added experimental support for non-nullable locals (https://chromium-review.googlesource.com/c/v8/v8/+/3010283) made DecodeLocalGet slightly bigger, which caused Clang not to inline it any more, which has a measurable performance impact because this is one of the hottest decoding functions. Forcibly inlining it fixes the regression. Bug: chromium:1227332 Change-Id: Ifb85f7f5a43ad1c0376bbf37e4af84fb4903371f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3018206Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75676}
-
- 07 Jul, 2021 2 commits
-
-
Jakob Kummerow authored
Behind a new --experimental-wasm-nn-locals flag. The checking policy implemented here is that locals count as initialized until the end of the current control structure, as described here: https://github.com/WebAssembly/function-references/issues/44#issuecomment-801977331 Bug: v8:7748 Change-Id: I954fdf1b4e02ed4b45ef61b8379b7c0bbe802400 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3010283Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75613}
-
Manos Koukoutos authored
This should mitigate some of the regressions introduced in https://chromium-review.googlesource.com/c/v8/v8/+/2972910. Changes: - Use a single Zone for all init. expressions in InstanceBuilder. - Specialize DecodeFunctionBody() for init. expressions. Bug: v8:11895, chromium:1226551 Change-Id: Ie39f981efeaa89e57f8ccb68903c6e7cc1cb7f09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3009465 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75597}
-
- 30 Jun, 2021 3 commits
-
-
Manos Koukoutos authored
This is a reland of 071a1acf Changes compared to original: Expect SIMD test to fail if SIMD is not supported. Original change's description: > [wasm] Refactor initializer expression handling > > Design doc: https://bit.ly/3xPxWUe > > This CL introduces two main changes: > - Initializer expressions are now decoded by WasmFullDecoder. With > wasm-gc, initializer expressions are no longer just constants, and > require complex decoding (including stack tracking). This resulted in > extensive code duplication. > - Initializer expressions are not stored explicitly by module-decoder as > an AST (WasmInitExpr), but rather as a WireBytesRef, and are decoded > again during module instantiation. This should reduce memory > consumption for globals and other module elements with initializer > expressions (which has been observed in the 40MB range in some > real-world benchmarks. > > Summary of changes: > - Add a static parameter {kFunctionBody, kInitExpression} to the > WasmDecoder. Use it to specialize validation to function bodies/init. > expressions. > - Introduce a new Interface for the WasmFullDecoder for init. > expressions. > - Differentiate between constant and non-constant opcodes in > WasmFullDecoder. > - Change representation of init. expressions in WasmModule to > WireBytesRef. > - Reimplement EvaluateInitExpression in module-instantiate to re-decode > initializer expressions. > - Remove some now-invalid module decoder tests. > > Pending changes: > - Also refactor initializer expressions for element segment entries. > - Reintroduce deleted tests. > > Bug: v8:11895 > Change-Id: I76512bfe1386c8338667d30fa6db93880a1e4b42 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972910 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75476} Bug: v8:11895 Change-Id: I2dface5ff28d5a2d439a65d3e5cb83135c061bb9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2997722 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75492}
-
Deepti Gandluri authored
This reverts commit 0d059e07. Reason for revert: Reverting as CheckHardwareSupportsSimd already contains the SSSE3 check. Original change's description: > [wasm-simd] Pass decode if SSSE3 flag is set > > Change-Id: Iafe2b5635287fea5bd3c687b4ed897edbce4b0aa > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2798978 > Reviewed-by: Zhi An Ng <zhin@chromium.org> > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73781} Change-Id: Ib227af90f2f35a7e63cb64acea8bbca9ff8ddd62 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2998503 Auto-Submit: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75491}
-
Clemens Backes authored
This reverts commit 071a1acf. Reason for revert: Breaks on nosse: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/42795/overview Original change's description: > [wasm] Refactor initializer expression handling > > Design doc: https://bit.ly/3xPxWUe > > This CL introduces two main changes: > - Initializer expressions are now decoded by WasmFullDecoder. With > wasm-gc, initializer expressions are no longer just constants, and > require complex decoding (including stack tracking). This resulted in > extensive code duplication. > - Initializer expressions are not stored explicitly by module-decoder as > an AST (WasmInitExpr), but rather as a WireBytesRef, and are decoded > again during module instantiation. This should reduce memory > consumption for globals and other module elements with initializer > expressions (which has been observed in the 40MB range in some > real-world benchmarks. > > Summary of changes: > - Add a static parameter {kFunctionBody, kInitExpression} to the > WasmDecoder. Use it to specialize validation to function bodies/init. > expressions. > - Introduce a new Interface for the WasmFullDecoder for init. > expressions. > - Differentiate between constant and non-constant opcodes in > WasmFullDecoder. > - Change representation of init. expressions in WasmModule to > WireBytesRef. > - Reimplement EvaluateInitExpression in module-instantiate to re-decode > initializer expressions. > - Remove some now-invalid module decoder tests. > > Pending changes: > - Also refactor initializer expressions for element segment entries. > - Reintroduce deleted tests. > > Bug: v8:11895 > Change-Id: I76512bfe1386c8338667d30fa6db93880a1e4b42 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972910 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75476} Bug: v8:11895 Change-Id: I9fcfdedad73ef21beb9632f50305b8e678a2dff6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2997582 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#75484}
-