• 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
js-native-context-specialization.cc 126 KB