• Michael Lippautz's avatar
    [oilpan] Split write barrier in fast and slow parts · 4024aad3
    Michael Lippautz authored
    Split write barrier into fast and slow parts:
    - The fast part only checks whether any Oilpan heap is currently marking. This
      check is only approximate as it does not consider the current ThreadState. In
      general, we expect this check to be enough to allow bailing out of the barrier.
    - The slow version checks whether the current ThreadState is marking and whether
      the values actually require a write barrier.
    
    This way we emit only a short instruction sequence for the fast cases and avoid
    poluting the regular instruction sequences.
    
    Verified locally on the microbenchmark blink_perf.parser query-selector-deep
    which showed a 42% regression. Scores (higher is better):
    - ToT: 8932
    - Without barrier: 15188
    - With this CL: 13352
    
    Bug: chromium:844576, chromium:757440
    Change-Id: Ie8ebbf95fef0ff59ad8f1a111dd5daecfabc4109
    Reviewed-on: https://chromium-review.googlesource.com/1071272
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
    Reviewed-by: default avatarKeishi Hattori <keishi@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#561424}
    4024aad3
member.h 17 KB