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

Issue 1609893003: [es6] Tail calls support. (Closed)

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

Description

[es6] Tail calls support. This CL implements PrepareForTailCall() mentioned in ES6 spec for full codegen, Crankshaft and Turbofan. When debugger is active tail calls are disabled. Tail calling can be enabled by --harmony-tailcalls flag. BUG=v8:4698 LOG=Y TBR=rossberg@chromium.org Committed: https://crrev.com/6131ab1edd6e78be01ac90b8f0b0f4f27f308071 Cr-Commit-Position: refs/heads/master@{#33509}

Patch Set 1 #

Total comments: 4

Patch Set 2 : Almost done #

Patch Set 3 : Support for CS and TF compilers added #

Total comments: 4

Patch Set 4 : ia32 and arm ports #

Patch Set 5 : The other ports some cleanup #

Patch Set 6 : Rebasing #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1521 lines, -198 lines) Patch
M src/arm/builtins-arm.cc View 1 2 3 4 5 6 chunks +137 lines, -6 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 2 chunks +3 lines, -2 lines 0 comments Download
M src/arm64/builtins-arm64.cc View 1 2 3 4 5 6 chunks +137 lines, -6 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 5 2 chunks +3 lines, -2 lines 0 comments Download
M src/ast/ast.h View 1 2 3 4 5 1 chunk +4 lines, -1 line 0 comments Download
M src/bootstrapper.cc View 1 2 3 4 5 2 chunks +2 lines, -1 line 0 comments Download
M src/builtins.h View 1 2 3 4 5 3 chunks +67 lines, -11 lines 0 comments Download
M src/builtins.cc View 1 2 3 4 5 1 chunk +56 lines, -17 lines 0 comments Download
M src/code-factory.h View 1 2 3 4 5 1 chunk +4 lines, -2 lines 0 comments Download
M src/code-factory.cc View 1 2 3 4 5 1 chunk +8 lines, -6 lines 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 2 3 4 5 1 chunk +3 lines, -2 lines 0 comments Download
M src/compiler/bytecode-graph-builder.cc View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/js-operator.h View 1 chunk +0 lines, -8 lines 0 comments Download
M src/compiler/js-operator.cc View 1 chunk +0 lines, -17 lines 0 comments Download
M src/crankshaft/arm/lithium-codegen-arm.cc View 1 2 3 4 5 1 chunk +11 lines, -7 lines 0 comments Download
M src/crankshaft/arm64/lithium-codegen-arm64.cc View 1 2 3 4 5 1 chunk +12 lines, -8 lines 0 comments Download
M src/crankshaft/hydrogen.cc View 1 2 3 4 5 6 chunks +12 lines, -6 lines 0 comments Download
M src/crankshaft/hydrogen-instructions.h View 1 2 3 4 5 2 chunks +19 lines, -6 lines 0 comments Download
M src/crankshaft/ia32/lithium-codegen-ia32.cc View 1 2 3 4 5 1 chunk +11 lines, -7 lines 0 comments Download
M src/crankshaft/mips/lithium-codegen-mips.cc View 1 2 3 4 5 1 chunk +11 lines, -7 lines 0 comments Download
M src/crankshaft/mips64/lithium-codegen-mips64.cc View 1 2 3 4 5 1 chunk +11 lines, -7 lines 0 comments Download
M src/crankshaft/x64/lithium-codegen-x64.cc View 1 2 3 4 5 1 chunk +12 lines, -7 lines 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/full-codegen/arm/full-codegen-arm.cc View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M src/full-codegen/arm64/full-codegen-arm64.cc View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M src/full-codegen/full-codegen.cc View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M src/full-codegen/ia32/full-codegen-ia32.cc View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M src/full-codegen/mips/full-codegen-mips.cc View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M src/full-codegen/mips64/full-codegen-mips64.cc View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M src/full-codegen/x64/full-codegen-x64.cc View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M src/globals.h View 1 2 3 4 5 1 chunk +15 lines, -0 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 1 2 3 4 5 6 chunks +141 lines, -6 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 2 chunks +3 lines, -2 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 3 chunks +6 lines, -6 lines 0 comments Download
M src/ic/ic.h View 1 chunk +4 lines, -2 lines 0 comments Download
M src/ic/ic.cc View 1 2 3 4 5 1 chunk +6 lines, -6 lines 0 comments Download
M src/ic/ic-state.h View 2 chunks +9 lines, -4 lines 0 comments Download
M src/mips/builtins-mips.cc View 1 2 3 4 5 6 chunks +135 lines, -6 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 3 4 5 2 chunks +3 lines, -2 lines 0 comments Download
M src/mips64/builtins-mips64.cc View 1 2 3 4 5 6 chunks +134 lines, -6 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 3 4 5 2 chunks +3 lines, -2 lines 0 comments Download
M src/parsing/parser.cc View 1 2 3 4 5 1 chunk +4 lines, -1 line 0 comments Download
M src/x64/builtins-x64.cc View 1 2 3 4 5 8 chunks +141 lines, -7 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 2 chunks +3 lines, -2 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 2 chunks +3 lines, -3 lines 0 comments Download
A test/mjsunit/es6/tail-call.js View 1 1 chunk +177 lines, -0 lines 0 comments Download
A test/mjsunit/es6/tail-call-proxies.js View 1 1 chunk +97 lines, -0 lines 0 comments Download
A test/mjsunit/es6/tail-call-simple.js View 1 1 chunk +90 lines, -0 lines 0 comments Download

Messages

Total messages: 36 (17 generated)
Benedikt Meurer
Awesome Igor! I love the idea of putting that into the Call builtin. Not much ...
4 years, 11 months ago (2016-01-21 05:20:49 UTC) #2
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1609893003/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1609893003/40001
4 years, 11 months ago (2016-01-21 14:29:40 UTC) #5
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_compile_dbg on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_compile_dbg/builds/12156) v8_win_nosnap_shared_compile_rel on ...
4 years, 11 months ago (2016-01-21 14:34:29 UTC) #7
Igor Sheludko
PTAL. I think x64 is now complete. Starting ports. https://codereview.chromium.org/1609893003/diff/1/src/x64/builtins-x64.cc File src/x64/builtins-x64.cc (right): https://codereview.chromium.org/1609893003/diff/1/src/x64/builtins-x64.cc#newcode2145 src/x64/builtins-x64.cc:2145: ...
4 years, 11 months ago (2016-01-21 14:37:08 UTC) #10
Benedikt Meurer
https://codereview.chromium.org/1609893003/diff/40001/src/x64/builtins-x64.cc File src/x64/builtins-x64.cc (right): https://codereview.chromium.org/1609893003/diff/40001/src/x64/builtins-x64.cc#newcode2372 src/x64/builtins-x64.cc:2372: void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm, Nit: No need to add Impl ...
4 years, 11 months ago (2016-01-22 05:23:12 UTC) #11
Igor Sheludko
Thanks! https://codereview.chromium.org/1609893003/diff/40001/src/x64/builtins-x64.cc File src/x64/builtins-x64.cc (right): https://codereview.chromium.org/1609893003/diff/40001/src/x64/builtins-x64.cc#newcode2372 src/x64/builtins-x64.cc:2372: void Builtins::Generate_CallBoundFunctionImpl(MacroAssembler* masm, On 2016/01/22 05:23:12, Benedikt Meurer ...
4 years, 11 months ago (2016-01-22 09:48:51 UTC) #12
Benedikt Meurer
I see. I'm fine with this approach as baseline. Let's see how the other architectures ...
4 years, 11 months ago (2016-01-22 10:14:45 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/1609893003/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1609893003/80001
4 years, 11 months ago (2016-01-25 17:37:10 UTC) #15
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_nosnap_shared_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_compile_rel/builds/9475)
4 years, 11 months ago (2016-01-25 17:40:33 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1609893003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1609893003/100001
4 years, 11 months ago (2016-01-25 21:55:28 UTC) #19
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-25 22:22:39 UTC) #21
Igor Sheludko
All the other ports are done. PTAL.
4 years, 11 months ago (2016-01-25 22:26:16 UTC) #22
Benedikt Meurer
Still LGTM :-)
4 years, 11 months ago (2016-01-26 10:05:06 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1609893003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1609893003/100001
4 years, 11 months ago (2016-01-26 10:13:20 UTC) #25
commit-bot: I haz the power
Try jobs failed on following builders: v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/10144)
4 years, 11 months ago (2016-01-26 10:21:02 UTC) #27
Igor Sheludko
Andreas, PTAL parsing part.
4 years, 11 months ago (2016-01-26 10:50:43 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1609893003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1609893003/100001
4 years, 11 months ago (2016-01-26 11:05:33 UTC) #32
commit-bot: I haz the power
Committed patchset #6 (id:100001)
4 years, 11 months ago (2016-01-26 11:07:23 UTC) #34
commit-bot: I haz the power
4 years, 11 months ago (2016-01-26 11:07:51 UTC) #36
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/6131ab1edd6e78be01ac90b8f0b0f4f27f308071
Cr-Commit-Position: refs/heads/master@{#33509}

Powered by Google App Engine
This is Rietveld 408576698