- 18 Dec, 2019 1 commit
-
-
Thibaud Michaud authored
This is a reland of c509bb8c Original change's description: > Cache native modules in the wasm engine by their wire bytes. This is to > prepare for sharing {Script} objects between multiple {WasmModuleObject} > created from the same bytes. This also saves unnecessary compilation > time and memory. > > R=clemensb@chromium.org > > Bug: v8:6847 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65296} R=clemensb@chromium.org Bug: v8:6847 Change-Id: I8839c9ec96dc4141cf3c30916a62ccf86f5463ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1960287 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65500}
-
- 02 Dec, 2019 2 commits
-
-
Maya Lekova authored
This reverts commit c509bb8c. Reason for revert: Breaks arm64 - sim - MSAN, see https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/30050 Original change's description: > [wasm] Share native modules compiled from the same bytes > > Cache native modules in the wasm engine by their wire bytes. This is to > prepare for sharing {Script} objects between multiple {WasmModuleObject} > created from the same bytes. This also saves unnecessary compilation > time and memory. > > R=clemensb@chromium.org > > Bug: v8:6847 > Change-Id: Iad5f70efbfe3f0f134dcb851edbcec50691677e0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65296} TBR=clemensb@chromium.org,thibaudm@chromium.org Change-Id: I908b0f59bce26678d0b5d7fddc986384c40b4709 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6847 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946334Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#65297}
-
Thibaud Michaud authored
Cache native modules in the wasm engine by their wire bytes. This is to prepare for sharing {Script} objects between multiple {WasmModuleObject} created from the same bytes. This also saves unnecessary compilation time and memory. R=clemensb@chromium.org Bug: v8:6847 Change-Id: Iad5f70efbfe3f0f134dcb851edbcec50691677e0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916603 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65296}
-
- 26 Nov, 2019 1 commit
-
-
Clemens Backes authored
Make WasmFeatures a proper class which uses an EnumSet under the hood. This way, it inherits all behaviour of EnumSet like comparison, merge, etc. Accesses change from being simple field access into the struct to actually bit tests in the EnumSet. R=mstarzinger@chromium.org Bug: v8:10019 Change-Id: I768f92b90ac0294156f4482defba5ce00bc70165 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934334 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#65184}
-
- 07 Nov, 2019 1 commit
-
-
Clemens Backes authored
This makes the {code_size_estimate} computation explicit in the caller, and removes one of the two {NewNativeModule} constructors. It turns out that the calculation is totally off in the streaming calculation phase, since no function bodies have been parsed yet. So all {WasmFunction::code} fields are still empty, and we compute an estimate that is way too low. This CL prepares the actual fix for that (by computing a better estimate at specific call sites). R=ahaas@chromium.org Bug: v8:9950 Change-Id: I68a891c97e5f65a9c7e73e21684bdfa7e261e216 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1901273 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#64845}
-
- 12 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
This moves the code to allocate the far jump table from {SetRuntimeStubs} to {AddCodeSpace} to allocate one such table per code space. Also, the {runtime_stub_table_} and {runtime_stub_entries_} fields do not make sense any more now and are replaced by calls to {GetNearRuntimeStubEntry} and {GetRuntimeStubId}. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: Ie1f5c9d4eb282270337a684c34f097d8077fdfbb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795348 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63700}
-
- 27 May, 2019 1 commit
-
-
Thibaud Michaud authored
R=ahaas@chromium.org CC=titzer@chromium.org Bug: v8:9231 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Change-Id: I3de9c839ad43ab37c69b622ccf221dfc429c2e2d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605732 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61839}
-
- 02 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
This CL adds all the necessary {WasmCodeRefScope}s in the code base, or at least a good approximation. A follow-up CL will enable a check that a {WasmCodeRefScope} exists whenever a pointer to a {WasmCode} object is returned from the {NativeModule}. This should flush out any missing scopes. R=titzer@chromium.org Bug: v8:8217 Change-Id: I54c7eb39aeb1acde38273c399396e6b1390a4cb2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533860 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60566}
-
- 25 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
Both js-to-wasm-wrapper-cache-inl.h and wasm-import-wrapper-cache-inl.h do not include any inl headers, thus they can be plain headers. If they ever need to include inl headers again, we should split out the respective functions into a separete inl header to follow the usual pattern to have *both* a plain header *and* an inl header. R=mstarzinger@chromium.org Bug: v8:8834 Change-Id: I1b1b917a8e2c47f1354522479f8c57475bee6244 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535826Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60431}
-
- 13 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
We need to ensure that the NativeModule stays alive while any {BackgroundCompileScope} exists, because during that time we hold shared ownership of the mutex in the {BackgroundCompileToken}. If the {NativeModule} dies during that period, we would need to get exclusive ownership of the mutex and deadlock. This change requires holding a {std::weak_ptr<NativeModule>} in the BackgroundCompileToken instead of a raw pointer, hence it can only be initialized after the NativeModule was created. This is done via a separate {InitCompilationState} method. R=ahaas@chromium.org Bug: v8:8979 Change-Id: Ia14bd272ea0bc47aec547024da6020608418c9d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518178 Auto-Submit: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60203}
-
- 25 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
The WasmCodeManager held a list of all Isolates that use the WasmEngine/WasmCodeManager (those two are 1:1). Since we want to move all isolate-specific tasks (like code logging and compilation callbacks) to the WasmEngine, this CL moves this management from the WasmCodeManager to the WasmEngine. We now have a bidirectional mapping from NativeModules to the Isolates that use them, and from an Isolate to all the NativeModules it uses (n:n). The IsolateData struct will be extended in follow-up CLs to hold things like the ForegroundTaskRunner. The Isolate* in the NativeModule / CompilationState will eventually be removed. R=mstarzinger@chromium.org Bug: v8:8689 Change-Id: Ic2c003c3949f73ce3264dd9dac96884a5c0b9896 Reviewed-on: https://chromium-review.googlesource.com/c/1433793 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59092}
-
- 11 Jan, 2019 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I48bfae1dbbfaafb1cadad8d3cbbc921c53801f8c Reviewed-on: https://chromium-review.googlesource.com/c/1405857Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58727}
-
- 21 Dec, 2018 1 commit
-
-
Jakob Gruber authored
This CL does two things: 1. It introduces Call/JumpCodeObject as the bottleneck for all calls to non-heap-constant Code objects; and 2. it dispatches directly to the off-heap entry point for all embedded code. Codegen at runtime remains unchanged to preserve the shorter, branch-less calling sequence. Bug: v8:7777 Change-Id: I15fdcb51625209904c6a56737f085a23219319b9 Reviewed-on: https://chromium-review.googlesource.com/c/1382461 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#58440}
-
- 23 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
Instead, create it when needed and pass it down to the actual compilation. This saves memory by making the WasmCompilationUnit smaller and will eventually allow us to implement the trap handler fallback correctly by using an updated ModuleEnv in background compilation and tier up. R=mstarzinger@chromium.org Bug: v8:5277, v8:8343 Change-Id: I0dc3a37fb88e54eb4822dc99d58ff024f4b2a367 Reviewed-on: https://chromium-review.googlesource.com/c/1293953 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#56896}
-
- 10 Oct, 2018 1 commit
-
-
Ben L. Titzer authored
Now that import wrappers are no longer specialized to an index, they can be cached in the native module, keyed by (WasmImportCallKind, FunctionSig). This saves instantiation time and also fixes a (slow) memory leak. R=mstarzinger@chromium.org Change-Id: I5197bbfae79d6e811a01289b990db445373eea6c Reviewed-on: https://chromium-review.googlesource.com/c/1270943 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#56526}
-