• Benedikt Meurer's avatar
    [turbofan] Fix inconsistent treatment of SpeculativeToNumber. · c54d93d6
    Benedikt Meurer authored
    This is a partial revert of e583fc83.
    The reasoning here is that the treatment of SpeculativeToNumber[hint]
    was not consistent (which led to the original bug that caused the
    performance regression): The semantics of the operator is that it turns
    its input into a number, and might bailout if the input is too complex
    to accomplish that within optimized code. It can use the hint to handle
    even fewer cases without the risk of a deoptimization loop. However it
    cannot rely on the hint influencing the output, especially not before
    SimplifiedLowering ran. The code for the OOB element access however
    relied on the hint being enforced, which caused the original bug.
    
    This CL repairs that and instead uses CheckSmi for the OOB element
    access guard.
    
    Also-By: tebbi@chromium.org
    Bug: chromium:819298, chromium:820729
    Change-Id: I9b2170ccf9b5561d698c0108e93e538cac1e708c
    Reviewed-on: https://chromium-review.googlesource.com/961066Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#51924}
    c54d93d6
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides 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...
.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...