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

Issue 1702423002: [turbofan] Further fixing ES6 tail call elimination in Turbofan. (Closed)

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

Description

[turbofan] Further fixing ES6 tail call elimination in Turbofan. In case when F tail calls G we should also remove the potential arguments adaptor frame for F. This CL introduces two new machine instructions ArchTailCallCodeObjectFromJSFunction and ArchTailCallJSFunctionFromJSFunction which (unlike existing ArchTailCallCodeObject and ArchTailCallJSFunction) also drop arguments adaptor frame if it exists right before jumping to the target function. BUG=v8:4698 LOG=N Committed: https://crrev.com/2aae579cf04b24f605d1ae6b975d67d8dbbee672 Cr-Commit-Position: refs/heads/master@{#34566}

Patch Set 1 #

Patch Set 2 : Addressing offline comments #

Patch Set 3 : Rebasing, refactoring and ia32 port #

Patch Set 4 : Other ports #

Patch Set 5 : Rebasing #

Total comments: 2

Patch Set 6 : Addressing comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+350 lines, -71 lines) Patch
M src/compiler/arm/code-generator-arm.cc View 1 2 3 4 5 4 chunks +39 lines, -2 lines 0 comments Download
M src/compiler/arm/instruction-selector-arm.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/arm64/code-generator-arm64.cc View 1 2 3 4 5 4 chunks +36 lines, -0 lines 0 comments Download
M src/compiler/arm64/instruction-selector-arm64.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/code-generator.h View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/ia32/code-generator-ia32.cc View 1 2 3 4 5 4 chunks +50 lines, -2 lines 0 comments Download
M src/compiler/ia32/instruction-selector-ia32.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/instruction-codes.h View 1 2 3 4 1 chunk +36 lines, -34 lines 0 comments Download
M src/compiler/instruction-scheduler.cc View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/instruction-selector.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/instruction-selector.cc View 1 2 3 4 2 chunks +31 lines, -11 lines 0 comments Download
M src/compiler/mips/code-generator-mips.cc View 1 2 3 4 5 4 chunks +38 lines, -2 lines 0 comments Download
M src/compiler/mips/instruction-selector-mips.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/mips64/code-generator-mips64.cc View 1 2 3 4 5 4 chunks +38 lines, -2 lines 0 comments Download
M src/compiler/mips64/instruction-selector-mips64.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/x64/code-generator-x64.cc View 1 2 3 4 5 4 chunks +39 lines, -2 lines 0 comments Download
M src/compiler/x64/instruction-selector-x64.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/crankshaft/ia32/lithium-codegen-ia32.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/ia32/builtins-ia32.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/ia32/macro-assembler-ia32.h View 1 2 3 4 1 chunk +6 lines, -2 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 chunks +20 lines, -10 lines 0 comments Download
M test/mjsunit/es6/tail-call-megatest.js View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/es6/tail-call-simple.js View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download

Depends on Patchset:

Messages

Total messages: 38 (23 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/1702423002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1702423002/120001
4 years, 10 months ago (2016-02-19 15:43:04 UTC) #5
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 10 months ago (2016-02-19 16:08:45 UTC) #8
Igor Sheludko
PTAL
4 years, 10 months ago (2016-02-19 16:23:23 UTC) #10
Benedikt Meurer
LGTM from my side. I'd like to have a second opinion from Michi.
4 years, 10 months ago (2016-02-22 12:30:50 UTC) #13
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1702423002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1702423002/160001
4 years, 9 months ago (2016-03-07 11:34:09 UTC) #16
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_rel_ng/builds/2443)
4 years, 9 months ago (2016-03-07 11:47:04 UTC) #19
Michael Starzinger
LGTM with one optional suggestion. https://codereview.chromium.org/1702423002/diff/160001/src/compiler/arm/code-generator-arm.cc File src/compiler/arm/code-generator-arm.cc (right): https://codereview.chromium.org/1702423002/diff/160001/src/compiler/arm/code-generator-arm.cc#newcode455 src/compiler/arm/code-generator-arm.cc:455: case kArchTailCallCodeObjectFromJSFunction: { suggestion: ...
4 years, 9 months ago (2016-03-07 21:47:32 UTC) #20
Igor Sheludko
Thanks! https://codereview.chromium.org/1702423002/diff/160001/src/compiler/arm/code-generator-arm.cc File src/compiler/arm/code-generator-arm.cc (right): https://codereview.chromium.org/1702423002/diff/160001/src/compiler/arm/code-generator-arm.cc#newcode455 src/compiler/arm/code-generator-arm.cc:455: case kArchTailCallCodeObjectFromJSFunction: { On 2016/03/07 21:47:32, Michael Starzinger ...
4 years, 9 months ago (2016-03-07 23:19:23 UTC) #22
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1702423002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1702423002/200001
4 years, 9 months ago (2016-03-07 23:19:39 UTC) #24
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_arm64_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm64_rel/builds/16466)
4 years, 9 months ago (2016-03-07 23:23:54 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/1702423002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1702423002/220001
4 years, 9 months ago (2016-03-07 23:44:59 UTC) #29
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-08 00:04:31 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1702423002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1702423002/220001
4 years, 9 months ago (2016-03-08 00:08:29 UTC) #34
commit-bot: I haz the power
Committed patchset #6 (id:220001)
4 years, 9 months ago (2016-03-08 00:12:05 UTC) #36
commit-bot: I haz the power
4 years, 9 months ago (2016-03-08 00:12:24 UTC) #38
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/2aae579cf04b24f605d1ae6b975d67d8dbbee672
Cr-Commit-Position: refs/heads/master@{#34566}

Powered by Google App Engine
This is Rietveld 408576698