- 25 Jul, 2022 1 commit
-
-
Matthias Liedtke authored
This is a follow up to Iadf73c294904ec20cefe1053a2969aa1dbb91a39. Bug: v8:7748 Change-Id: I59390b8c82c4ebed58f2d3130cd9b1578bffdd4b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3780535 Commit-Queue: Matthias Liedtke <mliedtke@google.com> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Auto-Submit: Matthias Liedtke <mliedtke@google.com> Cr-Commit-Position: refs/heads/main@{#81908}
-
- 01 Jul, 2022 1 commit
-
-
Manos Koukoutos authored
Most often, the {ValueType::Ref} constructor was called with a constant nullability. To make things more convenient, this CL renames {Ref} to {RefMaybeNull}, and introduces {Ref} and {RefNull} constructors with fixed nullability. Bug: v8:7748 Change-Id: I664ff184ca936cc752e152c3c67546d79aa24390 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3732936Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81494}
-
- 27 Jun, 2022 1 commit
-
-
Manos Koukoutos authored
Rename: - array.init(_static) -> array.new_fixed(_static) - array.init_from_data(_static) -> array.new_data(_static) - array.init_from_elem_static -> array.new_elem_static - (Wasm)ArrayInitFromSegment -> (Wasm)ArrayNewSegment Bug: v8:7748 Change-Id: I5ea314d653dd0e9f7f1f556469794d880934e01b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3726207Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81393}
-
- 16 Jun, 2022 1 commit
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Ib3b1d99107ad2a9c703e9dc546b522e208204d1c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3702443 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81205}
-
- 08 Jun, 2022 1 commit
-
-
Andy Wingo authored
Current implementation doesn't cache the result, however. Bug: v8:12868 Change-Id: Idd5eb7bbb49d018fec82a80bffb5288c0b6ee0f8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695377 Commit-Queue: Andy Wingo <wingo@igalia.com> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81006}
-
- 31 Jan, 2022 1 commit
-
-
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}
-
- 05 Nov, 2021 1 commit
-
-
Manos Koukoutos authored
We enable struct.new and array.init initializer expressions in the JS testcase generated by --wasm-fuzzer-gen-test. We needed to make some changes in the WasmInitExpr class, and to implement a new interface for the WasmFullDecoder, which constructs a WasmInitExpr. Changes: - Make WasmInitExpr a ZoneObject. Use a pointer for its operands_ field. This is needed so WasmInitExpr is trivially copiable, and thus usable as a Value type in WasmFullDecoder. - Implement a WasmFullDecoder interface in wasm-fuzzer-common that constructs a WasmInitExpr. Use it to decode initializers in the module generated by the fuzzer. - Change AppendInitExpr to take a WasmInitExpr as argument. - Fix an issue with printing of struct definitions. - Change initializer expression used for structs to struct.new_with_rtt. This is consistent with the currently used structural types. Bug: v8:11954 Change-Id: I65a87cc98701a54f32500be192b3b6eef2ff6c8c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3257712Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#77730}
-
- 20 Sep, 2021 1 commit
-
-
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}
-
- 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}
-
- 14 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I3fa510b4dc35d3f58532ecbbeecd79d2826ff667 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2951722 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75115}
-
- 08 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Add struct.new_with_rtt as a new WasmInitExpr. Parse it in consume_init_expr(). Add it to InstanceBuilder::EvaluateInitExpression(). - Change WasmInitExpr::operand_ to vector operands_. - In consume_init_expr(), use parsed over hard-coded opcode length. - Improve WasmStruct::WasmStructPrint slightly. - Add Factory::NewWasmStruct(). - Add WasmValue::CopyToWithSystemEndianness. - In wasm-module-builder.js, generalize emit_init_expr for expressions with operands. Add missing init. expression types. - Add tests. Bug: v8:7748 Change-Id: Ica12378d202730aff1b57c7d4240aa00ef124f8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2940893 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75006}
-
- 04 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
So far, initializer-expression evaluation was tied to setting global values. We now need it to operate independently of globals, so that we can implement new constant expressions like struct.new, which need their arguments to be computed before they can be initialized. Changes: - Move type computation of WasmInitExpr into WasmInitExpr::type. - Fix WasmInitExpr::type kRttSub case for rtts without depth. - Introduce InstanceBuilder::EvaluateInitExpression(). - Rename InstanceBuilder::GetRawGlobalPointer() -> GetRawUntaggedGlobalPointer(). - Simplify InstanceBuilder::InitGlobals using EvaluateInitExpression(). - Introduce ValueType::is_numeric. - Add Simd128(byte*) constructor. - Introduce WasmValue::CopyTo() for numeric types. Change-Id: Ic502b611f3998187abd9fc6ec377c2954c27abdc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2939982 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74949}
-
- 19 May, 2021 1 commit
-
-
Manos Koukoutos authored
Recent changes in wasm-module-builder.js were not translated to the fuzzer JS output. After this CL, the fuzzer should generate .js files that output back the fuzzed module. Change-Id: I8bc33ab7f4f838a519c7aa47e425d8ac65b88d45 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2904217 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74659}
-
- 05 May, 2021 1 commit
-
-
Manos Koukoutos authored
Main changes: - Allow global.get in elements segments with expressions-as-elements. - Allow element segments with types other than funcref. Detailed changes: - Move WasmInitExpr to its own file. Add stream opearator << support. - Simplify type of PrintCollection. - Make WasmElemSegment use an array of WasmInitExpr's over the previous ad-hoc implementation. Move null_index to WasmModuleBuilder. - Refactor consume_element_segment_header. Make it return a WasmElemSegment. - Refactor consume_element_expr. Make it return a WasmInitExpr. - Refactor DecodeElementSection. Make it invoke consume_element_segment_header, then populate its element array. - Update module-instantiate.cc to handle global.get elements. - Fix bug in wasm-objects.cc where the wrong type index was passed into module()->has_signature() - Adapt and add tests. Change-Id: I5abfbe424dbb750ee2dca59f91c451ffcb79f95f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857959 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74374}
-