• 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
handler-compiler.cc 22.5 KB