• Benedikt Meurer's avatar
    [turbofan] Use cheaper Float64 hole checks. · 7b935859
    Benedikt Meurer authored
    Holes in double arrays are encoded using a signaling NaN bit pattern.
    Previously when checking for Float64 holes we did an expensive bit
    check always, but most values aren't even NaNs in reality. So we changed
    the CheckFloat64Hole operator to first check if the value is a NaN at
    all and only if so, perform the concrete bit check (in deferred code).
    
    This improves the array copying test case mentioned in the bug from
    
      copyPacked: 123 ms.
      copyHoley: 157 ms.
    
    to
    
      copyPacked: 122 ms.
      copyHoley: 125 ms.
    
    so there's almost no penalty for double holey arrays anymore in case of
    copying arrays. This change seems to yield an overall ~1% on the Kraken
    benchmark.
    
    Bug: v8:8264
    Change-Id: Id7393867ec96fdc080e24d326039f80a9d7b6646
    Reviewed-on: https://chromium-review.googlesource.com/c/1261519Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#56380}
    7b935859
effect-control-linearizer.cc 180 KB