[runtime] Compress the off-heap string table
Rather than an Object array, use a Tagged_t array to store the elements of the off-heap string table. This matches the old on-heap string table's behaviour, and recovers memory regressions from that work. To be able to do this, this also introduces a new slot type, OffHeapObjectSlot. This is because CompressedObjectSlot assumes that the slot is on-heap, and that it can mask the slot location to recover the isolate root. OffHeapObjectSlot doesn't define an operator*, and instead provides a `load(const Isolate*)` method. The other slots also gain this method so that they can use it in slot-templated functions. Also, the RootVisitor gains an OffHeapObjectSlot overload, which is UNREACHABLE by default and only needs to be defined by visitors that can access the string table. As a drive-by, fix some non-atomic accesses to the off-heap string table, also using the new slot. Bug: chromium:1109553 Bug: chromium:1115116 Bug: chromium:1115559 Bug: chromium:1115683 Change-Id: I819ed7bf820e9ef98ad5d5f9d0d592efbb6f5aa6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352489 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69381}
Showing
This diff is collapsed.
This diff is collapsed.
Please
register
or
sign in
to comment