- 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}
-
- 24 Jan, 2020 2 commits
-
-
Clemens Backes authored
We currently print asm.js functions converted to wasm as "function foo() { [native code] }", even though without asm to wasm translation we get the proper source code. This is an observable difference that should not be, and also foozzie finds this frequently in different variations. This CL makes us remember the start position (position of the "function" token) and end position (right behind the closing "}") of each function we transform to wasm. These offsets, together with the Script that contained the function, allows us to reconstruct the source code of the function for the {toString()} method. R=jkummerow@chromium.org Bug: chromium:667678 Change-Id: If22471cad4cefdfc67f6d1b8fda85aa0eeb411bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2016582 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65972}
-
Clemens Backes authored
... and fix comments which I accidentally changed back to an old version in https://crrev.com/c/2011086/. R=jkummerow@chromium.org Bug: chromium:667678 Change-Id: I2a801d9775bd2362290c5d1caaf5b9e24a9bd54d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2015241 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65968}
-
- 21 Jan, 2020 2 commits
-
-
Clemens Backes authored
Since we create the asm offset table ourselves, we can skip all decoder error checks when decoding it. We keep DCHECKs though to catch errors early and give fuzzers a change to find inconsistencies in our encoding and decoding. R=jkummerow@chromium.org Bug: chromium:667678 Change-Id: I2c77f3857548057ce5c432d1c6f5576d66ca5cd1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2011086 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65905}
-
Clemens Backes authored
The asm.js offset table exists in two forms: Delta-encoded in a byte array, as generated during asm translation, and decoded, for faster lookup. This CL moves the encoded version from the {AsmWasmData} and {WasmModuleObject} to the {WasmModule}, and stores it off-heap in a C++ array instead of a {ByteArray}. Also, it moves the decoded version off-heap by storing it in a C++ data structure that makes lookup easy, instead of encoding it again in another {ByteArray}. This change is a nice refactoring in itself, but it also prepares adding more information to the offset table. For reconstructing the source code of an asm.js function, we will need to store the start and end offsets of the whole function as well (see linked bug). R=jkummerow@chromium.org Bug: chromium:667678 Change-Id: I79b789c3122dd8ba803cedc6bfdcc3d4b1fa0fd4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2011108 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65900}
-
- 17 Jan, 2020 1 commit
-
-
Clemens Backes authored
This was used for debugging only. The DevTools frontend now receives the raw wasm bytes, and disassembles the functions it needed. The inspector change was done in https://crrev.com/c/1991481. This CL removes all code which is now dead in v8. R=ahaas@chromium.org, bmeurer@chromium.org Change-Id: I2d433613f1270a1ddac9af0bae8d990ef190712a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2005072Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65831}
-
- 16 Jan, 2020 1 commit
-
-
Clemens Backes authored
We were decoding the names of locals into a C++ data structure, and then generated a FixedArray out of that, stored in the on-heap WasmDebugInfo. In order to support name lookup for debugging with Liftoff, where no WasmDebugInfo will be present, this CL refactors the C++ data structure to allow direct lookups and stores it in the C++ DebugInfo structure. With this CL, the names are still only used from the old interpreter-based debugging path. A follow-up CL will then also use it from Liftoff. R=thibaudm@chromium.org Bug: v8:10019 Change-Id: I1397021b5d69b9346fc26f5e83653360f428c5e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002541 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#65819}
-