• Dominik Inführ's avatar
    [heap] Clean up invalidated OLD_TO_SHARED slots · 4dd04c0b
    Dominik Inführ authored
    With this CL OLD_TO_SHARED slots aren't removed at the end of full GC
    anymore. In order to allow for this, invalidated slots need to be
    filtered out when iterating the OLD_TO_SHARED remembered set.
    
    * When invalidating slots in an object, that object also needs to be
      recorded for OLD_TO_SHARED.
    * The sweeper has to remove invalidated objects in free memory when
      sweeping during a full GC.
    * OLD_TO_SHARED slots need to be removed in the evacuated start of
      a page when evacuation fails.
    * While local GCs don't need OLD_TO_SHARED, slots need to be filtered
      in order to be able to delete the set of invalidated objects during
      a GC.
    
    Bug: v8:11708
    Change-Id: I594307289a797bc0d68edf6793b914805d1285df
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584113Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#80018}
    4dd04c0b
sweeper.cc 26.7 KB