Description[builtins] Properly optimize TypedArray/DataView accessors.
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
Committed: https://crrev.com/1ef737026565ea2becc84f30cfd432e581d50c6b
Cr-Commit-Position: refs/heads/master@{#36782}
Patch Set 1 #
Total comments: 4
Patch Set 2 : Remove some dead code from TurboFan. #Patch Set 3 : Address Yang's comments. #
Messages
Total messages: 11 (3 generated)
|