- 21 Jul, 2020 1 commit
-
-
Arnaud Robin authored
On desktop systems, we use a very basic tiering strategy: Everything is initially compiled with Liftoff, and once that is done, the module can start being used. Concurrently to the execution, we re-compile all code with TurboFan, and hot-swap each function once TurboFan finishes. We should start using a more dynamic strategy where each function is tiered-up when judged necessary. This change will then tier-up each liftoff function once it has been called 5 times. I then added a counter in the native module, that is updated directly from Liftoff code, and a runtime call is then made when the counter reaches the goal. R=clemensb@chromium.org CC=thibaudm@chromium.org Bug: v8:10728 Change-Id: I8dc2b02fdff8d97781bb1cf496886594b3d7f644 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2306803 Commit-Queue: Arnaud Robin <arobin@google.com> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68971}
-
- 09 Jul, 2020 1 commit
-
-
Jakob Kummerow authored
By introducing a globally known map for each generic type. These maps are never used to allocate objects, they only serve as sentinels for generic heap types. Bug: v8:7748 Change-Id: I950a8c712dc1510759a833fe9122b9e9a6222dc2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288860 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68755}
-
- 29 Jun, 2020 2 commits
-
-
Jakob Kummerow authored
Relanding without changes, revert reason was fixed by: https://chromium-review.googlesource.com/c/v8/v8/+/2272564 Originally reviewed at: https://chromium-review.googlesource.com/c/v8/v8/+/2260566 Original description: RTTs are internally represented as Maps. To store supertype information, this patch introduces a WasmTypeInfo object, which is installed on Wasm objects' Maps and points at both the off-heap type information and the parent RTT. In this patch, rtt.sub always creates a fresh RTT. The canonicalization that the proposal requires will be implemented later. Bug: v8:7748 Change-Id: I7fd4986efa3153ac68037ec418ea617f3f7636e8 Tbr: ulan@chromium.org Tbr: tebbi@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2273123Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68581}
-
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}
-
- 26 Jun, 2020 2 commits
-
-
Shu-yu Guo authored
This reverts commit 04ce88ea. Reason for revert: TSAN failure: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32135 Original change's description: > [wasm-gc] Implement rtt.sub > > RTTs are internally represented as Maps. To store supertype information, > this patch introduces a WasmTypeInfo object, which is installed on Wasm > objects' Maps and points at both the off-heap type information and the > parent RTT. > In this patch, rtt.sub always creates a fresh RTT. The canonicalization > that the proposal requires will be implemented later. > > Bug: v8:7748 > Change-Id: I8286dd11f520966155cd95c2bd844ec34fccd131 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260566 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68564} TBR=ulan@chromium.org,jkummerow@chromium.org,tebbi@chromium.org Change-Id: I311732e1ced4de7a58b87d4a9b6056e0d62aa986 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7748 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2270734Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#68567}
-
Jakob Kummerow authored
RTTs are internally represented as Maps. To store supertype information, this patch introduces a WasmTypeInfo object, which is installed on Wasm objects' Maps and points at both the off-heap type information and the parent RTT. In this patch, rtt.sub always creates a fresh RTT. The canonicalization that the proposal requires will be implemented later. Bug: v8:7748 Change-Id: I8286dd11f520966155cd95c2bd844ec34fccd131 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2260566 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68564}
-
- 24 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: I45a8f1398554da8a9543c866b4125fd9711e230b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2263933 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68524}
-
- 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}
-
- 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 3 commits
-
-
Clemens Backes authored
The interpreter is only used for testing, and is now instantiated and invoked directly instead of via the {WasmDebugInfo}, holding the {InterpreterHandle}. This CL removes both classes. R=ahaas@chromium.org Bug: v8:10389 Change-Id: Iede3feea413decae1edc28146b871a819e204768 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2237132Reviewed-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@{#68271}
-
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}
-
Clemens Backes authored
The reference stack was set by the scope, and reset when leaving the scope, in order to avoid leaking objects via cycles in the reference tree, involving global handles which are considered strong roots. Since the interpreter cannot call out to JS any more, we cannot create such cycles any more. Hence, the ReferenceStackScope is removed, and the FixedArray for the reference stack is allocated as a global handle instead. This will unblock removing the WasmDebugInfo object, which was used by the ReferenceStackScope before this CL. R=ahaas@chromium.org Bug: v8:10389 Change-Id: I2e3c6a03750846679eecd9e6a07042db962aad9c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235542Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68257}
-
- 08 May, 2020 1 commit
-
-
Jakob Kummerow authored
along with WASM_ARRAY_TYPE, a WasmArray class, and a very basic test. Bug: v8:7748 Change-Id: I1ad4ff78e428972be52130cc179a91c76fcdbdc6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2185136 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#67671}
-
- 07 May, 2020 1 commit
-
-
Jakob Kummerow authored
When the garbage collector needs to get a struct's type information, it must be prepared to deal with forwarding pointers, as those will only get cleaned up at the end of the GC cycle. Bug: v8:7748 Change-Id: Ifdfdffcef27d1dbe07c86a3abd17711f46c1b900 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187732 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#67648}
-
- 06 May, 2020 1 commit
-
-
Jakob Kummerow authored
and avoid runtime calls for struct allocation. We can load the map from the instance and do the allocation in a CSA builtin. Bug: v8:7748 Change-Id: I76dfcb6c28800d69046b3d7381d3b8ba774fbf09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2169099 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#67617}
-
- 21 Apr, 2020 1 commit
-
-
Jakob Kummerow authored
Unused so far. Bug: v8:7748 Change-Id: I8ee905614227c5517fa19088f76f947d2caadc3b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2152843 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67273}
-
- 18 Mar, 2020 2 commits
-
-
Clemens Backes authored
This extends the Liftoff function prologue in the debug case. It now checks the "hook on function call" flag, and if that flag is set, it triggers a breakpoint. The address of that flag is stored in the WasmInstanceObject for fast access. Drive-by: Add an output operator for ValueType, which helps with debugging. R=thibaudm@chromium.org Bug: v8:10321 Change-Id: I572de802815259ee0ef0df9b22ce30b510b4e30d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2106211Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66774}
-
Tobias Tebbi authored
In the runtime, we always had a convention to use int-typed accessors for Smi fields. For Torque-generated classes, we kept them Smi-typed but then added int wrappers around that. This CL makes Torque generate int-typed accessors directly, removing the need for these wrappers. TBR=hpayer@chromium.org Bug: v8:7793 Change-Id: I348e1d96295c9676fafda32b7d49088848527f89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2106210 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#66760}
-
- 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}
-
- 21 Jan, 2020 1 commit
-
-
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}
-
- 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}
-
- 15 Jan, 2020 1 commit
-
-
Emanuel Ziegler authored
Add decoding of ref.null as a valid argument for references in TurboFan, LiftOff and the interpreter. R=ahaas@chromium.org R=jkummerow@chromium.org Bug: chromium:10063 Change-Id: I1e2d9c76f616dacb3aa06f8b535543bdcdcf0783 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1991485 Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#65788}
-
- 03 Dec, 2019 1 commit
-
-
Emanuel Ziegler authored
The following changes were introduced with the recent proposal update: - OOB access with 0 length traps - Double drop of segments is allowed - Dropped segments are treated like having size 0 (OOB error) - Active segments are dropped right after initialization R=ahaas@chromium.org Change-Id: I4e9fc4d9212841c7d858585c672143f99287520d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946355Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/master@{#65305}
-
- 27 Nov, 2019 1 commit
-
-
Clemens Backes authored
We want to grow the table entries exponentially, so the entries length will not reflect the actual size of the table any more. Hence, introduce another field on {WasmTableObject} to store the actual length. R=mstarzinger@chromium.org CC=ecmziegler@chromium.org Bug: v8:10018 Change-Id: Ie8252f33fddda3ae60dd24bd8db148fd67262226 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939050 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#65200}
-
- 24 Oct, 2019 1 commit
-
-
Michael Starzinger authored
This makes sure that functions constructed via {WebAssembly.Function} can be properly stored in globals of type "funcref". For now it is not possible to call functions in such globals, but values can be loaded and stored. R=ahaas@chromium.org TEST=mjsunit/wasm/type-reflection-with-anyref BUG=v8:7742 Change-Id: I88ad1b5a57fd50e28723430803c528e674a94321 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876815Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64539}
-
- 10 Oct, 2019 1 commit
-
-
Michael Starzinger authored
This moves the list of {BreakPointInfo} objects from {WasmModuleObject} to the corresponding {Script} object. Breakpoints are expected to affect all modules/instances for a given script, hence the new placement of the list is a preparation to fully support per-script breakpoints. R=clemensb@chromium.org BUG=v8:6847,chromium:893069 Change-Id: Id97058be5ed79cfdba2cecac5733ba161a6021d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852127Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64213}
-
- 09 Oct, 2019 1 commit
-
-
Michael Starzinger authored
This moves the weak list of instances from {WasmModuleObject} to the corresponding {Script} object. The list is used solely for breakpoints which are intended to affect all instances belonging to a given script, hence the new placement of the list is a preparation to fully support per-script breakpoints. R=clemensb@chromium.org BUG=v8:6847,chromium:893069 Change-Id: I52315e0ba1e5e5021f55bf05d8cb0f01bf9f0fbb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847359 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64191}
-
- 26 Sep, 2019 2 commits
-
-
Michael Starzinger authored
This uses Handle<WasmExceptionPackage> where applicable to increase type safety. Note that {WasmExceptionPackage} is not a full-fledged instance type though. The {HeapObject::IsWasmExceptionPackage} predicate is an approximation because a precise version could only be implemented using handlified code performing a property lookup. R=clemensb@chromium.org Change-Id: I061e3eea201a0e9909ba67ae33db81d14aaefe4b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1477673 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Backes [né Hammacher] <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#63987}
-
Clemens Backes authored
R=adamk@chromium.org No-Try: true Change-Id: I71824f52802c125dbee51216054575f44d08d534 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1825243 Commit-Queue: Clemens Backes [né Hammacher] <clemensb@chromium.org> Auto-Submit: Clemens Backes [né Hammacher] <clemensb@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#63983}
-
- 24 Sep, 2019 1 commit
-
-
Andreas Haas authored
This CL fixes a memory leak in the interpreter. The leak was caused by a cycle the object graph that was rooted with a global object. The cycle was the following: A global handle, owned by the interpreter -> reference stack of the Interpreter -> ref.func element (WasmExportedFunction) -> WasmInstanceObject -> WasmDebugInfo -> InterpreterHandle -> Interpreter With this CL we get rid of the global handle. Instead we store the stack in the WasmDebugInfo. We then have to load the reference stack every time we enter the Interpreter and want access the reference stack. R=mstarzinger@chromium.org Bug: chromium:1000610 Change-Id: If8995725f7ec35862b2f99a07582c861027daaf1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800582 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63953}
-
- 29 Aug, 2019 1 commit
-
-
Seth Brenith authored
This patch is mostly mechanical. A few changes in implementation-visitor.cc might be worth mentioning: - Don't generate both field offset macros and class definitions for the same class. This was mostly just to keep me from forgetting to remove the DEFINE_FIELD_OFFSET_CONSTANTS part when converting classes, but also helpfully flagged that FixedArrayBase wasn't using the generated class that it requested. - Generate forward declarations for all tq-defined classes in internal-class-definitions-tq.h. This is helpful for making things compile when classes have fields of other class types. - When generating accessors for union types, use the nearest class type that contains the entire union rather than plain Object. This is important for compile-time type safety. It also required a few minor fixes elsewhere (isolate.cc, modules.cc, scope-info.cc, source-text-module.cc, and a correction of the field types in CallHandlerInfo to match how they're set in api.cc). Change-Id: I3b9280e30779ce57fb9f3629eecfec898e26d708 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774976Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#63458}
-
- 28 Aug, 2019 1 commit
-
-
Jakob Kummerow authored
The previous pseudo-smi storage scheme for caching call target addresses in a struct without requiring a custom visitor only works on uncompressed 64-bit platforms. This patch fixes other platforms (natural or compressed 32-bit) by boxing the address in a Foreign. Change-Id: I3c182c1d9ccae4858cac2757fc3daa40d1520998 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1771780 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63422}
-
- 26 Aug, 2019 1 commit
-
-
Jakob Kummerow authored
Host info used to be stored on the global reference underlying a Ref; now it is stored in a JSWeakMap and hence tied to the lifetime of the actual object on V8's heap. Additionally, the internal metadata needed for C-API functions is now stored on the SharedFunctionInfo and no longer overlaps with the host info mechanism. Bonus content: Roll 6db391e: Remove a few more leftover uses of _enum types Change-Id: Ibb1fa4b0dd5157fef15c030bac705a11aa3beaea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1768368Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#63400}
-
- 22 Aug, 2019 1 commit
-
-
Michael Starzinger authored
This preserves the object identity of a {WebAssembly.Function} instance that is being re-exported by a module. Such functions are considered to have an internal [[FunctionAddress]] slot and hence require their object identity to be preserved (similar to {WasmExportedFunction} already). R=jkummerow@chromium.org TEST=mjsunit/wasm/type-reflection BUG=v8:7742 Change-Id: I88ba75fcd91ce04440008467f3b218a1ac3047db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763545Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63346}
-
- 24 Jul, 2019 1 commit
-
-
Michael Starzinger authored
This removes a shortcut to a "CEntryStub" from the instance object and instead loads those values via the root set which is also referenced from the instance. It makes instance objects smaller. R=clemensh@chromium.org Change-Id: I2e77cf2cb6949873bb461fb1ed0787e4a413aa5f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1714656 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62888}
-
- 23 Jul, 2019 1 commit
-
-
Michael Starzinger authored
This removes two shortcuts ("UndefinedValue" and "NullValue") from the instance object and instead loads those values via the root set which is also referenced from the instance. It makes instance objects smaller. Note that this also contains an optimization to make sure "undefined" is only loaded once and then re-used within a single wrapper. R=clemensh@chromium.org Change-Id: I421f202230e91790fa9c8263770b4e4bbd3c47bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710670Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62860}
-
- 19 Jul, 2019 1 commit
-
-
Michael Starzinger authored
This makes sure the language mode of the module is correctly propagated through the WebAssembly module, so that exported functions are allocated with the correct language mode. It extends the existing {ModuleOrigin} enum to consist of three values now. R=clemensh@chromium.org TEST=mjsunit/regress/wasm/regress-985154 BUG=chromium:985154 Change-Id: Id7b566738b1e710cc5001b894022bcd0f2c01bc3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708484 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62826}
-
- 15 Jul, 2019 1 commit
-
-
Michael Starzinger authored
Also see: https://github.com/WebAssembly/exception-handling/pull/84 R=ahaas@chromium.org BUG=v8:8091 Change-Id: Ibcf9a2bba019cbd634884cb217e1507231a5bcf8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1700077Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62717}
-
- 08 Jul, 2019 1 commit
-
-
Bill Budge authored
Change-Id: Ia506f4741e6ff9f024199d1b1fa7abb7dafe2b25 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1682835 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#62581}
-
- 03 Jul, 2019 1 commit
-
-
Andreas Haas authored
This is the combined second and third step of refactoring indirect function calls through tables with index > 0 to work without runtime calls. The first CL introduces the WasmIndirectFunctionTable heap object. For a table of type anyfunc within a WebAssembly instance, WasmIndirectFunctionTable stores the size, the signature id's, the call targets, and the reference parameters for that table. I used the names that are already used for the matching fields of the WasmInstanceObject. The second CL expands the IndirectFunctionTableEntry to work also on WasmIndirectFunctionTable objects. All changes to a function table go through this class. The third CL introduces uses of the WasmIndirectFunctionTable. In this CL I change the code generation in TurboFan to replace runime calls with direct accesses to the new WasmIndirectFunctionTable. Additionally I extended the initialization of WasmIndirectFunctionTable, and also implement Table.grow. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: Ic7615c0138562d27897683358ddc0943add1acfe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1684186 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62515}
-