- 11 Aug, 2020 1 commit
-
-
Jakob Gruber authored
Updated: IsOptimized -> HasAttachedOptimizedCode HasOptimizedCode -> HasAvailableOptimizedCode IsInterpreted -> ActiveTierIsIgnition Bug: v8:8888 Change-Id: I96363622b67b53371a974f1c17cef387093f053c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346404 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69326}
-
- 05 Aug, 2020 1 commit
-
-
Jakob Gruber authored
With the new Turbofan variants (NCI and Turboprop), we need a way to distinguish between them both during and after compilation. We initially introduced CompilationTarget to track the variant during compilation, but decided to reuse the code kind as the canonical spot to store this information instead. Why? Because it is an established mechanism, already available in most of the necessary spots (inside the pipeline, on Code objects, in profiling traces). This CL removes CompilationTarget and adds a new NATIVE_CONTEXT_INDEPENDENT kind, plus helper functions to determine various things about a given code kind (e.g.: does this code kind deopt?). As a (very large) drive-by, refactor both Code::Kind and AbstractCode::Kind into a new CodeKind enum class. Bug: v8:8888 Change-Id: Ie858b9a53311b0731630be35cf5cd108dee95b39 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336793 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69244}
-
- 22 Jul, 2020 1 commit
-
-
Toan Pham authored
Some platforms disable reading of bytes in the .text section, so move the metadata into a separate .rodata section. Bug: v8:10707 Change-Id: I30ef7a180f489f175c31f9d4dcd02115c9f516c2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2301113 Commit-Queue: Toan Pham <toanpham@google.com> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68984}
-
- 20 Jul, 2020 1 commit
-
-
Victor Gomes authored
This adapts the deoptimizer to create a correct stack frame when the JS arguments are reversed. Change-Id: Ifc216116ce1e5e469316a22deb8679347e847f4f Bug: v8:10201 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297382 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#68940}
-
- 14 Jul, 2020 2 commits
-
-
Jakob Gruber authored
... on Code objects. Refactors: create a dedicated WasmCode constructor, hide the internal constructor, constify members, and let SafepointTable handle out-of-line tables. Expose a new Code::SafepointTableAddress() helper as the source of truth. Some safepoint tables may move out-of-line in the near future. Bug: v8:7777,v8:10707 Change-Id: I4e2d954ed2d157235e9dfa3e7a5ca08800896683 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297459Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68837}
-
Jakob Gruber authored
Handler tables (and other inlined Code metadata) will have to move outside the .text section. This CL creates Code::HandlerTableAddress() as a single chokepoint for accessing the handler table of a Code object. Drive-by: Create a dedicated constructor for WasmCode handler tables. Bug: v8:7777 Change-Id: I01c5157b732ba509b2c76f2744fde271c2ba1411 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295605 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68835}
-
- 17 Jun, 2020 1 commit
-
-
Georgia Kouveli authored
The SafeStackFrameIterator, used in the profiler, sometimes uses the link register instead of a return address stored on the stack, to get more accurate results. This happens in particular for bytecode handlers that do not create a stack frame. Authentication of PC for those frames would fail in the SafeStackFrameIterator, as the "PC address" would not point to a stack location with a signed return address, but instead to a member of the SafeStackFrameIterator class where the value of the link register was stored. We address this by skipping authentication of PCs in the profiler. Bug: v8:10026 Change-Id: I331c6c68e703db766be1891efffa69c2f9794e8a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2242954Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#68388}
-
- 13 May, 2020 1 commit
-
-
Clemens Backes authored
Frames that have not been compiled by Liftoff for debugging are uninspectable. Instead of reporting an empty local scope and stack scope in this case, just don't report these two scopes at all. This also fixes a case missed in https://crrev.com/c/2196349, where we would still try to generate the stack scope for non-debugging code. Drive-by: Use {WasmFrame} instead of {StandardFrame} in the {DebugWasmScopeIterator}, and use the {FrameInspectionScope} consistently. R=thibaudm@chromium.org, bmeurer@chromium.org CC=kimanh@chromium.org Bug: v8:10359, chromium:1071757, chromium:1079328, chromium:1072839 Change-Id: I3a3731a0bd9f582f94458500252922b4146e394f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198982Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67777}
-
- 11 May, 2020 1 commit
-
-
Clemens Backes authored
Also, rename the WASM_COMPILED frame type to just WASM. R=jkummerow@chromium.org Bug: v8:10389 Change-Id: I71f16f41a69f8b0295ba34bd7d7fad71729546f2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187613 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#67698}
-
- 08 May, 2020 1 commit
-
-
Clemens Backes authored
All wasm code is compiled now. Hence merge the {WasmCompiledFrameSummary} into {WasmFrameSummary} and remove the dispatch. Also, rename {IsWasmCompiled} to {IsWasm} and {AsWasmCompiled} to {AsWasm}. R=jkummerow@chromium.org Bug: v8:10389 Change-Id: I33e413c7d0fa622249563091925b29631472b40c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187170Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67689}
-
- 06 May, 2020 1 commit
-
-
Clemens Backes authored
Interpreter entry compilation was removed in https://crrev.com/c/2172962. This CL removes the {WasmInterpreterEntryFrame} and the corresponding {WASM_INTERPRETER_ENTRY} code kind. Some follow-up cleanups are left as TODOs. R=jkummerow@chromium.org,bmeurer@chromium.org Bug: v8:10389 Change-Id: I1a43eba1ac1a751e05990c688088d99fc901231f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2182456Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67607}
-
- 21 Apr, 2020 1 commit
-
-
Jakob Gruber authored
The intent of this work is to create a clean interface header file for the snapshot component. As a first step, move SerializedData and SnapshotData into their own dedicated files. Bug: v8:10416 Change-Id: I95af08508555a2ec3c2364094b81a76e3e6bb38a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144117 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#67269}
-
- 03 Apr, 2020 1 commit
-
-
Clemens Backes authored
Instead of two copies of the lookup code in frames.cc and wasm-debug.cc, put one lookup method on the WasmCode. This is where it belongs really, since the WasmCode is the main input to the function (besides the offset). Also refactor how source positions are computed in WasmCompiledFrame. Avoid going through the summary, which is unneccessarily complex. This also adds another {byte_offset} accessor which can be used for debugging. Bug: v8:10235 Change-Id: I5c545ee302754b86009f09bedc5ff6e39ba664f6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135726Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66991}
-
- 16 Mar, 2020 2 commits
-
-
Clemens Backes authored
This implements inspection of live registers on breakpoints in Liftoff. To that end, the frame pointer of the WasmDebugBreak frame is remembered when iterating the stack. Based on a platform-specific implementation of {WasmDebugBreakFrameConstants}, the offset of the respective register within that frame is computed, and the value is read from the frame. As a drive-by, the wasm debug side table is storing register codes as liftoff codes, which can also store register pairs (needed for i64 on 32-bit platforms, and for SIMD, which is not supported yet). R=jkummerow@chromium.org CC=thibaudm@chromium.org Bug: v8:10222 Change-Id: I01b669baf56430e100cd46cc46f210121ea679da Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2102574Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66719}
-
Clemens Backes authored
The set of registers to spill was wrong. Instead of spilling wasm parameter registers (like the WasmCompileLazy builtin), we should spill all registers that are being used as Liftoff cache registers. This CL defines platform-specific WasmDebugBreakFrameConstants which hold the set of registers to spill. This set is used in the builtin, and will later be used for inspecting the spilled registers. In order to iterate bit sets more easily in both direction (MSB to LSB or LSB to MSB), we add a base::bits::IterateBits{,Backwards} method which provides the respective iterators. R=jkummerow@chromium.org CC=thibaudm@chromium.org Bug: v8:10222 Change-Id: I73ecbdff9b29e244c478b404063c0c9ee25bc821 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2102570Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66715}
-
- 02 Mar, 2020 2 commits
-
-
Clemens Backes authored
The frame created by the WasmDebugBreak builtin now has a separate frame type, which will (later) allow to inspect the spilled registers. Once Liftoff supports reference types, this frame will also need special GC support for spilled heap references. R=jkummerow@chromium.org Bug: v8:10222 Change-Id: I110e51d1e6d09b0f44dcdd1cdcaafa2eaa64fddd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2083013Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66531}
-
Victor Gomes authored
Bug: v8:10201 Change-Id: I7c91e912feab227378810c91afe3de61e0e2fda8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2081817 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#66523}
-
- 13 Feb, 2020 1 commit
-
-
Georgia Kouveli authored
This is a reland of 137bfe47 Original change's description: > [arm64] Protect return addresses stored on stack > > This change uses the Arm v8.3 pointer authentication instructions in > order to protect return addresses stored on the stack. The generated > code signs the return address before storing on the stack and > authenticates it after loading it. This also changes the stack frame > iterator in order to authenticate stored return addresses and re-sign > them when needed, as well as the deoptimizer in order to sign saved > return addresses when creating new frames. This offers a level of > protection against ROP attacks. > > This functionality is enabled with the v8_control_flow_integrity flag > that this CL introduces. > > The code size effect of this change is small for Octane (up to 2% in > some cases but mostly much lower) and negligible for larger benchmarks, > however code size measurements are rather noisy. The performance impact > on current cores (where the instructions are NOPs) is single digit, > around 1-2% for ARES-6 and Octane, and tends to be smaller for big > cores than for little cores. > > Bug: v8:10026 > Change-Id: I0081f3938c56e2f24d8227e4640032749f4f8368 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1373782 > Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66239} Bug: v8:10026 Change-Id: Id1adfa2e6c713f6977d69aa467986e48fe67b3c2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2051958Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#66254}
-
- 12 Feb, 2020 2 commits
-
-
Nico Hartmann authored
This reverts commit 137bfe47. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Arm%20-%20debug/13072 Original change's description: > [arm64] Protect return addresses stored on stack > > This change uses the Arm v8.3 pointer authentication instructions in > order to protect return addresses stored on the stack. The generated > code signs the return address before storing on the stack and > authenticates it after loading it. This also changes the stack frame > iterator in order to authenticate stored return addresses and re-sign > them when needed, as well as the deoptimizer in order to sign saved > return addresses when creating new frames. This offers a level of > protection against ROP attacks. > > This functionality is enabled with the v8_control_flow_integrity flag > that this CL introduces. > > The code size effect of this change is small for Octane (up to 2% in > some cases but mostly much lower) and negligible for larger benchmarks, > however code size measurements are rather noisy. The performance impact > on current cores (where the instructions are NOPs) is single digit, > around 1-2% for ARES-6 and Octane, and tends to be smaller for big > cores than for little cores. > > Bug: v8:10026 > Change-Id: I0081f3938c56e2f24d8227e4640032749f4f8368 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1373782 > Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66239} TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,neis@chromium.org,georgia.kouveli@arm.com Change-Id: I57d5928949b0d403774550b9bf7dc0b08ce4e703 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10026 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2051952Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#66242}
-
Georgia Kouveli authored
This change uses the Arm v8.3 pointer authentication instructions in order to protect return addresses stored on the stack. The generated code signs the return address before storing on the stack and authenticates it after loading it. This also changes the stack frame iterator in order to authenticate stored return addresses and re-sign them when needed, as well as the deoptimizer in order to sign saved return addresses when creating new frames. This offers a level of protection against ROP attacks. This functionality is enabled with the v8_control_flow_integrity flag that this CL introduces. The code size effect of this change is small for Octane (up to 2% in some cases but mostly much lower) and negligible for larger benchmarks, however code size measurements are rather noisy. The performance impact on current cores (where the instructions are NOPs) is single digit, around 1-2% for ARES-6 and Octane, and tends to be smaller for big cores than for little cores. Bug: v8:10026 Change-Id: I0081f3938c56e2f24d8227e4640032749f4f8368 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1373782 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#66239}
-
- 10 Feb, 2020 1 commit
-
-
Santiago Aboy Solanes authored
FunctionEntry StackChecks is one of the two cases where we generate a StackCheck bytecode. In these cases, we do stack check against the js limit (not to be confused with the real js limit). Their purpose is to be able to interrupt the running code. We can omit the FunctionEntry StackCheck by embedding its code into the InterpreterEntryTrampoline builtin. We save one bytecode per interpreted function. This change has rippling effects for optimized code, as well as the deoptimizer. Bug: v8:10149, v8:9977, v8:9960 Change-Id: I6156de48b3bc0b519dd21190a8e6214fbe96c78d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914218Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#66206}
-
- 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}
-
- 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}
-
- 03 Dec, 2019 1 commit
-
-
Clemens Backes authored
Currently, we show wasm frames, js frames, and js-to-wasm frames (the latter two are identified as "OPTIMIZED"). This CL makes us also show wasm-to-js frames in CPU profiling. R=petermarshall@chromium.org Bug: chromium:1029470 Change-Id: I2d09f73e7d7e62867554f2a95dc8ad4500a2cde1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948706Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65313}
-
- 22 Nov, 2019 1 commit
-
-
Z Nguyen-Huu authored
This scenario is where user is at the end of Wasm execution and do some stepping. Hence, user should be back at Javascript frame. We can detect that stepping as it exits Wasm Interpreter and prepare debugging as a step-out-ish in Javascript. Bug: chromium:823923, chromium:1019606, chromium:1025151 Change-Id: I29022af0d5e5dcf78d87e83193f6e16fec954e87 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1912985 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#65122}
-
- 04 Nov, 2019 1 commit
-
-
Dan Elphick authored
This is a reland of 855591a5 Fixes break in builds that verify ReadOnlyHeap by relaxing the requirement for Code objects to be in CODE_SPACE in PagedSpaceObjectIterator::FromCurrentPage. Original change's description: > Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. > > [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Creates an allow-list of builtins that can still go in code_space > including all TFJ builtins and a small manual list that should be pared > down in the future. > > For builtins that go in RO_SPACE a Code object is created that contains an > immediate trap instruction. Generally these Code objects are still no > smaller than CODE_SPACE Code objects because of the Code object alignment > requirements. This will hopefully be addressed in a follow-up CL either by > relaxing them or removing the instruction stream completely. > > In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and > increases by the same amount. > > Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64700} Change-Id: I4eeb7dab3027b42fa58c5dfb2bad9873e9fff250 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893192 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64728}
-
- 31 Oct, 2019 2 commits
-
-
Bill Budge authored
This reverts commit 855591a5. Reason for revert: Breaks arm64 sim tests https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/17957 https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/16585 Original change's description: > Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. > > [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Creates an allow-list of builtins that can still go in code_space > including all TFJ builtins and a small manual list that should be pared > down in the future. > > For builtins that go in RO_SPACE a Code object is created that contains an > immediate trap instruction. Generally these Code objects are still no > smaller than CODE_SPACE Code objects because of the Code object alignment > requirements. This will hopefully be addressed in a follow-up CL either by > relaxing them or removing the instruction stream completely. > > In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and > increases by the same amount. > > Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64700} TBR=ulan@chromium.org,jgruber@chromium.org,delphick@chromium.org Change-Id: I4211c3bb7fe4741e0ba3898f92ce382dfc93c4f3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893636Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#64701}
-
Dan Elphick authored
Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358. [builtins] Move non-JS linkage builtins code objects into RO_SPACE Creates an allow-list of builtins that can still go in code_space including all TFJ builtins and a small manual list that should be pared down in the future. For builtins that go in RO_SPACE a Code object is created that contains an immediate trap instruction. Generally these Code objects are still no smaller than CODE_SPACE Code objects because of the Code object alignment requirements. This will hopefully be addressed in a follow-up CL either by relaxing them or removing the instruction stream completely. In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and increases by the same amount. Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64700}
-
- 25 Oct, 2019 2 commits
-
-
Clemens Backes authored
This is a reland of bc8ad334. The CL was innocent, thus unmodified reland with TBR. Original change's description: > [wasm][debug] Report global scope also for compiled frames > > The global scope (containing global values and the memory) can be > produced from the instance alone, hence we can also report it for > compiled frames. > > R=mstarzinger@chromium.org, jgruber@chromium.org > > Bug: v8:9676 > Change-Id: I20fbb74a98b00b128b6ed305b92fb56ad7dc7558 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876816 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64547} TBR=mstarzinger@chromium.org Bug: v8:9676 Change-Id: I2486a007156b7197d523f62ca3c30e29e7650b63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879929 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64558}
-
Michael Starzinger authored
This class used to describe unoptimized but compiled frames. All such frames are by now covered via the architecture-independent description in the {StandardFrameConstants} class (or one of its subclasses). R=clemensb@chromium.org BUG=v8:9810 Change-Id: I294cc6eec7d4a05e88e7aa336f1ebedfa0eb6e98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1878708Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64556}
-
- 24 Oct, 2019 2 commits
-
-
Sigurd Schneider authored
This reverts commit bc8ad334. Reason for revert: breaks ASAN: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20ASAN/33137 Original change's description: > [wasm][debug] Report global scope also for compiled frames > > The global scope (containing global values and the memory) can be > produced from the instance alone, hence we can also report it for > compiled frames. > > R=mstarzinger@chromium.org, jgruber@chromium.org > > Bug: v8:9676 > Change-Id: I20fbb74a98b00b128b6ed305b92fb56ad7dc7558 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876816 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64547} TBR=mstarzinger@chromium.org,jgruber@chromium.org,clemensb@chromium.org Change-Id: I7a37723286315235f0c0a63728de58633a3b259e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9676 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1878713Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#64549}
-
Clemens Backes authored
The global scope (containing global values and the memory) can be produced from the instance alone, hence we can also report it for compiled frames. R=mstarzinger@chromium.org, jgruber@chromium.org Bug: v8:9676 Change-Id: I20fbb74a98b00b128b6ed305b92fb56ad7dc7558 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876816Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64547}
-
- 18 Oct, 2019 2 commits
-
-
Sathya Gunasekaran authored
This reverts commit 83f8464f. Reason for revert: speculative revert for blink linux failure https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux/1272 Original change's description: > [builtins] Move non-JS linkage builtins code objects into RO_SPACE > > Creates an allow-list of builtins that can still go in code_space > including all TFJ builtins and a small manual list that should be pared > down in the future. > > For builtins that go in RO_SPACE a Code object is created that contains > no code at all (shrinking its size from 96 bytes to 64 bytes on x64), > but is there to allow the runtime to continue to work since it expects > a Code object. > > This reduces code_space from ~152k to ~40k (-112k) and increases > read_only_space from 33k to 108k (+75k) in the snapshot. > > Bug: v8:7464, v8:9821, v8:9338, v8:8127 > Change-Id: Icc8bfc722bb267a2bcc17e2f1e27bef7f02f2376 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795358 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64377} TBR=mstarzinger@chromium.org,jgruber@chromium.org,delphick@chromium.org Change-Id: I4cf38e9370280acdd2de718ca527776ebc509003 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7464, v8:9821, v8:9338, v8:8127 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868621Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#64383}
-
Dan Elphick authored
Creates an allow-list of builtins that can still go in code_space including all TFJ builtins and a small manual list that should be pared down in the future. For builtins that go in RO_SPACE a Code object is created that contains no code at all (shrinking its size from 96 bytes to 64 bytes on x64), but is there to allow the runtime to continue to work since it expects a Code object. This reduces code_space from ~152k to ~40k (-112k) and increases read_only_space from 33k to 108k (+75k) in the snapshot. Bug: v8:7464, v8:9821, v8:9338, v8:8127 Change-Id: Icc8bfc722bb267a2bcc17e2f1e27bef7f02f2376 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795358 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64377}
-
- 08 Oct, 2019 1 commit
-
-
Michael Starzinger authored
This removes the output parameter returning the number of stack slot for the frame from {LookupExceptionHandlerInTable}. This is a remnant from when V8 had dynamically sized frames (aka. full-codegen), which is no longer the case. The frame size can easily be computed independent of the exception handler found during the lookup. R=jkummerow@chromium.org BUG=v8:9810 Change-Id: I0c7e04c75d7e24f2731e22370833005c17d0297a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847155Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64159}
-
- 26 Sep, 2019 1 commit
-
-
Igor Sheludko authored
This CL fixes comparison operations that take into account full-word value instead of the lower 32 bits and tweaks some CSA helper functions for smi-corrupting decompression. Bug: v8:9706 Change-Id: I50e38a9f34b911ec0b8dd4e21298417bf23160aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1824943Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#63995}
-
- 13 Sep, 2019 1 commit
-
-
Leszek Swirski authored
For minified files especially, the line number alone isn't enough to identify an IC site. Change-Id: I93f54f8fca1002072af0d702c155768fa2a8dbcb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1800566Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63745}
-
- 11 Sep, 2019 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:8519 Change-Id: I3c63637fb9cb694e4d50be2fded1dcc02de7f2ba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796559 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63676}
-
- 05 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
{JavaScriptFrame::GetParameters} allocates a new {FixedArray}, hence all object references need to be handified to survive that allocation. R=mstarzinger@chromium.org Bug: chromium:1000635 Change-Id: I76df5ac109bdb6999fe897bdafaf2175344ecca4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787429Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63583}
-
- 22 Aug, 2019 1 commit
-
-
Jakob Gruber authored
This is a reland of 1e472c42 No change, this was a speculative revert to unblock the roll. TBR=jgruber Original change's description: > [compiler] Track the maximal unoptimized frame size > > This is another step towards considering the unoptimized frame size in > stack checks within optimized code. > > With the changes in this CL, we now keep track of the maximal > unoptimized frame size of the function that is currently being > compiled. An optimized function may inline multiple unoptimized > functions, so a single optimized frame can deopt to multiple > frames. The real frame size thus differs in different parts of the > optimized function. > > We only care about the maximal frame size, which we calculate > conservatively as an over-approximation, and track in > InstructionSelector::max_unoptimized_frame_height_ for now. In future > work, this value will be passed on to codegen, where it will be > applied as an offset to the stack pointer during the stack check. > > (The motivation behind this is to avoid stack overflows through deopts, > caused by size differences between optimized and unoptimized frames.) > > Note that this offset only ensure that the topmost optimized frame can > deopt without overflowing the stack limit. That's fine, because we only > deopt optimized frames one at a time. Other (non-topmost) frames are > only deoptimized once they are returned to. > > Drive-by: Print variable and total frame height in --trace-deopt. > > Bug: v8:9534 > Change-Id: I821684a9da93bff59c20c8ab226105e7e12d93eb > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762024 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Auto-Submit: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63330} Bug: v8:9534 Change-Id: I686f200e7be1f419e23e50789e11607a0b2886d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1766645 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#63356}
-