• bmeurer's avatar
    [builtins] Properly optimize TypedArray/DataView accessors. · 1ef73702
    bmeurer authored
    The following getters were moved to the TypedArray/DataView prototype
    chain with ES2015, and hence need different treatment now:
    
    - DataView.prototype.buffer
    - DataView.prototype.byteLength
    - DataView.prototype.byteOffset
    - TypedArray.prototype.buffer
    - TypedArray.prototype.byteLength
    - TypedArray.prototype.byteOffset
    - TypedArray.prototype.length
    
    Instead of having special magic on the LoadIC in the IC system and the
    optimizing compilers, as we used to do before (and which we got rid of
    already), we just treat those as normal accessors and make them
    recognizable via the BuiltinFunctionId mechanism. This allows us to
    remove some of the additional magic from the IC subsystem, and just
    extend the BuiltinFunctionId mechanism in Crankshaft slightly to cover
    these cases too (TurboFan doesn't yet support accessors, but that will
    be fixed soonish anyways).
    
    This addresses most of the 15-20% regression we saw on the Octane
    GameBoy emulator benchmark.
    
    BUG=chromium:579905,chromium:593634,v8:4085,v8:5073
    R=yangguo@chromium.org
    
    Review-Url: https://codereview.chromium.org/2042013003
    Cr-Commit-Position: refs/heads/master@{#36782}
    1ef73702
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/binutils Loading commit data...
tools Loading commit data...
.clang-format 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.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl 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...