• Ulan Degenbaev's avatar
    [heap] Optimize marking of descriptor arrays. · 0400fc20
    Ulan Degenbaev authored
    Now a descriptor array tracks the number of descriptors that were
    already marked. The marking visitor of a map only marks the subset
    of the descriptors that it needs and that are not already marked.
    
    If a descriptor array is shared between M maps and has N descriptos,
    then the number of marking operations is reduced from O(M*N) to O(N).
    
    This patch also adds a marking barrier for descriptors.
    
    The marked descriptor counter in a descriptor array is not cleared
    after mark-compact GC. Instead, it embeds two bits from the global
    mark-compact epoch counter and is considered 0 if the bits do not match
    the current value of the global epoch counter.
    
    Bug: v8:8486
    Change-Id: I2a7822a6833f3143e1d351e5e4819c2ef2c07fb0
    Reviewed-on: https://chromium-review.googlesource.com/c/1382746
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#58372}
    0400fc20
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-js Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...