- 06 Jul, 2022 1 commit
-
-
Leszek Swirski authored
Maglev groups all its tagged spill slots together, and the number of them doesn't change. This means that the generality of the existing safepoint mechanism is massive overkill for maglev code. This patch adds a maglev-specific safepoint table, which is the safepoint of a code object if-and-only-if that code object has maglev code. This safepoint stores the number of tagged and untagged slots once, globally, and individual entries are just used for deopts and for storing the state of pushed registers (this is currently unused, but will be used in the future for pushing registers in deferred calls). Bug: v8:7700 Change-Id: I15f84a6e957357825e84e33238f8a36f2e0b3012 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3747858 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81564}
-
- 13 May, 2022 1 commit
-
-
Clemens Backes authored
Now that we require C++17 support, we can just use the standard static_assert without message, instead of our STATIC_ASSERT macro. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I1d4e39c310b533bcd3a4af33d027827e6c083afe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647353Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80524}
-
- 23 Feb, 2022 1 commit
-
-
Jakob Gruber authored
A collection of smallish cleanups and improvements for safepoints. Maintainability: - The class names were not very clear; move Safepoint inside SafepointTableBuilder to clarify that this wrapper class is used during codegen. - Rename DefinePointerSlot/DefineRegister to DefineTaggedStackSlot/DefineTaggedRegister for clarity. - Use named constants instead of -1. - DefineTaggedRegister has no connection to kNoDeoptIndex, remove the DCHECK and comment. - Remove the unused kNumSafepointRegisters constant + other dead code. - Small clarifications in CommonFrame::IterateCompiledFrame. - Rename has_safepoint_info to uses_safepoint_table and refactor s.t. `stack_slots` can be used when `uses_safepoint_table == false`. In this case it just returns 0. Perf: - During codegen, represent stack slots as a growable bit vector instead of a list of int indices. Extend GrowableBitVector functionality to support the above. - Track the minimum index instead of iterating all stack slots in all safepoints before encoding. Bug: v8:7700 Change-Id: If409bc42c825d47fc0074fce51e3b963fd080806 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3483659Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#79233}
-
- 06 Dec, 2021 1 commit
-
-
Clemens Backes authored
This is a reland of f68242bc, with fixes for UBSan (double-fixed, actually). Original change's description: > [codegen] Reduce size of safepoint table fields > > Code objects are often small and do not use the full integer range of PC > offsets and deoptimization indexes. Reducing the size of these fields to > the required size per table reduces the overall size of safepoint tables > by roughly 25%. > > R=jkummerow@chromium.org > > Bug: v8:12401 > Change-Id: Ie6889a70782f5510436a1d05d31d17aac0bfec6e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306556 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78216} Bug: v8:12401 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Change-Id: I2aa7f6448afd3350b0cc3d09a0f4ac18fcab0928 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3310806Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#78244}
-
- 02 Dec, 2021 2 commits
-
-
Clemens Backes authored
This reverts commit f68242bc. Reason for revert: UBSan error: https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket/8828943333104509889/+/u/build/compile/stdout Original change's description: > [codegen] Reduce size of safepoint table fields > > Code objects are often small and do not use the full integer range of PC > offsets and deoptimization indexes. Reducing the size of these fields to > the required size per table reduces the overall size of safepoint tables > by roughly 25%. > > R=jkummerow@chromium.org > > Bug: v8:12401 > Change-Id: Ie6889a70782f5510436a1d05d31d17aac0bfec6e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306556 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78216} Bug: v8:12401 Change-Id: I53b574558305ac25fa8f38a843c98f653af201ba No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3312488 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#78217}
-
Clemens Backes authored
Code objects are often small and do not use the full integer range of PC offsets and deoptimization indexes. Reducing the size of these fields to the required size per table reduces the overall size of safepoint tables by roughly 25%. R=jkummerow@chromium.org Bug: v8:12401 Change-Id: Ie6889a70782f5510436a1d05d31d17aac0bfec6e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306556Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#78216}
-
- 30 Nov, 2021 2 commits
-
-
Clemens Backes authored
The logic for printing a safepoint table is currently duplicated for Wasm code and on-heap code, with slight differences. This CL provides a central {SafepointTable::Print} method that is used in both scenarios. The format is slightly changed to explicitly specify which bitmap corresponds to stack slots and which one to registers. R=jkummerow@chromium.org Bug: v8:12401 Change-Id: I67366b1f9a92450a6ebec4210ab4811800a54f34 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306976 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#78159}
-
Clemens Backes authored
This saves a lot of memory on bigger Wasm functions, which typically do not contain a lot of references (and no deoptimization data). Most entries can be collapsed there. We might also see some improvements on JavaScript code. R=jkummerow@chromium.org Bug: v8:12401 Change-Id: Ia12611de52c1ccd755d0a48ea0569ceb18716884 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306975 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#78147}
-
- 22 Nov, 2021 1 commit
-
-
Clemens Backes authored
Many safepoint tables do not contain any deoptimization info and/or no callee-saved registers. Do not emit empty fields for all entries in this case. This often shrinks the size of the encoded safepoint table by more than 50%. Drive-by cleanups: - Rename fields of the safepoint table entries to clarify their meaning ("tagged slots" instead of "bits", "tagged register indexes" instead of "register bits"). - Include the PC in the decoded {SafepointEntry} to make it the single source of truth. R=jkummerow@chromium.org Bug: v8:12401 Change-Id: If5c24a688a434842ed3b6427f5f1f3ea9232173a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289173Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#78021}
-
- 18 Nov, 2021 4 commits
-
-
Clemens Backes authored
The entries contain more than just deoptimization info. Thus rename them to "entries" and use "EntryBuilder" instead of "DeoptimizationInfo". Drive-by: Remove the redundant {emitted_} field, just check if {offset_} was initialized. R=jkummerow@chromium.org Bug: v8:12401 Change-Id: Ifedc265dc27dd6817b731d9e24a1d8654edc99de Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3291310 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77985}
-
Clemens Backes authored
Verify certain properties when emitting safepoint tables: - entries are ordered by PC, - trampoline PCs are also in order, - all trampoline PCs come after all regular PCs, and - an entry with a deopt index also has a trampoline PC set. Drive-by: Slightly simplify logic in {UpdateDeoptimizationInfo}. Drive-by 2: Inline IsIdenticalExceptForPc into the only caller, and further simplify the logic there. R=jkummerow@chromium.org Bug: v8:12401 Change-Id: I8ea41b1628dceb914191f23165c8dccb79f9204c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289162 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77983}
-
Clemens Backes authored
This removes the redundant {Safepoint::kNoDeoptimizationIndex} definition, and uses {SafepointEntry::kNoDeoptIndex} consistently. R=jkummerow@chromium.org Bug: v8:12401 Change-Id: I4e12862d96a2b97245f8dde62243013425e53ff1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289159Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#77979}
-
Clemens Backes authored
Many callers already pass an int, so there is no point in storing as an uint32_t internally. The style guide also recommends int as the general data type for integers, even if it's statically known that only positive values will occur. R=jkummerow@chromium.org Bug: v8:12401 Change-Id: I6067139f514895f925d1c536112b4cb5c2c24a36 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289157 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77975}
-
- 09 Jul, 2021 1 commit
-
-
Clemens Backes authored
We cannot emit the constant pool within the safepoint table data. It seems like we also don't do that, but the forgotten {BlockConstPoolScope} triggered a DCHECK. R=leszeks@chromium.org Bug: chromium:1227351, chromium:1217074 Change-Id: I187004c83e05002c651a15643bddea5b02cb00c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3015559Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75657}
-
- 19 Apr, 2021 2 commits
-
-
Clemens Backes authored
This saves quite some code space on wasm functions, which often do not spill any tagged values (hence the safepoints will just be empty). It also often saves a few bytes on code that actually spills tagged values, but not to the highest frame slots. R=jkummerow@chromium.org Bug: v8:11630 Change-Id: I3bd77b3afcd2cf86a92ce5b302b5aa06ec0ed223 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831873Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74043}
-
Clemens Backes authored
We plan to trim the size of safepoint entries, to avoid emitting completely empty entries, and also saving some bytes by removing trailing zeros. This CL prepares that by removing the assumption that the safepoint entry contains one bit per stack slot. Instead, we just use all bits that are there in the safepoint entry when iterating compiled frames. R=jkummerow@chromium.org Bug: v8:11630 Change-Id: Ib335a34da92a08e28fe84fb74f50c8535c2f4c41 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2831484Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74031}
-
- 17 Mar, 2021 2 commits
-
-
Igor Sheludko authored
This is a speed-for-memory tradeoff, which can be achieved by re-mapping the builtins code blob into existing code range. This CL handles cases where both embedded and un-embedded off-heap builtins' PCs might appear on the call stack. The v8_enable_short_builtin_calls build flag is still disabled. Bug: v8:11527, v8:11421 Change-Id: Ie3db6eb8e264854df42b936a97d3e73d01de5dfd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749636 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#73476}
-
Andreas Haas authored
The original CL was reverted because PC authentication was missing for the `caller_pc` in the stack walk. This caused a crash on the CFI bot. PS1 is the original CL, later patch sets contain the fix. Original Message: [wasm] Emit safepoint info for callee-saved registers in the deopt-index Encode safepoint info of callee-saved registers in the deopt index of the normal safepoint. R=clemensb@chromium.org, jkummerow@chromium.org Change-Id: I633cd715eccc697e888cd381e3bda1a47d0d0851 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759520Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73464}
-
- 15 Mar, 2021 2 commits
-
-
Clemens Backes authored
This reverts commit 74960db4. Reason for revert: Segfaults on CFI: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/4999/overview Original change's description: > [wasm] Emit safepoint info for callee-saved registers in the deopt-index > > Encode safepoint info of callee-saved registers in the deopt index of > the normal safepoint. > > Change-Id: I93bd0d2330b7f592b767860743c04a65ddaa92f5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739977 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73395} Change-Id: Ic4803b06a64b615f2258c594b601b4e8fd4b7bff No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759513 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73396}
-
Andreas Haas authored
Encode safepoint info of callee-saved registers in the deopt index of the normal safepoint. Change-Id: I93bd0d2330b7f592b767860743c04a65ddaa92f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739977 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#73395}
-
- 11 Mar, 2021 3 commits
-
-
Clemens Backes authored
This is a reland of 80f5dfda. A condition in pipeline.cc was inverted, which lead to a CSA verifier error. Original change's description: > [no-wasm] Exclude src/wasm from compilation > > This is the biggest chunk, including > - all of src/wasm, > - torque file for wasm objects, > - torque file for wasm builtins, > - wasm builtins, > - wasm runtime functions, > - int64 lowering, > - simd scala lowering, > - WasmGraphBuilder (TF graph construction for wasm), > - wasm frame types, > - wasm interrupts, > - the JSWasmCall opcode, > - wasm backing store allocation. > > Those components are all recursively entangled, so I found no way to > split this change up further. > > Some includes that were recursively included by wasm headers needed to > be added explicitly now. > > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc > because it only tests wasm backing stores. This file is excluded from > no-wasm builds then. > > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org > > Bug: v8:11238 > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73344} TBR=jgruber@chromium.org Bug: v8:11238 Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73348}
-
Clemens Backes authored
This reverts commit 80f5dfda. Reason for revert: Fails CSA verification: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/21766/overview Original change's description: > [no-wasm] Exclude src/wasm from compilation > > This is the biggest chunk, including > - all of src/wasm, > - torque file for wasm objects, > - torque file for wasm builtins, > - wasm builtins, > - wasm runtime functions, > - int64 lowering, > - simd scala lowering, > - WasmGraphBuilder (TF graph construction for wasm), > - wasm frame types, > - wasm interrupts, > - the JSWasmCall opcode, > - wasm backing store allocation. > > Those components are all recursively entangled, so I found no way to > split this change up further. > > Some includes that were recursively included by wasm headers needed to > be added explicitly now. > > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc > because it only tests wasm backing stores. This file is excluded from > no-wasm builds then. > > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org > > Bug: v8:11238 > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73344} Bug: v8:11238 Change-Id: I93672002c1faa36bb0bb5b4a9cc2032ee2ccd814 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752866 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73346}
-
Clemens Backes authored
This is the biggest chunk, including - all of src/wasm, - torque file for wasm objects, - torque file for wasm builtins, - wasm builtins, - wasm runtime functions, - int64 lowering, - simd scala lowering, - WasmGraphBuilder (TF graph construction for wasm), - wasm frame types, - wasm interrupts, - the JSWasmCall opcode, - wasm backing store allocation. Those components are all recursively entangled, so I found no way to split this change up further. Some includes that were recursively included by wasm headers needed to be added explicitly now. backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc because it only tests wasm backing stores. This file is excluded from no-wasm builds then. R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org Bug: v8:11238 Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#73344}
-
- 16 Feb, 2021 1 commit
-
-
Andreas Haas authored
Bug: v8:11384 Change-Id: I08bf27af977e94e6d441a83a62cae49eeaf856e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697198Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#72776}
-
- 27 Oct, 2020 1 commit
-
-
Jakob Gruber authored
This CL makes the metadata offsets stored in Code headers relative to the start of the metadata section (instead of to the start of the instructions section). In a follow-up, metadata for embedded builtins will be moved from the .text section (with r-x or --x permissions) to the .rodata section (with r-- permissions). Drive-by: Simplify invariants around section alignment. A new invariant is that the end of the instruction section is aligned to Code::kMetadataAlignment. Drive-by: Ensure trampoline Code objects contain no metadata (metadata offsets all refer to the off-heap metadata section). Tbr: dinfuehr@chromium.org Bug: v8:11036 Change-Id: Idd0980913bbde9d3d1946b558e3ca58ec6356fcc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491036Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#70788}
-
- 14 Jul, 2020 1 commit
-
-
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}
-
- 30 Jun, 2020 1 commit
-
-
Zhao Jiazhong authored
On mips platform, call operations may be followed by trampolines, which leading to wrong information of the call instr's location in safepoint. This CL fix it by adding a last_call_pc_ to record the location. Besides, this CL also fix a bind operation in CheckTrampolinePool, which may try to use trampoline before it's emission. Change-Id: Ic0cbdb93afffa60a7389ee8177c381087fcaf52e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2095645 Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#68600}
-
- 30 Jul, 2019 1 commit
-
-
Georgia Kouveli authored
Do not pass the deoptimization index in a register, instead infer it from the address we made the deoptimization call from. This makes the deoptimization exit sequence one instruction long instead of two. This requires emitting all deoptimization exits at the end of the function in a contiguous block, making sure no constant or veneer pools are emitted in between. This means that soft deoptimizations require an additional branch to the end of the function, which counteracts the removal of the move instruction, however soft deoptimizations are rare compared to eager and lazy ones. This reduces the code size of optimised functions for benchmarks like Octane and ARES-6 by about 4%. Change-Id: I771f9104a07de7931a4bb9c5836e25fb55b1a2a4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1714876 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#62991}
-
- 24 May, 2019 1 commit
-
-
Michael Starzinger authored
This removes dead and obsolete support for batch-saved register from the safepoint table. We no longer spill the entire register window (either double or general-purpose) from optimized code. All spills happen as part of the normal spill-slots on the stack by now. R=clemensh@chromium.org,jarin@chromium.org BUG=v8:9183 Change-Id: I5a2be7a543fa3e44d71ab1a35c722da0d458765c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627531 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61815}
-
- 23 May, 2019 2 commits
-
-
Yang Guo authored
NOPRESUBMIT=true TBR=mstarzinger@chromium.org Bug: v8:9247 Change-Id: I4cd6b79a1c2cba944f6f23caed59d4f1a4ee358b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624217 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61790}
-
Clemens Hammacher authored
This CL was generated by an automatic clang AST rewriter using this matcher expression: callExpr( callee( cxxMethodDecl( hasName("operator->"), ofClass(isSameOrDerivedFrom("v8::internal::Object")) ) ), argumentCountIs(1) ) The "->" at the expression location was then rewritten to ".". R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org Bug: v8:9183, v8:3770 No-Try: true No-Tree-Checks: true Change-Id: I0a7ecabdeafe51d0cf427f5280af0c7cab96869e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624209Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61764}
-
- 22 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61725}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 20 May, 2019 4 commits
-
-
Yang Guo authored
This reverts commit a7695520. Reason for revert: Was not the culprit. Original change's description: > Revert "Move deoptimizer files" > > This reverts commit 61523c45. > > Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/20396 > > Original change's description: > > Move deoptimizer files > > > > Bug: v8:9247 > > Change-Id: I6287907edb8a36225bfa9fe864305ea59c20dd8b > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617667 > > Commit-Queue: Yang Guo <yangguo@chromium.org> > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#61648} > > TBR=yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org > > Change-Id: Icf258f7bc409ef0c360cfa82029bfc45a41dc75f > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: v8:9247 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619749 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61650} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org Change-Id: Ic2aa07ccd08b6070222ec7a65b92b7afb9db484c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619753Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61652}
-
Yang Guo authored
This reverts commit 61523c45. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/20396 Original change's description: > Move deoptimizer files > > Bug: v8:9247 > Change-Id: I6287907edb8a36225bfa9fe864305ea59c20dd8b > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617667 > Commit-Queue: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61648} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org Change-Id: Icf258f7bc409ef0c360cfa82029bfc45a41dc75f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619749Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61650}
-
Yang Guo authored
Bug: v8:9247 Change-Id: I6287907edb8a36225bfa9fe864305ea59c20dd8b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617667 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61648}
-
Yang Guo authored
TBR=verwaest@chromium.org,rmcilroy@chromium.org NOTREECHECKS=true NOPRESUBMIT=true Bug: v8:9247 Change-Id: I9ddfb6e56ca8e47c4ac186a8df5f442d26420a69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617661 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61642}
-
- 17 May, 2019 2 commits
-
-
Yang Guo authored
This reverts commit 5f285395. Reason for revert: presubmit failure Original change's description: > Move logging and diagnostics related source files > > This also introduces a COMMON_OWNERS file, which is derived from the > current top-level OWNERS file. It is to be used for parts of the > codebase that is not sensitive to domain-specific expertise. > > NOPRESUBMIT=true > TBR=verwaest@chromium.org > > Bug: v8:9247 > Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61600} TBR=rmcilroy@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,verwaest@chromium.org Change-Id: I3827c3af4fd63b18aa48c49617f318a01746e813 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617247Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61601}
-
Yang Guo authored
This also introduces a COMMON_OWNERS file, which is derived from the current top-level OWNERS file. It is to be used for parts of the codebase that is not sensitive to domain-specific expertise. NOPRESUBMIT=true TBR=verwaest@chromium.org Bug: v8:9247 Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61600}
-
- 21 Jan, 2019 1 commit
-
-
Michael Starzinger authored
This removes the unused "argument count" field from the safepoint table as the field was unused by now and always contained the value zero. Also note that associating a callee's argument count with the call-site is not compatible with tail-call support. When tail-calling a function with a different number of arguments, the information associated with the call-site becomes stale. The number of arguments is a property of the callee, not of the call-site in the caller. For this reason the field in question is not usable to support reference types in function arguments (at least when tail-calls are also supported). R=ahaas@chromium.org Change-Id: If667d729267f2dd2642b755c54235cc08ca9b141 Reviewed-on: https://chromium-review.googlesource.com/c/1402548Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58969}
-