- 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}
-
- 04 May, 2021 1 commit
-
-
Clemens Backes authored
cpplint rules change over time, and we change the exact rules we enable for v8. This CL removes NOLINT annotations which are not needed according to the currently enabled rules. R=mslekova@chromium.org Bug: v8:11717 Change-Id: Ic986c01ac151cee9fc6f7d950d0c4c139ebac6d8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859852Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74354}
-
- 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}
-
- 12 Jan, 2021 1 commit
-
-
Jakob Gruber authored
.. instead of implicitly using -1 as a marker in a few spots. Bug: chromium:1161357 Change-Id: Icfb9a2b81dbda844c8405c57454d63ae89dfe4f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606336 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72037}
-
- 02 Dec, 2020 1 commit
-
-
Zhi An Ng authored
Bug: v8:11074 Change-Id: Ifdd52d501a1d55a2fe176f0995f8c0e7f71ca1fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569131 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71568}
-
- 20 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Because of LocalHeap safepoints, our existing assert scopes don't necessarily maintain the same guarantees as desired. In particular, DisallowHeapAllocation no longer guarantees that objects don't move. This patch transitions DisallowHeapAllocation to DisallowGarbageCollection, to ensure that code using this scope is also protected against safepoints. Change-Id: I0411425884f6849982611205fb17bb072881c722 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540547 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71319}
-
- 17 Aug, 2020 1 commit
-
-
Jakob Kummerow authored
This is a comment-only CL. Change-Id: I002b1765bfa839982ab11c22f744734fdd34d4ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352788Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69417}
-
- 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}
-
- 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: Iea6c1225ee672035763d8141292a40874658d270 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288864 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#68788}
-
- 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}
-
- 21 Jun, 2019 1 commit
-
-
Sigurd Schneider authored
v8memory.h does not have V8 specific definitions, and having it in base makes it clear that every component may include the file. It also ensures that including it does not create spurious dependencies on v8_base. Change-Id: I565f63b25f33a9ada19d7b2ac5990863ab17f4a7 Bug: v8:9183, v8:8855 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1657923 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62309}
-
- 24 May, 2019 2 commits
-
-
Yang Guo authored
TBR=mvstanton@chromium.org,neis@chromium.org,ahaas@chromium.org Bug: v8:9247 Change-Id: I5433c863a54f3412d73df0d38aba3fdbcfac7ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627973 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61830}
-
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 1 commit
-
-
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}
-
- 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}
-
- 04 Apr, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: Ie624a02598f5c3a43e40e03d0337c17ca5cc3769 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541052 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#60628}
-
- 26 Feb, 2019 1 commit
-
-
Sigurd Schneider authored
Change-Id: I4bd02bdb68727b6242b0fe4b81fd522813b13f39 Bug: v8:8834 Reviewed-on: https://chromium-review.googlesource.com/c/1488755Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59875}
-
- 13 Feb, 2019 1 commit
-
-
Nico Weber authored
For macros expanding to function definitions, I removed the spurious ; after macro invocations. For macros expandign to function declarations, I made the ; required and consistently inserted it. No behavior change. Bug: chromium:926235 Change-Id: Ib8085d85d913d74307e3481f7fee4b7dc78c7549 Reviewed-on: https://chromium-review.googlesource.com/c/1467545Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59558}
-
- 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}
-
- 13 Dec, 2018 1 commit
-
-
Michael Starzinger authored
This overlays the "arguments count" and the "deoptimization index" fields within a safepoint entry. It allows for a larger value of arguments count to be stored in entries that do not contain a deoptimization index. Currently the arguments count is unused in TurboFan, but it will be used to handle reference type arguments in WebAssembly code. R=ahaas@chromium.org BUG=v8:7581 Change-Id: I1e1d5af7e69288f046dc327de5d6e0466fc9ceaf Reviewed-on: https://chromium-review.googlesource.com/c/1371829 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#58224}
-