- 21 Jul, 2020 2 commits
-
-
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}
-
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}
-
- 10 Jul, 2020 1 commit
-
-
Igor Sheludko authored
... by migrating old-style code MyObject* obj = new (zone) MyObject(...) to the new style MyObject* obj = zone->New<MyObject>(...) Bug: v8:10689 Change-Id: I2fc4a44ea05e4d087565811f343893f0e97dc660 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288857 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68789}
-
- 14 Apr, 2020 1 commit
-
-
Clemens Backes authored
Before the "debug" flag was stored on the {CompilationEnv}. But each background compilation task only gets the {CompilationEnv} once when starting compilation, so by the time it picks up the "Liftoff for debugging" compilation jobs, it might still compile them without the debug flag being set. This leads to flakes in the "debug-step-into-wasm" test, because we won't stop in the function prologue when stepping in (because the function prologue does not check the "hook on function call" flag if debug mode was not enabled). This CL does not increase the size of a compilation unit, since both the tier and the debug flag only need a single byte each. As a nice side effect, this change allows us to remove the lock in {CreateCompilationEnv}, because no modifyable flag is read any more. R=thibaudm@chromium.org Bug: v8:10410 Change-Id: Ic296ea0c4dd1d4dedde119f0536e87e5d301b5a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144116Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67115}
-
- 09 Apr, 2020 1 commit
-
-
Clemens Backes authored
In production, the debug side tables will always be produced with Liftoff in debug mode ({CompilationEnv::debug} being set). Thus, this CL switches the tests to also test this configuration. R=thibaudm@chromium.org Bug: v8:10410 Change-Id: I3fa16f099d2bb612c7abf8c3ef518e1446564306 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144119Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67090}
-
- 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}
-
- 24 Feb, 2020 1 commit
-
-
Clemens Backes authored
This extends the debug side table to also store register locations in addition to constants and stack values. Previously, every value that was not constant was assumed to be spilled to the stack. This made sense, because without breakpoints we would only emit debug side table entries at call sites, where all registers are spilled. With breakpoints, this changes. At break locations, values might be live in registers. The logic to decide whether a value will live in the register or on the stack is extended, because we sometimes generate the debug side table entry at a point where the registers are not spilled yet. The debug side table entry creation needs to account for that, and assume that these registers will still be spilled. R=thibaudm@chromium.org Bug: v8:10147, v8:10222 Change-Id: I3b020dfaa29fc007047663706ee286180a996bfd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066960 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#66407}
-
- 21 Feb, 2020 1 commit
-
-
Clemens Backes authored
This extends the debug side table test to check that the two methods {ExecuteLiftoffCompilation} and {GenerateLiftoffDebugSideTable} return the same debug side table. This is important, because for code without breakpoints, we generate the debug side table lazily via the {GenerateLiftoffDebugSideTable} method, and it needs to match the code generated previously via {ExecuteLiftoffCompilation}. R=thibaudm@chromium.org Bug: v8:10147 Change-Id: I267f599beb3fe39a1ccf22840a9d0a7f9bc5143e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066957Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66384}
-
- 20 Feb, 2020 1 commit
-
-
Clemens Backes authored
This refactors the debug side table such that we can easily add register information later. In particular - vectors for types and stack offsets are combined into one; - constants are stored in the same vector; - locals and operand stack values are stored in the same vector. A follow-up CL will extend the DebugSideTable to also encode locals or operand stack values held in registers. R=thibaudm@chromium.org Bug: v8:10147, v8:10222 Change-Id: I97adb56b31afdb22896530c7ba2e8a24b5d31da9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062405 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#66374}
-
- 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}
-
- 09 Jan, 2020 1 commit
-
-
Clemens Backes authored
Store the types of locals in the {DebugSideTable}, and the type of all stack values on each entry. Especially the stack value types would be difficult to reconstruct later on. R=jkummerow@chromium.org Bug: v8:10019 Change-Id: I9b945b4e0a51166460420099908442703d3d486a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975759 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65670}
-
- 17 Dec, 2019 1 commit
-
-
Clemens Backes authored
For out-of-line code, we need to generate the debug side table information at the point where the out-of-line code is being triggered, not when it is emitted (at the end of the function). This CL also adds more tests to check the actual content of the debug side table in different scenarios. R=jkummerow@chromium.org Bug: v8:10019 Change-Id: I7714c86ee7edc4918b5ecc97cbded84c27b00e09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967388Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65481}
-
- 06 Dec, 2019 1 commit
-
-
Clemens Backes authored
This adds a method to generate the debug side table via Liftoff, and adds first tests that check that the number of entries is as expected. These tests will be extended in a follow-up CL to test the actual content of the debug side table. R=mstarzinger@chromium.org Bug: v8:10019 Change-Id: I393ffabed3408463ffba232a66e2dffd7dd74f15 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1954390 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#65370}
-
- 28 Nov, 2019 1 commit
-
-
Clemens Backes authored
Fix a TODO from Ben to change the macro argument order to match the actual order in wasm code. After this fix, we can remove the individual {WASM_CALL_INDIRECT[0-5]} macros and implement them via a common variadic macro. Also, rename {WASM_CALL_INDIRECT_TABLE0} to {WASM_CALL_INDIRECT_TABLE}. The name was confusing, because this macro explictly allows to set a table index different from 0. Thus, just drop the "0" in the name. The individual test changes were done via a vim macro, to avoid manual errors. R=mstarzinger@chromium.org Bug: v8:10021 Change-Id: I9f0f31511c5c6e20a0b07524bf75fe9cf1598eba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940265Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65242}
-
- 27 Nov, 2019 1 commit
-
-
Clemens Backes authored
This adds a few tests that test that the output of Liftoff is deterministic. These tests will be extended to test the debug side table in follow-up CLs. R=mstarzinger@chromium.org Bug: v8:10019 Change-Id: Ia7992e7a889bf6dad963e5abe5b50507735996a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1932371 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#65190}
-