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

Issue 1775323002: [turbofan] Frame elision for code stubs (Closed)

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

Description

[turbofan] Frame elision for code stubs. Removed Frame::needs_frame and the function-wide logic using it in favor of FrameAccessState::has_frame, which can be set on a more granular level, and driving it block by block. BUG=v8:4533 LOG=N Committed: https://crrev.com/53d51c52f3754fe0e7decacba4277e58cf9fb5a4 Cr-Commit-Position: refs/heads/master@{#35139}

Patch Set 1 : #

Total comments: 17

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : #

Patch Set 10 : #

Patch Set 11 : #

Patch Set 12 : #

Patch Set 13 : #

Total comments: 6

Patch Set 14 : #

Patch Set 15 : #

Patch Set 16 : #

Total comments: 12

Patch Set 17 : #

Total comments: 8

Patch Set 18 : #

Patch Set 19 : #

Total comments: 3

Patch Set 20 : #

Patch Set 21 : #

Patch Set 22 : MOVED InitializeRootRegister call #

Total comments: 14

Patch Set 23 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+211 lines, -147 lines) Patch
M src/compiler/arm/code-generator-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 10 chunks +16 lines, -12 lines 0 comments Download
M src/compiler/arm64/code-generator-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 11 chunks +29 lines, -28 lines 0 comments Download
M src/compiler/code-generator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +6 lines, -1 line 0 comments Download
M src/compiler/code-generator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 6 chunks +27 lines, -16 lines 0 comments Download
M src/compiler/code-stub-assembler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +2 lines, -1 line 0 comments Download
M src/compiler/frame.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 chunks +15 lines, -22 lines 0 comments Download
M src/compiler/frame.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +7 lines, -5 lines 0 comments Download
M src/compiler/frame-elider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 chunks +13 lines, -2 lines 0 comments Download
M src/compiler/ia32/code-generator-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 6 chunks +12 lines, -12 lines 0 comments Download
M src/compiler/instruction.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +17 lines, -0 lines 0 comments Download
M src/compiler/instruction-selector.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +0 lines, -1 line 0 comments Download
M src/compiler/jump-threading.cc View 1 2 3 1 chunk +3 lines, -1 line 0 comments Download
M src/compiler/mips/code-generator-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 10 chunks +18 lines, -14 lines 0 comments Download
M src/compiler/mips64/code-generator-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 10 chunks +18 lines, -14 lines 0 comments Download
M src/compiler/pipeline.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 4 chunks +5 lines, -6 lines 0 comments Download
M src/compiler/x64/code-generator-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 6 chunks +12 lines, -12 lines 0 comments Download
M src/globals.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +11 lines, -0 lines 0 comments Download

Messages

Total messages: 48 (18 generated)
danno
Looks like you're making progress. I have some fundamental feedback about how the plumbing here ...
4 years, 9 months ago (2016-03-16 18:18:11 UTC) #4
Mircea Trofin
Thanks for the feedback, added some (and a question or 2) of my own. I'm ...
4 years, 9 months ago (2016-03-16 20:20:46 UTC) #5
Mircea Trofin
On 2016/03/16 20:20:46, Mircea Trofin wrote: > Thanks for the feedback, added some (and a ...
4 years, 9 months ago (2016-03-16 20:25:50 UTC) #6
danno
some more feedback and answers to your questions https://codereview.chromium.org/1775323002/diff/20001/src/compiler/code-generator.cc File src/compiler/code-generator.cc (right): https://codereview.chromium.org/1775323002/diff/20001/src/compiler/code-generator.cc#newcode97 src/compiler/code-generator.cc:97: masm()->InitializeRootRegister(); ...
4 years, 9 months ago (2016-03-16 21:20:57 UTC) #7
Mircea Trofin
https://codereview.chromium.org/1775323002/diff/20001/src/compiler/code-generator.cc File src/compiler/code-generator.cc (right): https://codereview.chromium.org/1775323002/diff/20001/src/compiler/code-generator.cc#newcode97 src/compiler/code-generator.cc:97: masm()->InitializeRootRegister(); On 2016/03/16 21:20:56, danno wrote: > On 2016/03/16 ...
4 years, 9 months ago (2016-03-16 21:51:00 UTC) #8
Mircea Trofin
This CL includes changes reviewed separately: 1818503002 [turbofan] PropagateMarks until we have no more change. ...
4 years, 9 months ago (2016-03-20 16:15:23 UTC) #11
danno
First round of feedback. https://codereview.chromium.org/1775323002/diff/270001/src/compiler/code-generator.cc File src/compiler/code-generator.cc (right): https://codereview.chromium.org/1775323002/diff/270001/src/compiler/code-generator.cc#newcode152 src/compiler/code-generator.cc:152: Instruction* instr = code()->InstructionAt(i); This ...
4 years, 9 months ago (2016-03-22 18:10:09 UTC) #12
Mircea Trofin
https://codereview.chromium.org/1775323002/diff/270001/src/compiler/code-generator.cc File src/compiler/code-generator.cc (right): https://codereview.chromium.org/1775323002/diff/270001/src/compiler/code-generator.cc#newcode159 src/compiler/code-generator.cc:159: AssembleDeconstructFrameIfNeeded(); On 2016/03/22 18:10:09, danno wrote: > And directly ...
4 years, 9 months ago (2016-03-22 19:04:09 UTC) #13
danno
Unless I'm missing something, this isn't a problem that you can encounter in practice because ...
4 years, 9 months ago (2016-03-23 07:41:01 UTC) #15
Mircea Trofin
On 2016/03/23 07:41:01, danno wrote: > Unless I'm missing something, this isn't a problem that ...
4 years, 9 months ago (2016-03-23 07:47:22 UTC) #16
Mircea Trofin
On 2016/03/23 07:47:22, Mircea Trofin wrote: > On 2016/03/23 07:41:01, danno wrote: > > Unless ...
4 years, 9 months ago (2016-03-23 16:18:51 UTC) #17
Mircea Trofin
4 years, 9 months ago (2016-03-24 04:50:30 UTC) #22
danno
https://codereview.chromium.org/1775323002/diff/410001/src/compiler/arm64/code-generator-arm64.cc File src/compiler/arm64/code-generator-arm64.cc (right): https://codereview.chromium.org/1775323002/diff/410001/src/compiler/arm64/code-generator-arm64.cc#newcode1478 src/compiler/arm64/code-generator-arm64.cc:1478: void CodeGenerator::SetupStackPointer() { If wonder if this should be ...
4 years, 9 months ago (2016-03-24 12:53:06 UTC) #23
Mircea Trofin
https://codereview.chromium.org/1775323002/diff/410001/src/compiler/arm64/code-generator-arm64.cc File src/compiler/arm64/code-generator-arm64.cc (right): https://codereview.chromium.org/1775323002/diff/410001/src/compiler/arm64/code-generator-arm64.cc#newcode1478 src/compiler/arm64/code-generator-arm64.cc:1478: void CodeGenerator::SetupStackPointer() { On 2016/03/24 12:53:05, danno wrote: > ...
4 years, 9 months ago (2016-03-24 17:46:12 UTC) #26
Benedikt Meurer
First round of comments. Looking good on first sight. https://codereview.chromium.org/1775323002/diff/470001/src/compiler/arm/code-generator-arm.cc File src/compiler/arm/code-generator-arm.cc (left): https://codereview.chromium.org/1775323002/diff/470001/src/compiler/arm/code-generator-arm.cc#oldcode1352 src/compiler/arm/code-generator-arm.cc:1352: ...
4 years, 9 months ago (2016-03-24 19:04:05 UTC) #27
Mircea Trofin
https://codereview.chromium.org/1775323002/diff/470001/src/compiler/arm/code-generator-arm.cc File src/compiler/arm/code-generator-arm.cc (left): https://codereview.chromium.org/1775323002/diff/470001/src/compiler/arm/code-generator-arm.cc#oldcode1352 src/compiler/arm/code-generator-arm.cc:1352: // Canonicalize JSFunction return sites for now. On 2016/03/24 ...
4 years, 9 months ago (2016-03-24 19:58:07 UTC) #28
Mircea Trofin
On 2016/03/24 19:58:07, Mircea Trofin wrote: > https://codereview.chromium.org/1775323002/diff/470001/src/compiler/arm/code-generator-arm.cc > File src/compiler/arm/code-generator-arm.cc (left): > > https://codereview.chromium.org/1775323002/diff/470001/src/compiler/arm/code-generator-arm.cc#oldcode1352 ...
4 years, 8 months ago (2016-03-29 14:26:55 UTC) #30
danno
Getting very close. If think if you address my comments, you'll be good to go ...
4 years, 8 months ago (2016-03-29 15:04:28 UTC) #31
Benedikt Meurer
Getting there. https://codereview.chromium.org/1775323002/diff/580001/src/compiler/code-generator.cc File src/compiler/code-generator.cc (right): https://codereview.chromium.org/1775323002/diff/580001/src/compiler/code-generator.cc#newcode149 src/compiler/code-generator.cc:149: AssemblePrologue(); Maybe we should rename AssemblePrologue to ...
4 years, 8 months ago (2016-03-30 04:00:25 UTC) #34
Mircea Trofin
https://codereview.chromium.org/1775323002/diff/510001/src/compiler/code-generator.cc File src/compiler/code-generator.cc (right): https://codereview.chromium.org/1775323002/diff/510001/src/compiler/code-generator.cc#newcode156 src/compiler/code-generator.cc:156: if (block->must_deconstruct_frame() && On 2016/03/29 15:04:28, danno wrote: > ...
4 years, 8 months ago (2016-03-30 04:13:27 UTC) #35
Benedikt Meurer
https://codereview.chromium.org/1775323002/diff/580001/src/compiler/code-generator.cc File src/compiler/code-generator.cc (right): https://codereview.chromium.org/1775323002/diff/580001/src/compiler/code-generator.cc#newcode149 src/compiler/code-generator.cc:149: AssemblePrologue(); On 2016/03/30 04:13:27, Mircea Trofin wrote: > On ...
4 years, 8 months ago (2016-03-30 04:34:08 UTC) #36
Benedikt Meurer
As discussed offline, for now just move the initialization of the root register to avoid ...
4 years, 8 months ago (2016-03-30 04:57:30 UTC) #37
Mircea Trofin
https://codereview.chromium.org/1775323002/diff/580001/src/compiler/code-generator.cc File src/compiler/code-generator.cc (right): https://codereview.chromium.org/1775323002/diff/580001/src/compiler/code-generator.cc#newcode153 src/compiler/code-generator.cc:153: Instruction* instr = code()->InstructionAt(i); On 2016/03/30 04:34:08, Benedikt Meurer ...
4 years, 8 months ago (2016-03-30 05:58:20 UTC) #38
danno
nice. lgtm.
4 years, 8 months ago (2016-03-30 10:49:19 UTC) #39
Benedikt Meurer
LGTM.
4 years, 8 months ago (2016-03-30 10:50:24 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1775323002/600001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1775323002/600001
4 years, 8 months ago (2016-03-30 14:06:06 UTC) #42
commit-bot: I haz the power
Committed patchset #23 (id:600001)
4 years, 8 months ago (2016-03-30 14:08:09 UTC) #44
commit-bot: I haz the power
Patchset 23 (id:??) landed as https://crrev.com/53d51c52f3754fe0e7decacba4277e58cf9fb5a4 Cr-Commit-Position: refs/heads/master@{#35139}
4 years, 8 months ago (2016-03-30 14:08:37 UTC) #46
Benedikt Meurer
Frame elision works great, TurboFan code stubs like BitwiseOrStub, ToLengthStub and friends are close to ...
4 years, 8 months ago (2016-03-31 06:48:36 UTC) #47
Mircea Trofin
4 years, 8 months ago (2016-03-31 07:03:14 UTC) #48
Message was sent while issue was closed.
On 2016/03/31 06:48:36, Benedikt Meurer (OOO) wrote:
> Frame elision works great, TurboFan code stubs like BitwiseOrStub,
ToLengthStub
> and friends are close to perfect for the common case now. Thanks!

Glad to hear!

What is left to make them perfect?

Powered by Google App Engine
This is Rietveld 408576698