- 16 Mar, 2020 1 commit
-
-
Clemens Backes authored
This method is called in the critical section in {PublishCode}, hence performance is important here. Since most modules will only have a single code space anyway, we can use the main jump table in the vast majority of cases, and avoid taking a lock and iterating another data structure. R=ahaas@chromium.org Bug: v8:10330 Change-Id: I18cbd3b127172963ccc9ec576a0985e874da7865 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2104891 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#66721}
-
- 05 Mar, 2020 3 commits
-
-
Clemens Backes authored
This is a reland of 79398ab0 Original change's description: > [wasm] Further reduce the size of WasmCode > > Also, save dynamic allocations (plus their memory overhead). > This is realized by storing the relocation information, source position > table, and protected instruction information together in one "metadata" > byte array. > For each of the three components, we just store their size, such that > the accessors can return the respecitive {Vector} views as before. > > This makes each WasmCode object 24 bytes smaller on 64-bit > architectures. It also saves a few more bytes per code object because > less padding is needed for the individual allocations, and each dynamic > allocation comes with some constant memory overhead. > > Since the protected instructions will just be stored in a byte array > now, some APIs are refactored to just return that byte array directly > (instead of an array of {ProtectedInstructionData}). This also > simplifies serialization and deserialization, and will allow for > switching to a more compact representation in the future. > > Drive-by: Add some more checks to {Vector::cast} to protect against > undefined behaviour. > > R=ahaas@chromium.org > > Bug: v8:10254 > Change-Id: I81ca847023841110e3e52cc402fcb0349325d7af > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2078545 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66596} Tbr: ahaas@chromium.org Bug: v8:10254 Change-Id: Idcdcb4f13c3eb7a3f7fb5ef8a1229103ca0ae975 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2089934Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66598}
-
Clemens Backes authored
This reverts commit 79398ab0. Reason for revert: Makes UBSan unhappy: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/10186 Original change's description: > [wasm] Further reduce the size of WasmCode > > Also, save dynamic allocations (plus their memory overhead). > This is realized by storing the relocation information, source position > table, and protected instruction information together in one "metadata" > byte array. > For each of the three components, we just store their size, such that > the accessors can return the respecitive {Vector} views as before. > > This makes each WasmCode object 24 bytes smaller on 64-bit > architectures. It also saves a few more bytes per code object because > less padding is needed for the individual allocations, and each dynamic > allocation comes with some constant memory overhead. > > Since the protected instructions will just be stored in a byte array > now, some APIs are refactored to just return that byte array directly > (instead of an array of {ProtectedInstructionData}). This also > simplifies serialization and deserialization, and will allow for > switching to a more compact representation in the future. > > Drive-by: Add some more checks to {Vector::cast} to protect against > undefined behaviour. > > R=ahaas@chromium.org > > Bug: v8:10254 > Change-Id: I81ca847023841110e3e52cc402fcb0349325d7af > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2078545 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66596} TBR=jkummerow@chromium.org,ahaas@chromium.org,clemensb@chromium.org,tebbi@chromium.org Change-Id: Id80aa82cfce8942879031032b322ee66855b5600 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10254 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2089933Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66597}
-
Clemens Backes authored
Also, save dynamic allocations (plus their memory overhead). This is realized by storing the relocation information, source position table, and protected instruction information together in one "metadata" byte array. For each of the three components, we just store their size, such that the accessors can return the respecitive {Vector} views as before. This makes each WasmCode object 24 bytes smaller on 64-bit architectures. It also saves a few more bytes per code object because less padding is needed for the individual allocations, and each dynamic allocation comes with some constant memory overhead. Since the protected instructions will just be stored in a byte array now, some APIs are refactored to just return that byte array directly (instead of an array of {ProtectedInstructionData}). This also simplifies serialization and deserialization, and will allow for switching to a more compact representation in the future. Drive-by: Add some more checks to {Vector::cast} to protect against undefined behaviour. R=ahaas@chromium.org Bug: v8:10254 Change-Id: I81ca847023841110e3e52cc402fcb0349325d7af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2078545Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66596}
-
- 03 Mar, 2020 2 commits
-
-
Z Nguyen-Huu authored
Add tier up to existing recompilation logic. This is a part of Tier up to Turbofan on Debugger.disable Bug: v8:10290 Change-Id: I44731df520201ac254f2d1bfbfb5c49d8bb50117 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2080658 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66573}
-
Clemens Backes authored
The histograms were removed from chrome. This CL cleans up the V8 code to stop reporting samples. R=ahaas@chromium.org Bug: chromium:1053285 Change-Id: I7c6ff36ac9bb5d86e81e5f36849903a95a8ed618 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2083478Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66553}
-
- 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}
-
- 26 Feb, 2020 1 commit
-
-
Clemens Backes authored
This is a first step to make {WasmCode} objects smaller. Many code offsets are currently stored in {size_t} even though there were originally (during assembly) an int. Others are stored in {uint32_t}. This CL switches the function index and all code lengths and offsets to int, because a) bigger code is not supported anyway, and b) the style guide recommends int over unsigned types. This makes the {WasmCode} 24 bytes smaller on x64 (from 144 to 120 bytes). R=ahaas@chromium.org Bug: v8:10254 Change-Id: I8f78bf4be64d59cf9393e3b6662d9d3bd153d387 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074217Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66462}
-
- 20 Feb, 2020 3 commits
-
-
Clemens Backes authored
Different loggers had different logic to handle unnamed wasm functions. This CL makes sure that we always set a reasonable name when logging wasm code, and removes handling for unnamed code in individual loggers. Since logging only happens on user action, the code is not optimized for performance (i.e. we always just write to a {std::string}, even if the length of the string is known to be limited). R=jkummerow@chromium.org Bug: chromium:863205 Change-Id: I941f7e8050c97dc938afd7883aaeb3b6347b762d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2064977Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66370}
-
Thibaud Michaud authored
R=clemensb@chromium.org Bug: v8:10245 Change-Id: If99608d12034c241c37e8b0b345e92dce8847b9f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2064976 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66366}
-
Clemens Backes authored
If multiple code spaces are created, each of them currently gets its own jump table (on 64 bit platforms). Since we try to allocate new code spaces right after existing ones, this is often not necessary. We could instead reuse the existing jump table(s). This saves code space for the unneeded jump tables and avoid the cost of patching the redundant jump tables when we replace code objects. This CL implements this by checking whether an existing jump table (or pair of far jump table and (near) jump table) fully covers a new code space, and reuses the existing jump table in that case. R=ahaas@chromium.org Change-Id: Id8751b9c4036cf8f85f9baa2b0be8b2cfb5716ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2043846Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66364}
-
- 19 Feb, 2020 1 commit
-
-
Thibaud Michaud authored
To fully support debugging in Liftoff, we need to OSR active frames by updating their return address. Introducing source positions after each call will help us find the correct return address in the new code. R=clemensb@chromium.org Bug: v8:10147 Change-Id: I0a97fa86929c471abb4cd1ed75ac6724fc385944 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2064216Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#66350}
-
- 18 Feb, 2020 1 commit
-
-
Z Nguyen-Huu authored
Store a flag per isolate whether new modules should be kept in tiered-down state from the beginning. Adjust initial compilation if flag is set. Bug: v8:9654 Change-Id: I5aae435fb807f3eaa7efafe9af60451ad3c7e14d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2028452 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66321}
-
- 06 Feb, 2020 1 commit
-
-
Z Nguyen-Huu authored
This is a reland of 410ca4c5 Skip new test for unsupported liftoff architecture. Previously, if there is some unsupported liftoff functions, it fall through Turbofan but recompilation didn't catch and count it. This CL fixes it by using requested_tier on finished units. Avoid to tier down asm.js. Introduce reached recompilation tier to monitor recompilation progress. Original change's description: > [wasm] Tierdown wasm module upon "Debugger.enable" > > Put a logic in Wasm Engine to tier down all existing modules per isolate > when debugger is enabled. This CL does not handle new module added after > debugger is enabled yet. > > Bug: v8:9654 > Change-Id: I87060f5c416506543fcaf231bff9999d06ba4c0d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2013692 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Simon Zünd <szuend@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66017} TBR=szuend@chromium.org,bmeurer@chromium.org Bug: v8:9654 Change-Id: I6014ae52d1e04726e64ee9267c5ce559090414d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2031744 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66164}
-
- 05 Feb, 2020 1 commit
-
-
Clemens Backes authored
If new Liftoff code is generated but we already have either Liftoff or TurboFan code, we still want to install and use the new Liftoff code if we are in debugging. This logic can probably be simplified again when the "tier down to liftoff on Debugger.enable" logic is fully implemented. I left a TODO to revisit the logic later. R=thibaudm@chromium.org Bug: v8:10147 Change-Id: Ie3a6bdf1cde4f1af884edc8cf1f1b5a507283a5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2036089 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#66129}
-
- 04 Feb, 2020 1 commit
-
-
Clemens Backes authored
The debug side table is indexed by pc offset. Offsets change if breakpoints are added or removed, hence we cannot reuse the debug side table when compiling another version of the function (with a different set of breakpoints). Thus store the debug side table per code object instead of per function. R=thibaudm@chromium.org Bug: v8:10147 Change-Id: Ifd77dd8f43c9b80bc4715ffe5ca8f0adca2aaf42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030922Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66110}
-
- 31 Jan, 2020 1 commit
-
-
Clemens Backes authored
This shipped in v7.9, which is stable since six weeks. We do not test the previous configuration any more and don't plan to move back, hence remove the flag and clean up the code. R=ahaas@chromium.org Bug: v8:10155 Change-Id: I6b981f4be686473a911f041952cb684749d9fe7e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030732 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#66063}
-
- 30 Jan, 2020 1 commit
-
-
Eric Leese authored
This reverts commit 410ca4c5. Reason for revert: This was causing Chrome to hang when debugging large wasm binaries. Clean revert except for modification to test/debugger/debugger.status Bug: chromium:1047210, v8:9654 Original change's description: > [wasm] Tierdown wasm module upon "Debugger.enable" > > Put a logic in Wasm Engine to tier down all existing modules per isolate > when debugger is enabled. This CL does not handle new module added after > debugger is enabled yet. > > Bug: v8:9654 > Change-Id: I87060f5c416506543fcaf231bff9999d06ba4c0d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2013692 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Simon Zünd <szuend@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66017} TBR=clemensb@chromium.org,bmeurer@chromium.org,duongn@microsoft.com,szuend@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9654 Change-Id: Id49e8c69f8212e95e698d7e7267056fb2eb7e60a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030737 Auto-Submit: Eric Leese <leese@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66054}
-
- 29 Jan, 2020 1 commit
-
-
Z Nguyen-Huu authored
Put a logic in Wasm Engine to tier down all existing modules per isolate when debugger is enabled. This CL does not handle new module added after debugger is enabled yet. Bug: v8:9654 Change-Id: I87060f5c416506543fcaf231bff9999d06ba4c0d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2013692 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66017}
-
- 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}
-
- 22 Jan, 2020 1 commit
-
-
Z Nguyen-Huu authored
This is a reland of faccc95b Since 1c9bb77d, async jobs use existing entry in native module cache and skip recompilation so we need to fix the test. Original change's description: > Reland "[wasm] Perform NativeModule tier down in parallel." > > This is a reland of 3352fcc9 > > Disable stress-opt for test and check recompilation before clearing > callbacks. > > Original change's description: > > [wasm] Perform NativeModule tier down in parallel. > > > > Reuse logic in {CompileNativeModule} function in module-compiler.cc: > > initialize parallel compile jobs, then wait for them to finish while > > taking part in this compilation. > > > > Bug: v8:9654 > > Change-Id: I9974d9f8b516e9faec716a592c7c0ee9c7077d8e > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977041 > > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > > Reviewed-by: Clemens Backes <clemensb@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#65763} > > Bug: v8:9654 > Change-Id: I8e8830f05e189596207365b7332a2cc25e493e47 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002945 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65901} Bug: v8:9654 Change-Id: Ia63b86d4275088d93202046bc9823e6202b7991a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2012986Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#65929}
-
- 21 Jan, 2020 2 commits
-
-
Zhi An Ng authored
This reverts commit faccc95b. Reason for revert: Causing some failures, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/15741 and https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64/35635 and https://ci.chromium.org/p/v8/builders/ci/V8%20Mac64/32736 Original change's description: > Reland "[wasm] Perform NativeModule tier down in parallel." > > This is a reland of 3352fcc9 > > Disable stress-opt for test and check recompilation before clearing > callbacks. > > Original change's description: > > [wasm] Perform NativeModule tier down in parallel. > > > > Reuse logic in {CompileNativeModule} function in module-compiler.cc: > > initialize parallel compile jobs, then wait for them to finish while > > taking part in this compilation. > > > > Bug: v8:9654 > > Change-Id: I9974d9f8b516e9faec716a592c7c0ee9c7077d8e > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977041 > > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > > Reviewed-by: Clemens Backes <clemensb@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#65763} > > Bug: v8:9654 > Change-Id: I8e8830f05e189596207365b7332a2cc25e493e47 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002945 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65901} TBR=clemensb@chromium.org,duongn@microsoft.com Change-Id: I99f5a5455a022d0cbff3da54610cedfe6380a094 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9654 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2012985Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65903}
-
Z Nguyen-Huu authored
This is a reland of 3352fcc9 Disable stress-opt for test and check recompilation before clearing callbacks. Original change's description: > [wasm] Perform NativeModule tier down in parallel. > > Reuse logic in {CompileNativeModule} function in module-compiler.cc: > initialize parallel compile jobs, then wait for them to finish while > taking part in this compilation. > > Bug: v8:9654 > Change-Id: I9974d9f8b516e9faec716a592c7c0ee9c7077d8e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977041 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65763} Bug: v8:9654 Change-Id: I8e8830f05e189596207365b7332a2cc25e493e47 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002945 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65901}
-
- 15 Jan, 2020 1 commit
-
-
Ng Zhi An authored
This reverts commit 3352fcc9. Reason for revert: Causing wasm/tier-down-to-liftoff.js to be flaky, https://crbug.com/v8/10086 Original change's description: > [wasm] Perform NativeModule tier down in parallel. > > Reuse logic in {CompileNativeModule} function in module-compiler.cc: > initialize parallel compile jobs, then wait for them to finish while > taking part in this compilation. > > Bug: v8:9654 > Change-Id: I9974d9f8b516e9faec716a592c7c0ee9c7077d8e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977041 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65763} TBR=rmcilroy@chromium.org,clemensb@chromium.org,duongn@microsoft.com Change-Id: Ie3a0a3b2315879b6c19ef25f435fdc83c297b23b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9654 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002692Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65797}
-
- 14 Jan, 2020 1 commit
-
-
Z Nguyen-Huu authored
Reuse logic in {CompileNativeModule} function in module-compiler.cc: initialize parallel compile jobs, then wait for them to finish while taking part in this compilation. Bug: v8:9654 Change-Id: I9974d9f8b516e9faec716a592c7c0ee9c7077d8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977041 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65763}
-
- 07 Jan, 2020 1 commit
-
-
Z Nguyen-Huu authored
This is reland of 6ce3046e Skip the test in multi-isolates config. Bug: v8:9654 Change-Id: I035c867c99219bbf8d4fa25b58c734306e25fa63 Original change's description: > [wasm] Add support to tier down/up Wasm NativeModule > > This is the first part of switching between Liftoff and Turbofan in > debugging Wasm. In this CL, we implemented the logic to tier down/up all > functions in module. > > Bug: v8:9654 > Change-Id: Ia25103ca29963afa103c124ff5f159f197c2b2b0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970470 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65529} Change-Id: I035c867c99219bbf8d4fa25b58c734306e25fa63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1985032 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65614}
-
- 02 Jan, 2020 1 commit
-
-
Peter Marshall authored
This reverts commit 6ce3046e. Reason for revert: Flaky test failures, see flako run: https://ci.chromium.org/p/v8/builders/try.triggered/v8_flako/b8893085619399726256 Original change's description: > [wasm] Add support to tier down/up Wasm NativeModule > > This is the first part of switching between Liftoff and Turbofan in > debugging Wasm. In this CL, we implemented the logic to tier down/up all > functions in module. > > Bug: v8:9654 > Change-Id: Ia25103ca29963afa103c124ff5f159f197c2b2b0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970470 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65529} TBR=clemensb@chromium.org,bmeurer@chromium.org,duongn@microsoft.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9654, v8:10086 Change-Id: I44a4c2bde87ba5e4e83859e3e3c96103249b585f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981501 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#65573}
-
- 27 Dec, 2019 1 commit
-
-
Clemens Backes authored
This adds a {wasm::DebugInfo} struct which will hold the {wasm::DebugSideTable}s for individual Liftoff functions, and will use them to construct local scope information. R=jkummerow@chromium.org, bmeurer@chromium.org Bug: v8:10019 Change-Id: I7869cec5000e9b126c891a242fcccfc53c67662e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975758 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#65563}
-
- 19 Dec, 2019 1 commit
-
-
Z Nguyen-Huu authored
This is the first part of switching between Liftoff and Turbofan in debugging Wasm. In this CL, we implemented the logic to tier down/up all functions in module. Bug: v8:9654 Change-Id: Ia25103ca29963afa103c124ff5f159f197c2b2b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970470 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65529}
-
- 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}
-
- 17 Dec, 2019 1 commit
-
-
Clemens Backes authored
If --perf-prof is specified, we commit the whole code range at once, and never update the {total_committed_code_space_} counter (see {WasmCodeManager::Commit} and {WasmCodeManager::Decommit}). Hence we should also not decrement that counter when the native module dies. R=jkummerow@chromium.org Bug: chromium:1032753 Change-Id: I9a40f1a1322485d7142ed56f5c9365305aa0e056 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969790Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65476}
-
- 04 Dec, 2019 2 commits
-
-
Clemens Backes authored
Imports can also have associated names, and in fact we generate these names for asm.js. Thus in logging, just append this name to the generated signature. R=jkummerow@chromium.org Bug: chromium:1030103 Change-Id: I3969bcf8d1d17f4256b5a0643acdf8a24766f889 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948705 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65321}
-
Clemens Backes authored
This was probably meant by the TODO removed in https://crrev.com/c/1946354, I just failed to see it because the TODO was placed at the wrong place. The fix triggered a bug in the profiler, which made the wrong assumption that the passed wasm name is null-terminated. This is also fixed in this CL. R=jkummerow@chromium.org, petermarshall@chromium.org Change-Id: Ibf798e7511e61f6b305dd2d05d1aeca43be774a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948704Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65319}
-
- 02 Dec, 2019 3 commits
-
-
Clemens Backes authored
Instead of logging them as "wasm-unnamed" functions, log them as "wasm-to-js", and append the signature. This moves and generalizes the {AppendSignature} method that was already used to produce the signature string for other wrappers. R=jkummerow@chromium.org Bug: chromium:1029470 Change-Id: Ic911cb19a49dcbc332bf5a4aa195107522ac6945 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946350 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65287}
-
Clemens Backes authored
This fixes a few thing regarding code logging for profiling: 1) Append the execution tier, otherwise we get two function of the same name. 2) Replace "wasm-function[%d]" by "<wasm-unnamed>", since the index is appended later anyway. 3) Avoid unneeded JS heap and C++ heap allocations during logging. R=jkummerow@chromium.org Bug: chromium:1029470 Change-Id: Ie7af41f21e4595f8d8c574e4ad18273f89f1cb6e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1943162 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65285}
-
Clemens Backes authored
We already don't do the on-heap round-trip any more. R=jkummerow@chromium.org No-Try: true Change-Id: Ib7223699f6907ca695f17616c280f4aa665e7291 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946354 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65283}
-
- 13 Nov, 2019 1 commit
-
-
Clemens Backes authored
Instead of always using {AssemblerBase::kMinimalBufferSize}, this CL computes the expected code size per function compiled with Liftoff, and uses that size to allocate the initial assembler buffer. This saves reallocations especially for big functions. R=jkummerow@chromium.org Change-Id: I0031033c6be986f9d0d7bb10db0d213669044603 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910951Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64938}
-
- 12 Nov, 2019 2 commits
-
-
Clemens Backes authored
UMA data shows that we currently still allocate up to ten code spaces per module. This is because the code size estimates are vastly off, especially if both Liftoff and TurboFan is being used. Also, code sizes differ by platform. This CL adds more logic to the {EstimateNativeModuleCodeSize} function to distinguish Liftoff and TurboFan, and to use different constants per platform. A largeish comment explains how the numbers were generated, and that they are an extreme over-generalization. However, without further information about the module, this is the best we can do. After all, being off even by a factor of two does not hurt too much, as explained in the comment. R=jkummerow@chromium.org Change-Id: Icd178f5f4d0c7c8fa29b11b6eff7d14e64a1af1c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910102 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#64913}
-
Clemens Backes authored
On platforms that do not require the far jump table for wasm calls (32 bit platforms currently), we do not need to include a far jump table slot per wasm function. Other places already used the {NumWasmFunctionsInFarJumpTable} helper function, but in the actual allocation of the far jump table, it was missing. R=jkummerow@chromium.org Change-Id: I30734a1a25cc80e38c47abfd39059d56c9e5de57 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910101Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64911}
-
- 08 Nov, 2019 1 commit
-
-
Clemens Backes authored
In streaming compilation, we were computing a way too low code size estimate, since all {WasmFunction::code} fields were still zero when we were calling {EstimateNativeModuleCodeSize}. This lead to many separate code spaces being created during compilation, creating significant performance and memory overhead. This CL fixes this by passing the code section length when creating the {NativeModule}. From this, we can compute the code size estimate just as before. Drive-by: Rename "functions_count" to "num_functions" in {ProcessCodeSectionHeader} to be consistent with the declaration. R=ahaas@chromium.org Bug: v8:9950 Change-Id: I30a54c01ed24d0dfecb8a4b6d123015f1803ddeb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903439 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#64849}
-