• Maciej Goszczycki's avatar
    Reland "[heap] Skip ro-space from heap iterators, add CombinedHeapIterator." · 9c062093
    Maciej Goszczycki authored
    Code relocation info is now always allocated in old-space. Before relocation
    info allocated for placeholders and builtins (which get replaced with
    trampolines in nosnap builds) would become unreachable. Since read-only space
    is not GCed and ReadOnlyHeapIterator doesn't check for reachability,
    ValidateSnapshot would fail finding unreachable objects returned by
    ReadOnlyHeapIterator.
    
    Because trampoline relocation info gets replaced with canonical one, this only
    affects no-embdded-builtins nosnap builds, which don't get much benefit from
    read-only relocation info anyway.
    
    A new check has been added to the read-only deserializer to verify that every
    read-only object is reachable at mksnapshot-time.
    
    The CombinedHeapIterator iteration order was changed to iterate over
    read-only space first, because that's how HeapIterator worked.
    
    This is a reland of 3d1d8eae
    
    Original change's description:
    > [heap] Skip ro-space from heap iterators, add CombinedHeapIterator.
    >
    > Read-only space sharing requires an iterator independent of heap. This
    > also enables future removal of read-only space from heap.
    >
    > Bug: v8:7464
    > Change-Id: Ia07a9369494ea2c547d12c01ffa1d7b8b6bbeabc
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1552795
    > Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
    > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
    > Reviewed-by: Dan Elphick <delphick@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#60819}
    
    Bug: v8:7464
    Change-Id: I49ae070955b77956962334a84f762ab29052d5ff
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566513Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
    Cr-Commit-Position: refs/heads/master@{#61185}
    9c062093
cctest.cc 13 KB