-
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}
c7e47c30