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

Issue 2227493002: [turbofan] Add initial support for growing stores. (Closed)

Created:
4 years, 4 months ago by Benedikt Meurer
Modified:
4 years, 4 months ago
Reviewers:
Jarin
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] Add initial support for growing stores. Introduce a dedicated MaybeGrowFastElements simplified operator, which tries to grow a fast elements backing store for a given element that should be added to an array/object. Use that to lower a growing keyed store to a sequence of 1) check index is a valid array index, 2) check stored value, 3) maybe grow elements backing store (and deoptimize if it would normalize), and 4) store the actual element. The actual growing is done by two dedicated GrowFastDoubleElements and GrowFastSmiOrObjectElements builtins, which are very similar to the GrowArrayElementsStub that is used by Crankshaft. Drive-by-fix: Turn CopyFixedArray into CopyFastSmiOrObjectElements builtin, similar to the new growing builtins, so we don't need to inline the store+write barrier for the elements into all optimized code objects anymore. Also fix a bug in the OperationTyper for NumberSilenceNaN, which was triggered by this change. BUG=v8:5272 Committed: https://crrev.com/e6822a8338c70ab476e545da95d958c23ac366f9 Cr-Commit-Position: refs/heads/master@{#38418}

Patch Set 1 #

Total comments: 6

Patch Set 2 : REBASE #

Patch Set 3 : Add TODO. #

Patch Set 4 : Add comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+369 lines, -43 lines) Patch
M src/builtins/builtins.h View 1 chunk +6 lines, -2 lines 0 comments Download
M src/builtins/builtins-internal.cc View 3 chunks +59 lines, -6 lines 0 comments Download
M src/code-factory.h View 1 chunk +3 lines, -1 line 0 comments Download
M src/code-factory.cc View 1 chunk +15 lines, -3 lines 0 comments Download
M src/compiler/effect-control-linearizer.h View 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/effect-control-linearizer.cc View 3 chunks +115 lines, -8 lines 0 comments Download
M src/compiler/js-graph.h View 2 chunks +2 lines, -0 lines 0 comments Download
M src/compiler/js-graph.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M src/compiler/js-native-context-specialization.cc View 4 chunks +35 lines, -14 lines 0 comments Download
M src/compiler/load-elimination.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/load-elimination.cc View 3 chunks +38 lines, -2 lines 0 comments Download
M src/compiler/opcodes.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/operation-typer.cc View 1 2 1 chunk +4 lines, -1 line 0 comments Download
M src/compiler/pipeline.cc View 1 chunk +3 lines, -1 line 0 comments Download
M src/compiler/simplified-lowering.cc View 1 2 3 1 chunk +9 lines, -0 lines 0 comments Download
M src/compiler/simplified-operator.h View 1 2 chunks +19 lines, -0 lines 0 comments Download
M src/compiler/simplified-operator.cc View 1 2 chunks +35 lines, -0 lines 0 comments Download
M src/compiler/typer.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M src/compiler/verifier.cc View 1 chunk +7 lines, -0 lines 0 comments Download
M src/interface-descriptors.h View 3 chunks +6 lines, -5 lines 0 comments Download

Messages

Total messages: 16 (10 generated)
Benedikt Meurer
Hey Jaro, Here's the last missing store mode support. Please take a look. Thanks, Benedikt
4 years, 4 months ago (2016-08-08 05:18:38 UTC) #4
Jarin
lgtm. https://codereview.chromium.org/2227493002/diff/1/src/compiler/load-elimination.cc File src/compiler/load-elimination.cc (right): https://codereview.chromium.org/2227493002/diff/1/src/compiler/load-elimination.cc#newcode618 src/compiler/load-elimination.cc:618: state = state->KillField(object, 2, zone()); Should not the ...
4 years, 4 months ago (2016-08-08 08:03:48 UTC) #9
Benedikt Meurer
https://codereview.chromium.org/2227493002/diff/1/src/compiler/load-elimination.cc File src/compiler/load-elimination.cc (right): https://codereview.chromium.org/2227493002/diff/1/src/compiler/load-elimination.cc#newcode618 src/compiler/load-elimination.cc:618: state = state->KillField(object, 2, zone()); Acknowledged. On the TODO ...
4 years, 4 months ago (2016-08-08 08:12:56 UTC) #10
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/2227493002/60001
4 years, 4 months ago (2016-08-08 08:17:45 UTC) #13
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 4 months ago (2016-08-08 08:43:57 UTC) #14
commit-bot: I haz the power
4 years, 4 months ago (2016-08-08 08:44:35 UTC) #16
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/e6822a8338c70ab476e545da95d958c23ac366f9
Cr-Commit-Position: refs/heads/master@{#38418}

Powered by Google App Engine
This is Rietveld 408576698