• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...