• Leszek Swirski's avatar
    [runtime] Compress the off-heap string table · 279bd3e1
    Leszek Swirski authored
    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: 's avatarJakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69381}
    279bd3e1
Name
Last commit
Last update
..
embedded Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...
code-serializer.cc Loading commit data...
code-serializer.h Loading commit data...
context-deserializer.cc Loading commit data...
context-deserializer.h Loading commit data...
context-serializer.cc Loading commit data...
context-serializer.h Loading commit data...
deserializer-allocator.cc Loading commit data...
deserializer-allocator.h Loading commit data...
deserializer.cc Loading commit data...
deserializer.h Loading commit data...
mksnapshot.cc Loading commit data...
object-deserializer.cc Loading commit data...
object-deserializer.h Loading commit data...
read-only-deserializer.cc Loading commit data...
read-only-deserializer.h Loading commit data...
read-only-serializer.cc Loading commit data...
read-only-serializer.h Loading commit data...
references.h Loading commit data...
roots-serializer.cc Loading commit data...
roots-serializer.h Loading commit data...
serializer-allocator.cc Loading commit data...
serializer-allocator.h Loading commit data...
serializer-deserializer.cc Loading commit data...
serializer-deserializer.h Loading commit data...
serializer.cc Loading commit data...
serializer.h Loading commit data...
snapshot-compression.cc Loading commit data...
snapshot-compression.h Loading commit data...
snapshot-data.cc Loading commit data...
snapshot-data.h Loading commit data...
snapshot-empty.cc Loading commit data...
snapshot-external.cc Loading commit data...
snapshot-source-sink.cc Loading commit data...
snapshot-source-sink.h Loading commit data...
snapshot-utils.cc Loading commit data...
snapshot-utils.h Loading commit data...
snapshot.cc Loading commit data...
snapshot.h Loading commit data...
startup-deserializer.cc Loading commit data...
startup-deserializer.h Loading commit data...
startup-serializer.cc Loading commit data...
startup-serializer.h Loading commit data...