- 27 Jan, 2022 2 commits
-
-
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}
-
Manos Koukoutos authored
Changes: - Introduce {TypeDefinition} for wasm modules. - Introduce an enum {TypeDefinition::Kind} to represent the three different definition types. - Collapse the {types}, {type_kinds} and {supertypes} vectors into a single vector of {TypeDefinition}s. - Use {TypeDefinition} in WasmModuleBuilder. - Drive-by: Remove {kNullIndex} in WasmModuleBuilder. - Drive-by: Tidy-up wasm-module.h. Change-Id: I97c2c268bcad745176243c693cf169bfa5714f94 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416233Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78813}
-
- 10 Dec, 2021 1 commit
-
-
Andreas Haas authored
With a recent addition to the type reflection proposal, 'anyfunc' gets renamed to 'funcref'. For backwards compatibility, 'anyfunc' becomes an alias for 'funcref'. With this CL, the string 'funcref' can be used to create a funcref table or a funcref global. Additionally, 'funcref' is returned as the type of imported and exported functions as well as globals and tables. R=manoskouk@chromium.org Change-Id: If3ed4d507de862ebfcabd4eb967bbfaae1c6ccba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3300135Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#78341}
-
- 16 Sep, 2021 1 commit
-
-
Andreas Haas authored
R=thibaudm@chromium.org Bug: v8:12227 Change-Id: If10683be63beb32c658d2dfaac0a07d858c472ba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162038 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#76871}
-
- 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}
-
- 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}
-
- 21 Jul, 2021 1 commit
-
-
Thibaud Michaud authored
This is a reland of 4cc547c7 Change: prevent a memcpy to nullptr by skipping the call to copy_out() when the length is zero. Original change's description: > [wasm][eh] Add WebAssembly.Tag.type > > R=ahaas@chromium.org > > Bug: v8:8091 > Change-Id: Id069ffbf76bf836b613287788b1b1fccbb577475 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3021173 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75815} Bug: v8:8091 Change-Id: I22f400b6e36d1322a4eabd20a68b4bdd70d61377 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041436Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#75847}
-
- 20 Jul, 2021 3 commits
-
-
Nico Hartmann authored
This reverts commit 4cc547c7. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/17396/overview Original change's description: > [wasm][eh] Add WebAssembly.Tag.type > > R=ahaas@chromium.org > > Bug: v8:8091 > Change-Id: Id069ffbf76bf836b613287788b1b1fccbb577475 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3021173 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75815} Bug: v8:8091 Change-Id: I2581f82e6bc8a622a833b79037b4e58f587918cc No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041432Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#75821}
-
Jakob Kummerow authored
Hashing FunctionSigs can be quite expensive for large modules; luckily in some cases we can avoid doing that work. Change-Id: Ia18060b4c27ab34b44bda4bb81ea05299ecb0f49 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3038523 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#75819}
-
Thibaud Michaud authored
R=ahaas@chromium.org Bug: v8:8091 Change-Id: Id069ffbf76bf836b613287788b1b1fccbb577475 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3021173Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#75815}
-
- 18 Jun, 2021 1 commit
-
-
Dan Elphick authored
The adding of base:: was mostly prepared using git grep and sed: git grep -l <pattern> | grep -v base/vector.h | \ xargs sed -i 's/\b<pattern>\b/base::<pattern>/ with lots of manual clean-ups due to the resulting v8::internal::base::Vectors. #includes were fixed using: git grep -l "src/utils/vector.h" | \ axargs sed -i 's!src/utils/vector.h!src/base/vector.h!' Bug: v8:11879 Change-Id: I3e6d622987fee4478089c40539724c19735bd625 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2968412Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#75243}
-
- 10 Jun, 2021 1 commit
-
-
John Xu authored
For Cobalt's purpose in the past, we introduced base::Memcpy to intercept memcpy calls and replace it with SbMemoryCopy on Starboard/Cobalt. Recently Cobalt removed SbMemoryCopy because we found out that memcpy implementation is universal. To reduce the cost to maintain base::Memcpy, let us remove it and revert back to raw memcpy. Bug: v8:10927 Change-Id: I060f191f8f1aed8b78ffe4558a3743f3a2da008b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2951462Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: John Xu <johnx@google.com> Cr-Commit-Position: refs/heads/master@{#75070}
-
- 05 May, 2021 3 commits
-
-
Benedikt Meurer authored
As per WebAssembly Web API[1], the engine should only consider names from the name section to synthesize function names in the context of call stacks. We previously also added support to harvest the exports table here in an attempt to improve the DevTools debugging experience, but that needs a separate fix specifically for the inspector (which should also take into account the imports to harvest names). [1]: https://webassembly.github.io/spec/web-api/index.html#conventions Fixed: chromium:1164305 Change-Id: I4bde5c8398a5164f1d8ac9060ad3743ed494c41e Bug: chromium:1159307, chromium:1164241, chromium:1071432 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2874464 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74382}
-
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}
-
Manos Koukoutos authored
WasmModules were not removed from the global type judgement cache when they were deleted. This created problems if another module got allocated in the same location as a previously deleted module, by creating false positive cache hits. This CL fixes this issue by removing WasmModule from the cache as part of its destructor. Bug: v8:11700 Change-Id: I4948e361dd681040807f35d759b647d1bce585dc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859863 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74370}
-
- 13 Jan, 2021 1 commit
-
-
Benedikt Meurer authored
This moves the logic for the debug name heuristic, which derives names for imported and exported entities from the relevant tables, into wasm-debug.{cc,h} and stores these maps on the DebugInfoImpl rather than on the WasmModule. Drive-by-fix: Also use the import table based heuristic for function names, just like we use it for everything else. Bug: chromium:1164305 Change-Id: I8a21e0880c680079f63e6607b5b62c788049b9e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2625870 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72061}
-
- 17 Nov, 2020 1 commit
-
-
John Xu authored
Bug: v8:10927 Change-Id: Icbdc0d7329ddd466e7d67a954246a35795b4dece Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507310 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71220}
-
- 05 Oct, 2020 1 commit
-
-
Manos Koukoutos authored
We used not to emit canonical indexes for arrays and structs into WasmModule::signature_ids, which resulted in signature_ids not referring to the correct type indices in a WasmModule. Changes: - Rename signature_ids to canonical_type_ids. - Emit trivial canonical type ids for structs and arrays. - Add a test to catch the existing bug. - Improve DCHECKs for module type accessors. Bug: v8:7748 Change-Id: I67ad58865e35b459b21db12557564b652035db75 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2444989 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#70318}
-
- 18 Sep, 2020 1 commit
-
-
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: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#70001}
-
- 09 Sep, 2020 1 commit
-
-
Manos Koukoutos authored
Additional changes: - Add tests. - Rename some subtyping functions. Bug: v8:7748 Change-Id: I3635e93ea6bbab1942f927a8e414afc8efd31f69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2389983 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69784}
-
- 05 Aug, 2020 1 commit
-
-
Manos Koukoutos authored
Changes: - Remove restriction that function types cannot be used as ref types. - Introduce WasmModule::has_type(). - Remove deferred signature checks in module-decoder. Instead, check if type indices are out of bounds in consume_value_type (was bugged before). - Remove obsolete GetCanonicalRttIndex. - Refine type of ref.func. - Statically check immediate type against table type for call_indirect. - Dynamic check for call_indirect should only happen when for funcref (currently the only function supertype). - Allocate a different map per function signature (with Map::Copy). - Introduce function type equivalence and (trivial) subtyping. - Add a few elementary tests. Bug: v8:7748 Change-Id: If57d0bfd856c9eb3784191f3de423f53dfd26ef1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2335190 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@{#69250}
-
- 27 Jul, 2020 1 commit
-
-
Paolo Severini authored
Currently, when running with --trace-turbo, V8 generates a different .json file for each wasm-to-js thunk that it compiles, but these files all have the same name "turbo-wasm-to-js-0.json", and only one file is generated. This makes it difficult to actually examine the difference in the IR for this call wrappers produced for different signatures. This patch fixes this by naming each trace file as: "wasm-to-js-<kind>-<signature>-0.json", like for example "turbo-wasm-to-js-5-ii-i-0.json". Change-Id: Iebb73829cddd4f6bbf9d02ed1ce94a80dcfa5ca7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2316834 Commit-Queue: Paolo Severini <paolosev@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69085}
-
- 21 Jul, 2020 1 commit
-
-
Manos Koukoutos authored
Drive-by: Improve comment, use << operator where possible Change-Id: I5d2bff57a3f19a0fbb746136a897bf50e1173775 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2308337Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#68966}
-
- 15 Jul, 2020 1 commit
-
-
Jakob Kummerow authored
In addition to decoding them, we also have to evaluate the initializer instructions when instantiating a module. Drive-by fix: use "big-endian" encoding (prefix comes first) when emitting initializers in the module builder. Bug: v8:7748 Change-Id: Idfa0f5db298a8f6c6100fc09e1984e4a2e170e4a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2298004 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#68866}
-
- 29 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
Drive-by: Fix ref.is_null calling is_reference_type to typecheck its argument (which would also allow rtts). Bug: v8:7748 Change-Id: I2ad01d0f70ac15d37ac4cc344bd0280a7ca08073 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264094 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#68572}
-
- 18 Jun, 2020 1 commit
-
-
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: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68408}
-
- 16 Jun, 2020 2 commits
-
-
Manos Koukoutos authored
This is in anticipation of more complex type names coming from the new proposals. Change-Id: I1e5b8bd8c5b3edb5b603d36f6c5e9a787ebad504 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2243215 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68370}
-
Manos Koukoutos authored
Changes: - Simplify and generalize ToValueTypeString. - Fix some error messages in msjunit so that they reflect the underlying error better. - Change 'exn' -> 'exnref' to match exception-handling proposal. Bug: v8:7581 Change-Id: I264f6c9aa598a57f39d5a4d01399af64db83a2b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2243214 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68364}
-
- 10 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
As per the latest update to the 'reference types' wasm proposal, the nullref type is removed. Following that, all its uses in V8 were also removed. This CL: - Removes now dead code referencing nullref. - Changes names of functions/exceptions containing 'nullref' to 'null'. - Changes nullref to the corresponding nullable type in some tests. Bug: v8:7748 Change-Id: I5b4606671d7b24dd48a45a3341e8a1c056fcd1d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238026 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68283}
-
- 09 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
The reference types wasm proposal dropped all subtyping. Subsequently, the 'anyref' type was renamed to externref. This changes all references of the *type* anyref to externref. Additionally, the flag that permits this extension is renamed to "reftypes" to mirror the proposal name. Bug: v8:7748 Change-Id: Icf323f13b9660fd10540e65125af053fca3a03f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2232941 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#68270}
-
- 05 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
Changes: - Remove subtyping checks from value-type.h and move them to dedicated files. Leave a limited version in value-type.h for testing. - Implement subtyping for struct and array types, according to the wasm-gc proposal. - Implement type equivalence checking. - Introduce a subtyping relation cache in WasmModule. - Rename IsSubTypeOf -> IsSubtypeOf. - Fix v8 possible bug where iterator_range took two unused type parameters. - Add unittests for subtyping. Bug: v8:7748 Change-Id: I0ddbda4145e0412196dcf4fc63f3c5875fb3ab5a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2228497 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68192}
-
- 03 Jun, 2020 1 commit
-
-
Kim-Anh Tran authored
Bug: chromium:1081735 Change-Id: Iab58b303ec718a15653ba80fefbb873ef93df003 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218284 Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68153}
-
- 18 May, 2020 1 commit
-
-
Jakob Kummerow authored
When the intention is to handle every case, *and* when we can be reasonably sure that no invalid enum values will occur (e.g. from reading untrusted data), then we shouldn't have a "default:" case in a switch statement so that the compiler will warn us when a case is missing. Bug: v8:10506 Change-Id: Iefdebd54802611e7ec3479afa3c4e6506f97a095 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204284 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#67854}
-
- 20 Apr, 2020 1 commit
-
-
Jakob Kummerow authored
Behind --experimental-wasm-gc flag. Bug: v8:7748 Change-Id: Ib96af9c5bde33f1b88862286a37872dbe70d856b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154198 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#67251}
-
- 06 Apr, 2020 1 commit
-
-
Z Nguyen-Huu authored
Currently, only one memory is supported. For memory, we would use name as follows. 1. If import: use <import_module>.<field_name> from WasmImport. 2. If export: use <field_name> from WasmExport. 3. Use memory<index>. Doc: https://docs.google.com/document/d/1XoXWONLBgZWQ9dhtoMpQPvD0fnnWA50OorsuSXfME3g Bug: v8:10242 Change-Id: Ifd342bcd86ac302f5b43f2ee88a8ea21a28b5a0f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2132724 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#67020}
-
- 30 Mar, 2020 1 commit
-
-
Z Nguyen-Huu authored
For globals, we would use name as follows. 1. If import: use <import_module>.<field_name> from WasmImport. 2. If export: use <field_name> from WasmExport. 3. Use global<index>. Add DecodeGlobalNames similar to DecodeFunctionNames. Doc: https://docs.google.com/document/d/1XoXWONLBgZWQ9dhtoMpQPvD0fnnWA50OorsuSXfME3g Bug: v8:10242 Change-Id: I11131528fc6ae6ca50727e9b428f76e76b0000e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2122523 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#66910}
-
- 26 Mar, 2020 1 commit
-
-
Z Nguyen-Huu authored
For exported functions that do not have a name yet, we use the field name (see <name> of WasmExport) of the first export entry. Doc: https://docs.google.com/document/d/1XoXWONLBgZWQ9dhtoMpQPvD0fnnWA50OorsuSXfME3g/edit#heading=h.6yuhg1v2w3q4 Bug: v8:10242 Change-Id: Icfa55fd50e5d1c4cf10581b7d322112e9f113388 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2112684 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#66877}
-
- 12 Mar, 2020 1 commit
-
-
Jakob Kummerow authored
In preparation for adding reference types, which need an additional parameter to indicate the referenced type. Bug: v8:7748 Change-Id: If4023f3d9c7f42ed603b69c43356d2e8b81a0daa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2091471 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66687}
-
- 27 Feb, 2020 1 commit
-
-
Clemens Backes authored
Most function signatures are created once and never changed. Hence pass them as const pointer. This makes it clear in function signatures that these parameters will not be modified. This also avoids a few ugly const_casts where we were passing pointers to constexpr FunctionSigs via non-const pointers. R=jkummerow@chromium.org Bug: v8:10155 Change-Id: Ieb658ab5582bff276f76babdaf7ddb8f72bd4790 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072739Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66478}
-
- 27 Jan, 2020 1 commit
-
-
Clemens Backes authored
We often only need to store information about declared (i.e. non-imported) functions in a wasm module. Thus we remove the number of imported function from a function index. We do this in several places, with different amount of checking. This CL extracts this logic to a new {declared_function_index} helper and uses it wherever we do this translation. This more or less establishes the concept of "declared function index" and hopefully prevents errors in the future. R=jkummerow@chromium.org Bug: chromium:1045767 Change-Id: I7e957401495a2a8cb5d2c51031f9c69fe46195d8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2020763 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65994}
-