• Benedikt Meurer's avatar
    [turbofan] Support HOLEY_DOUBLE_ELEMENTS for Array#find() and findIndex(). · 11261f42
    Benedikt Meurer authored
    This adds the missing support for HOLEY_DOUBLE_ELEMENTS to both
    `Array#find()` and `Array#findIndex()`. The implementation just deopts
    whenever it hits a double hole. In order to prevent deoptimization
    loops we add feedback to the CheckFloat64Hole operator, which also
    addresses the TODO in the `%ArrayIteratorPrototype%.next()` lowering.
    
    This provides a speed-up of up to 8x in microbenchmarks when using
    `Array#find()` or `Array#findIndex()` on HOLEY_DOUBLE_ELEMENTS arrays.
    
    Bug: chromium:791045, v8:1956, v8:6587, v8:7165, v8:8015
    Change-Id: I1be22d3fcba56c676a81dc31a9042f8123ef3a55
    Reviewed-on: https://chromium-review.googlesource.com/1183906Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#55321}
    11261f42
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...
.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...