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

Issue 2629363002: [Ignition/turbo] Add a CallWithSpread bytecode. (Closed)

Created:
3 years, 11 months ago by petermarshall
Modified:
3 years, 11 months ago
CC:
rmcilroy, v8-reviews_googlegroups.com
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[Ignition/turbo] Add a CallWithSpread bytecode. Also, emit a NewWithSpread bytecode for CallNew AST nodes where possible, rather than desugaring in the parser. BUG=v8:5511 Review-Url: https://codereview.chromium.org/2629363002 Cr-Original-Commit-Position: refs/heads/master@{#42455} Committed: https://chromium.googlesource.com/v8/v8/+/4bae43471d5685e34d8bd74458889b83e60235a0 Review-Url: https://codereview.chromium.org/2629363002 Cr-Commit-Position: refs/heads/master@{#42590} Committed: https://chromium.googlesource.com/v8/v8/+/96220730e688f01909ad61f437d1a8b88a58d173

Patch Set 1 #

Patch Set 2 : Fix preparser vs. parser materialized literals expectation #

Patch Set 3 : remove blank line #

Patch Set 4 : refactor OnlyLastArgIsSpread #

Total comments: 10

Patch Set 5 : Address comments, use NewWithSpread for SpreadCallNew, not just super calls #

Patch Set 6 : Use proper bailout reason, call the right runtime function... #

Patch Set 7 : Remove case for 1 arg only from PrepareSpreadArguments #

Total comments: 9

Patch Set 8 : Add comments and TODOs, add a bytecode test #

Patch Set 9 : Add a bytecode test for NewAndSpread #

Patch Set 10 : Remove unused builtin, rebase onto master after NewWithSpread landed #

Patch Set 11 : Disable bytecodes when tailcalls are enabled #

Patch Set 12 : Add test for tail call #

Patch Set 13 : Disable bytecodes for tail calls #

Patch Set 14 : reparent on the bytecode CL #

Unified diffs Side-by-side diffs Delta from patch set Stats (+496 lines, -40 lines) Patch
M src/ast/ast.h View 1 2 3 4 5 6 7 8 11 12 2 chunks +8 lines, -0 lines 0 comments Download
M src/ast/ast-numbering.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -2 lines 0 comments Download
M src/bailout-reason.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/bytecode-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +10 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-array-builder.h View 1 2 3 4 5 6 7 8 9 11 12 1 chunk +5 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-array-builder.cc View 1 2 3 4 5 6 7 8 9 11 12 1 chunk +5 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-generator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 6 chunks +45 lines, -12 lines 0 comments Download
M src/interpreter/bytecodes.h View 1 2 3 4 5 6 7 8 9 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M src/interpreter/interpreter.cc View 1 2 3 4 5 6 7 8 9 11 12 1 chunk +21 lines, -1 line 0 comments Download
M src/parsing/parser.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M src/parsing/parser.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +26 lines, -16 lines 0 comments Download
M src/parsing/parser-base.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +8 lines, -2 lines 0 comments Download
M src/parsing/preparser.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +5 lines, -4 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -1 line 0 comments Download
M src/runtime/runtime-classes.cc View 1 2 3 4 5 6 7 8 9 11 12 1 chunk +43 lines, -0 lines 0 comments Download
A test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden View 1 2 3 4 5 6 7 11 12 1 chunk +107 lines, -0 lines 0 comments Download
A test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden View 1 2 3 4 5 6 7 8 9 11 12 1 chunk +157 lines, -0 lines 0 comments Download
M test/cctest/interpreter/test-bytecode-generator.cc View 1 2 3 4 5 6 7 8 11 12 1 chunk +28 lines, -0 lines 0 comments Download
A test/mjsunit/regress/regress-682242.js View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +18 lines, -0 lines 0 comments Download
M test/unittests/interpreter/bytecode-array-builder-unittest.cc View 1 2 3 4 5 6 7 8 9 11 12 1 chunk +2 lines, -1 line 0 comments Download

Dependent Patchsets:

Messages

Total messages: 80 (58 generated)
petermarshall
PTAL. Basically the same as the first NewWithSpread CL with a few different things. There ...
3 years, 11 months ago (2017-01-13 13:58:39 UTC) #8
Benedikt Meurer
LGTM on compiler and runtime. https://codereview.chromium.org/2629363002/diff/60001/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (right): https://codereview.chromium.org/2629363002/diff/60001/src/interpreter/bytecode-generator.cc#newcode2533 src/interpreter/bytecode-generator.cc:2533: DCHECK_EQ(expr->tail_call_mode(), TailCallMode::kDisallow); Nit: DCHECK_EQ(TailCallMode::kDisallow, ...
3 years, 11 months ago (2017-01-14 18:37:15 UTC) #13
rmcilroy
Looks like you've got some redness on the bots, but overall approach looks reasonable. My ...
3 years, 11 months ago (2017-01-16 10:29:40 UTC) #14
petermarshall
Ross, PTAL =] https://codereview.chromium.org/2629363002/diff/60001/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (left): https://codereview.chromium.org/2629363002/diff/60001/src/interpreter/bytecode-generator.cc#oldcode2493 src/interpreter/bytecode-generator.cc:2493: CHECK_EQ(expr->arguments()->length() + 1, args.register_count()); On 2017/01/16 ...
3 years, 11 months ago (2017-01-16 15:01:10 UTC) #25
rmcilroy
interpreter/ LGTM once comments are addressed. https://codereview.chromium.org/2629363002/diff/90015/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (right): https://codereview.chromium.org/2629363002/diff/90015/src/interpreter/bytecode-generator.cc#newcode2425 src/interpreter/bytecode-generator.cc:2425: args = register_allocator()->NewGrowableRegisterList(); ...
3 years, 11 months ago (2017-01-16 16:04:35 UTC) #26
petermarshall
Ross, PTAL at response to splitting CL https://codereview.chromium.org/2629363002/diff/90015/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (right): https://codereview.chromium.org/2629363002/diff/90015/src/interpreter/bytecode-generator.cc#newcode2425 src/interpreter/bytecode-generator.cc:2425: args = ...
3 years, 11 months ago (2017-01-17 08:39:39 UTC) #29
rmcilroy
https://codereview.chromium.org/2629363002/diff/90015/src/interpreter/bytecode-generator.cc File src/interpreter/bytecode-generator.cc (right): https://codereview.chromium.org/2629363002/diff/90015/src/interpreter/bytecode-generator.cc#newcode2615 src/interpreter/bytecode-generator.cc:2615: } On 2017/01/17 08:39:39, petermarshall wrote: > On 2017/01/16 ...
3 years, 11 months ago (2017-01-17 10:11:31 UTC) #32
petermarshall
On 2017/01/17 at 10:11:31, rmcilroy wrote: > I see, in that case I'm fine with ...
3 years, 11 months ago (2017-01-18 08:28:06 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2629363002/150001
3 years, 11 months ago (2017-01-18 08:28:23 UTC) #37
commit-bot: I haz the power
Try jobs failed on following builders: v8_presubmit on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/32654)
3 years, 11 months ago (2017-01-18 08:31:33 UTC) #39
petermarshall
Toon, could you PTAL for /parsing/* ?
3 years, 11 months ago (2017-01-18 08:33:49 UTC) #41
Toon Verwaest
Can you add a test for spread+eval? That still doesn't seem to work right? (function(){ ...
3 years, 11 months ago (2017-01-18 12:09:54 UTC) #44
Toon Verwaest
Other than that, the parser changes lgtm. We can also just consider this an existing ...
3 years, 11 months ago (2017-01-18 12:43:12 UTC) #47
petermarshall
On 2017/01/18 at 12:43:12, verwaest wrote: > Other than that, the parser changes lgtm. We ...
3 years, 11 months ago (2017-01-18 12:54:30 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2629363002/170001
3 years, 11 months ago (2017-01-18 12:57:18 UTC) #51
commit-bot: I haz the power
Committed patchset #10 (id:170001) as https://chromium.googlesource.com/v8/v8/+/4bae43471d5685e34d8bd74458889b83e60235a0
3 years, 11 months ago (2017-01-18 12:59:07 UTC) #54
petermarshall
A revert of this CL (patchset #10 id:170001) has been created in https://codereview.chromium.org/2642843002/ by petermarshall@chromium.org. ...
3 years, 11 months ago (2017-01-18 17:03:34 UTC) #55
petermarshall
Benedikt, could you PTAL before I re-land? Change is in parser.cc where we just desugar ...
3 years, 11 months ago (2017-01-20 14:12:14 UTC) #70
Benedikt Meurer
LGTM, thanks.
3 years, 11 months ago (2017-01-20 18:10:12 UTC) #71
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2629363002/230001
3 years, 11 months ago (2017-01-23 08:12:46 UTC) #74
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2629363002/250001
3 years, 11 months ago (2017-01-23 08:33:35 UTC) #77
commit-bot: I haz the power
3 years, 11 months ago (2017-01-23 09:03:42 UTC) #80
Message was sent while issue was closed.
Committed patchset #14 (id:250001) as
https://chromium.googlesource.com/v8/v8/+/96220730e688f01909ad61f437d1a8b88a5...

Powered by Google App Engine
This is Rietveld 408576698