• 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
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
OWNERS Loading commit data...
arguments-inl.h Loading commit data...
arguments.cc Loading commit data...
arguments.h Loading commit data...
execution.cc Loading commit data...
execution.h Loading commit data...
frame-constants.h Loading commit data...
frames-inl.h Loading commit data...
frames.cc Loading commit data...
frames.h Loading commit data...
futex-emulation.cc Loading commit data...
futex-emulation.h Loading commit data...
interrupts-scope.cc Loading commit data...
interrupts-scope.h Loading commit data...
isolate-data.h Loading commit data...
isolate-inl.h Loading commit data...
isolate-utils-inl.h Loading commit data...
isolate-utils.h Loading commit data...
isolate.cc Loading commit data...
isolate.h Loading commit data...
local-isolate-wrapper-inl.h Loading commit data...
local-isolate-wrapper.h Loading commit data...
messages.cc Loading commit data...
messages.h Loading commit data...
microtask-queue.cc Loading commit data...
microtask-queue.h Loading commit data...
off-thread-isolate-inl.h Loading commit data...
off-thread-isolate.cc Loading commit data...
off-thread-isolate.h Loading commit data...
pointer-authentication-dummy.h Loading commit data...
pointer-authentication.h Loading commit data...
protectors-inl.h Loading commit data...
protectors.cc Loading commit data...
protectors.h Loading commit data...
runtime-profiler.cc Loading commit data...
runtime-profiler.h Loading commit data...
simulator-base.cc Loading commit data...
simulator-base.h Loading commit data...
simulator.h Loading commit data...
stack-guard.cc Loading commit data...
stack-guard.h Loading commit data...
thread-id.cc Loading commit data...
thread-id.h Loading commit data...
thread-local-top.cc Loading commit data...
thread-local-top.h Loading commit data...
v8threads.cc Loading commit data...
v8threads.h Loading commit data...
vm-state-inl.h Loading commit data...
vm-state.h Loading commit data...