• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...