• Benedikt Meurer's avatar
    [turbofan] Collect and use SignedSmall input feedback for Divide. · 622852e5
    Benedikt Meurer authored
    For Divide operations like
    
      r = a / b
    
    where r has only truncated uses (i.e. only used in bitwise operations),
    we used to generate a Float64Div unless we statically knew something
    about a and b, even if a and b have always been integers so far.
    Crankshaft was able to generate an integer division here, because
    Fullcodegen collected feedback independently for inputs and outputs of
    binary operations.
    
    This adds new BinaryOperationFeedback::kSignedSmallInputs, which is used
    specifically for Divide to state that we have seen only SignedSmall
    inputs thus far, but the outputs weren't always in the SignedSmall
    range.
    
    The issue was discovered in a WebGL Triangulation library and reported
    via https://twitter.com/mourner/status/895708603117518848 after Node
    8.3.0 was released with I+TF.
    
    R=jarin@chromium.org
    
    Bug: v8:6698
    Change-Id: I830e421a3bf91fc8fa3665cbb706bc13675a6d2b
    Reviewed-on: https://chromium-review.googlesource.com/612063
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47302}
    622852e5
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles 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...
.gitignore Loading commit data...
.gn 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...
Makefile Loading commit data...
Makefile.android 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...