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

Issue 2571903004: [turbofan] Introduce graph assembler to build effect-control-linearizer sub-graphs. (Closed)

Created:
4 years ago by Jarin
Modified:
3 years, 11 months ago
Reviewers:
Igor Sheludko
CC:
v8-reviews_googlegroups.com, mvstanton, Benedikt Meurer
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] Introduce graph assembler to build effect-control-linearizer sub-graphs. Review-Url: https://codereview.chromium.org/2571903004 Cr-Commit-Position: refs/heads/master@{#42013} Committed: https://chromium.googlesource.com/v8/v8/+/587fda09b72b1b73573860be41978bd5ebdfff2c

Patch Set 1 #

Patch Set 2 : WIP #

Patch Set 3 : Initial templated version #

Patch Set 4 : Lowering #2 #

Patch Set 5 : More lowering using graph assembler. #

Patch Set 6 : Fix to avoid 0-length arrays #

Patch Set 7 : Replace representation list with phi count #

Patch Set 8 : Almost done, except LowerCheckMaps #

Patch Set 9 : All cases now ported to graph assembler. #

Patch Set 10 : Fix the optional lowering. #

Patch Set 11 : Rebase #

Patch Set 12 : Fixes #

Patch Set 13 : Get rid of FallthroughBind. #

Patch Set 14 : Fixes #

Total comments: 16

Patch Set 15 : Rebase #

Patch Set 16 : Address reviewer comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1946 lines, -2281 lines) Patch
M BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/effect-control-linearizer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +80 lines, -171 lines 0 comments Download
M src/compiler/effect-control-linearizer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 13 chunks +1139 lines, -2110 lines 0 comments Download
A src/compiler/graph-assembler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +426 lines, -0 lines 0 comments Download
A src/compiler/graph-assembler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +297 lines, -0 lines 0 comments Download
M src/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 42 (36 generated)
Jarin
Could you take a look, please? Perhaps good start is to look at graph-assembler.h.
3 years, 12 months ago (2016-12-23 10:29:15 UTC) #28
Jarin
Some observations on the current interface. https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-assembler.h File src/compiler/graph-assembler.h (right): https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-assembler.h#newcode185 src/compiler/graph-assembler.h:185: static GraphAssemblerStaticLabel<MergeCount, sizeof...(Reps)> ...
3 years, 12 months ago (2016-12-27 13:51:06 UTC) #31
Igor Sheludko
lgtm. I think it's a good starting point that we can later improve. nits: https://codereview.chromium.org/2571903004/diff/260001/src/compiler/effect-control-linearizer.h ...
3 years, 11 months ago (2017-01-02 13:23:27 UTC) #32
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/2571903004/300001
3 years, 11 months ago (2017-01-02 15:26:49 UTC) #38
commit-bot: I haz the power
Committed patchset #16 (id:300001) as https://chromium.googlesource.com/v8/v8/+/587fda09b72b1b73573860be41978bd5ebdfff2c
3 years, 11 months ago (2017-01-02 15:51:02 UTC) #41
Jarin
3 years, 11 months ago (2017-01-03 09:27:55 UTC) #42
Message was sent while issue was closed.
Forgot to submit the reply.

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/effect-co...
File src/compiler/effect-control-linearizer.h (right):

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/effect-co...
src/compiler/effect-control-linearizer.h:123: Node* ChangeInt32ToSmi(Node*
value);
On 2017/01/02 13:23:26, Igor Sheludko wrote:
> I think these helper methods should live in the GraphAssembler.

Acknowledged.

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/effect-co...
src/compiler/effect-control-linearizer.h:129: Node* SmiShiftBitsConstant();
On 2017/01/02 13:23:26, Igor Sheludko wrote:
> Same here.

Acknowledged.

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-ass...
File src/compiler/graph-assembler.cc (right):

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-ass...
src/compiler/graph-assembler.cc:273: Node**
GraphAssemblerLabel::GetBindingsPtrFor(size_t phi_index) {
On 2017/01/02 13:23:27, Igor Sheludko wrote:
> Please add bounds checks here and in other getters.

Done.

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-ass...
File src/compiler/graph-assembler.h (right):

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-ass...
src/compiler/graph-assembler.h:98: bool IsBound() { return is_bound_; }
On 2017/01/02 13:23:27, Igor Sheludko wrote:
> Please make all getters const.

Done.

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-ass...
src/compiler/graph-assembler.h:107: Node** GetBindingsPtrFor(size_t phi_index) {
On 2017/01/02 13:23:27, Igor Sheludko wrote:
> Please add bounds checks here and in other getters.

Done.

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-ass...
src/compiler/graph-assembler.h:149: bool IsBound() { return is_bound_; }
On 2017/01/02 13:23:27, Igor Sheludko wrote:
> Same here.

Done.

https://codereview.chromium.org/2571903004/diff/260001/src/compiler/graph-ass...
src/compiler/graph-assembler.h:322: label->GetBindingsPtrFor(i)[merged_count] =
var_array[i + 1];
On 2017/01/02 13:23:27, Igor Sheludko wrote:
> I think it would be better to call here a setter that does bounds checks.

Done.

Powered by Google App Engine
This is Rietveld 408576698