[turbofan] Fix lazy deopt for JSToNumber conversions in binary operations.
authorjarin <jarin@chromium.org>
Mon, 9 Mar 2015 13:24:29 +0000 (06:24 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 9 Mar 2015 13:24:42 +0000 (13:24 +0000)
commit6f559b7ec32ac5d40a78dcadad297c8be4a979cf
treeb27addfe349a20ee9ab80b921e6deffaa83719de
parentdcb502a4eef665ee4409f8719080350943b08a73
[turbofan] Fix lazy deopt for JSToNumber conversions in binary operations.

This slightly hacky change provides lazy deopt points for to-number conversions in binops: When we deopt from a to-number conversion, we create a frame state with the already-converted value(s) so that we do not repeat the side effect of the conversion.

Embenchen numbers are below. It is not quite clear what happened to fasta - the hot code looks nearly identical.

Current: EmbenchenBox2d(RunTime): 12746 ms.
d8-master: EmbenchenBox2d(RunTime): 13861 ms.
----------- bullet.js
Current: EmbenchenBullet(RunTime): 17680 ms.
d8-master: EmbenchenBullet(RunTime): 19170 ms.
----------- copy.js
Current: EmbenchenCopy(RunTime): 4939 ms.
d8-master: EmbenchenCopy(RunTime): 4943 ms.
----------- corrections.js
Current: EmbenchenCorrections(RunTime): 6639 ms.
d8-master: EmbenchenCorrections(RunTime): 6728 ms.
----------- fannkuch.js
Current: EmbenchenFannkuch(RunTime): 4630 ms.
d8-master: EmbenchenFannkuch(RunTime): 4872 ms.
----------- fasta.js
Current: EmbenchenFasta(RunTime): 10209 ms.
d8-master: EmbenchenFasta(RunTime): 9673 ms.
----------- lua_binarytrees.js
Current: EmbenchenLuaBinaryTrees(RunTime): 12936 ms.
d8-master: EmbenchenLuaBinaryTrees(RunTime): 15529 ms.
----------- memops.js
Current: EmbenchenMemOps(RunTime): 7357 ms.
d8-master: EmbenchenMemOps(RunTime): 7340 ms.
----------- primes.js
Current: EmbenchenPrimes(RunTime): 7530 ms.
d8-master: EmbenchenPrimes(RunTime): 7457 ms.
----------- skinning.js
Current: EmbenchenSkinning(RunTime): 15832 ms.
d8-master: EmbenchenSkinning(RunTime): 15630 ms.
----------- zlib.js
Current: EmbenchenZLib(RunTime): 11176 ms.
d8-master: EmbenchenZLib(RunTime): 11324 ms.

BUG=

Review URL: https://codereview.chromium.org/985713003

Cr-Commit-Position: refs/heads/master@{#27071}
src/compiler/js-graph.cc
src/compiler/js-typed-lowering.cc
src/compiler/js-typed-lowering.h
test/cctest/cctest.status
test/cctest/compiler/test-js-typed-lowering.cc
test/mjsunit/compiler/deopt-tonumber-binop.js [new file with mode: 0644]
test/mjsunit/mjsunit.status