Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Issue 1768263004: [turbofan] [deoptimizer] Support inlining of ES6 tail calls. (Closed)

Created:
4 years, 9 months ago by Igor Sheludko
Modified:
4 years, 9 months ago
CC:
v8-reviews_googlegroups.com, v8-mips-ports_googlegroups.com, v8-x87-ports_googlegroups.com, v8-ppc-ports_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] [deoptimizer] Support inlining of ES6 tail calls. In case when F was called with incompatible number of arguments (and therefore the arguments adator frame was created), F inlines a tail call of G which then deopts the deoptimizer should also remove the arguments adaptor frame for F. This CL adds required machinery to the deoptimizer. BUG=v8:4698 LOG=N Committed: https://crrev.com/c29a4560bb548fa0ebeec8262f9d6fca9d50fe7a Cr-Commit-Position: refs/heads/master@{#34610}

Patch Set 1 : #

Patch Set 2 : Rebasing #

Total comments: 3

Patch Set 3 : Rebasing 2 #

Total comments: 8

Patch Set 4 : Addressing comments #

Total comments: 2

Patch Set 5 : Addressing comments, StandardFrameConstants -> CommonFrameConstants #

Unified diffs Side-by-side diffs Delta from patch set Stats (+294 lines, -109 lines) Patch
M src/arm/deoptimizer-arm.cc View 1 1 chunk +2 lines, -0 lines 0 comments Download
M src/arm64/deoptimizer-arm64.cc View 1 2 chunks +4 lines, -1 line 0 comments Download
M src/compiler/code-generator.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/frame-states.h View 1 chunk +1 line, -1 line 0 comments Download
M src/compiler/frame-states.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/js-inlining.h View 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/js-inlining.cc View 1 2 3 4 2 chunks +43 lines, -0 lines 0 comments Download
M src/deoptimizer.h View 1 2 3 6 chunks +22 lines, -6 lines 0 comments Download
M src/deoptimizer.cc View 1 2 3 4 22 chunks +181 lines, -86 lines 0 comments Download
M src/ia32/deoptimizer-ia32.cc View 1 1 chunk +3 lines, -1 line 0 comments Download
M src/mips/deoptimizer-mips.cc View 1 1 chunk +2 lines, -0 lines 0 comments Download
M src/mips64/deoptimizer-mips64.cc View 1 1 chunk +2 lines, -0 lines 0 comments Download
M src/objects.cc View 1 2 3 1 chunk +9 lines, -0 lines 0 comments Download
M src/objects-printer.cc View 2 chunks +6 lines, -3 lines 0 comments Download
M src/runtime/runtime-compiler.cc View 1 2 3 2 chunks +4 lines, -5 lines 0 comments Download
M src/x64/deoptimizer-x64.cc View 1 1 chunk +3 lines, -1 line 0 comments Download
M test/mjsunit/es6/tail-call-megatest.js View 2 chunks +4 lines, -5 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 37 (20 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1768263004/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1768263004/100001
4 years, 9 months ago (2016-03-08 15:52:52 UTC) #8
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_android_arm_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/builds/14521) v8_linux64_asan_rel on ...
4 years, 9 months ago (2016-03-08 15:54:03 UTC) #10
Igor Sheludko
Michi and Jaro, PTAL
4 years, 9 months ago (2016-03-08 15:54:21 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1768263004/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1768263004/140001
4 years, 9 months ago (2016-03-08 16:07:04 UTC) #14
Michael Starzinger
Approach is looking good. Here is a first round of comments. https://codereview.chromium.org/1768263004/diff/120001/test/mjsunit/es6/tail-call-megatest.js File test/mjsunit/es6/tail-call-megatest.js (right): ...
4 years, 9 months ago (2016-03-08 16:25:08 UTC) #15
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-08 16:28:55 UTC) #17
Igor Sheludko
https://codereview.chromium.org/1768263004/diff/120001/test/mjsunit/es6/tail-call-megatest.js File test/mjsunit/es6/tail-call-megatest.js (right): https://codereview.chromium.org/1768263004/diff/120001/test/mjsunit/es6/tail-call-megatest.js#newcode7 test/mjsunit/es6/tail-call-megatest.js:7: // Flags: --turbo --nostress-opt On 2016/03/08 16:25:08, Michael Starzinger ...
4 years, 9 months ago (2016-03-08 18:03:40 UTC) #18
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1768263004/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1768263004/160001
4 years, 9 months ago (2016-03-08 18:03:50 UTC) #20
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-08 18:25:21 UTC) #22
Michael Starzinger
LGTM on the compiler and the plumbing. I didn't look at the deoptimizer, please wait ...
4 years, 9 months ago (2016-03-08 21:29:53 UTC) #23
Jarin
Awesome! lgtm. https://codereview.chromium.org/1768263004/diff/160001/src/compiler/js-inlining.cc File src/compiler/js-inlining.cc (right): https://codereview.chromium.org/1768263004/diff/160001/src/compiler/js-inlining.cc#newcode545 src/compiler/js-inlining.cc:545: // will not "see" caller's arguments). Another ...
4 years, 9 months ago (2016-03-09 10:40:07 UTC) #24
Igor Sheludko
Thanks! Landing... https://codereview.chromium.org/1768263004/diff/160001/src/compiler/js-inlining.cc File src/compiler/js-inlining.cc (right): https://codereview.chromium.org/1768263004/diff/160001/src/compiler/js-inlining.cc#newcode545 src/compiler/js-inlining.cc:545: // will not "see" caller's arguments). Another ...
4 years, 9 months ago (2016-03-09 10:44:55 UTC) #26
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1768263004/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1768263004/200001
4 years, 9 months ago (2016-03-09 10:45:18 UTC) #28
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-09 11:08:51 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1768263004/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1768263004/200001
4 years, 9 months ago (2016-03-09 11:31:20 UTC) #33
commit-bot: I haz the power
Committed patchset #5 (id:200001)
4 years, 9 months ago (2016-03-09 11:33:20 UTC) #35
commit-bot: I haz the power
4 years, 9 months ago (2016-03-09 11:35:44 UTC) #37
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/c29a4560bb548fa0ebeec8262f9d6fca9d50fe7a
Cr-Commit-Position: refs/heads/master@{#34610}

Powered by Google App Engine
This is Rietveld 408576698