• Pierre Langlois's avatar
    [heap] Relax accessing markbits in ranges. · b152bb75
    Pierre Langlois authored
    When calling the `bitmap(chunk)` method of the various *MarkingState accessors
    we would receive a raw `Bitmap` pointer which does not tell you if accesses to
    markbits should be made atomically or not. As a result, we would default to
    doing atomic operation when in fact it may not be necessary.
    
    Here we're introducing a templated `ConcurrentBitmap` class that wraps
    operations done on the markbits and allows them to be made non-atomic.
    
    Additionaly, some of the `Bitmap` methods were only used to verify the heap and
    in the tests so they do not need atomic implementations. Using them in a
    concurrent context should now fail to link to make sure they're not mis-used in
    the future.
    
    Change-Id: Ifb55f8522c8bf0c87d65da9227864ee428d21bbd
    Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
    Reviewed-on: https://chromium-review.googlesource.com/c/1482916Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
    Cr-Commit-Position: refs/heads/master@{#59836}
    b152bb75
concurrent-marking.cc 36.7 KB