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

Issue 12221064: Implement many KeyedStoreStubs using Crankshaft (Closed)

Created:
7 years, 10 months ago by danno
Modified:
7 years, 9 months ago
CC:
v8-dev
Visibility:
Public.

Description

Implement many KeyedStoreStubs using Crankshaft - Addition of a compiled hydrogen stub for KeyedStores. - Inlining of "grow" stubs into OPTIMIZED_FUNCTIONs - Addition of new "ignore OOB" ic stub that silently swallows out-of-bounds stores to external typed arrays. - Addition of new "copy-on-write" ic stub that inlines allocation and copying operations for cow array - New stub are generated with Crankshaft, so they are automatically inlined into OPTIMIZED_FUNCTIONs Committed: http://code.google.com/p/v8/source/detail?r=14001

Patch Set 1 #

Patch Set 2 : Fix stuff #

Patch Set 3 : Fix ARM deoptimization #

Patch Set 4 : Fix x64 #

Patch Set 5 : Implement transition stubs #

Patch Set 6 : Fix bugs #

Patch Set 7 : Latest version #

Patch Set 8 : Pass all tests #

Patch Set 9 : Silently swallow OOB typed array stores #

Patch Set 10 : Tweaks #

Patch Set 11 : Add new constants #

Patch Set 12 : Fix bugs in stub inlining #

Patch Set 13 : Polish #

Patch Set 14 : Merge with ToT #

Patch Set 15 : Fix lr handling on ARM #

Patch Set 16 : Rebase #

Total comments: 51

Patch Set 17 : Review feedback #

Total comments: 4

Patch Set 18 : Merge with ToT #

Patch Set 19 : Add runtime flag and address review feedback #

Total comments: 6

Patch Set 20 : Final review feedback #

Unified diffs Side-by-side diffs Delta from patch set Stats (+660 lines, -156 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +11 lines, -0 lines 0 comments Download
M src/arm/lithium-codegen-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +4 lines, -0 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 7 chunks +7 lines, -7 lines 0 comments Download
M src/ast.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 7 chunks +20 lines, -3 lines 0 comments Download
M src/ast.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 3 chunks +5 lines, -1 line 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +41 lines, -0 lines 0 comments Download
M src/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 5 chunks +32 lines, -44 lines 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -0 lines 0 comments Download
M src/heap.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -0 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 8 chunks +54 lines, -11 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 24 chunks +370 lines, -56 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +11 lines, -0 lines 0 comments Download
M src/ic.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +4 lines, -2 lines 0 comments Download
M src/ic.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 10 chunks +44 lines, -11 lines 0 comments Download
M src/runtime.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -2 lines 0 comments Download
M src/stub-cache.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 4 chunks +32 lines, -10 lines 0 comments Download
M src/type-info.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +6 lines, -6 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +11 lines, -0 lines 0 comments Download
M test/mjsunit/elements-kind.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +4 lines, -3 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
danno
PTAL
7 years, 9 months ago (2013-03-07 11:19:49 UTC) #1
Jakob Kummerow
https://codereview.chromium.org/12221064/diff/49001/src/code-stubs-hydrogen.cc File src/code-stubs-hydrogen.cc (right): https://codereview.chromium.org/12221064/diff/49001/src/code-stubs-hydrogen.cc#newcode281 src/code-stubs-hydrogen.cc:281: Isolate* isolate = graph()->isolate(); not necessary, can use [this->]isolate() ...
7 years, 9 months ago (2013-03-11 16:36:07 UTC) #2
danno
PTAL. Patch set 17 is feedback delta, patch set 18 is the result merged with ...
7 years, 9 months ago (2013-03-13 15:36:26 UTC) #3
Jakob Kummerow
LGTM with nits. https://codereview.chromium.org/12221064/diff/68001/src/hydrogen.cc File src/hydrogen.cc (right): https://codereview.chromium.org/12221064/diff/68001/src/hydrogen.cc#newcode1199 src/hydrogen.cc:1199: val->type().IsTagged() && !val->type().IsSmi()) { I meant ...
7 years, 9 months ago (2013-03-14 15:00:20 UTC) #4
danno
Addressed feedback. https://codereview.chromium.org/12221064/diff/68001/src/hydrogen.cc File src/hydrogen.cc (right): https://codereview.chromium.org/12221064/diff/68001/src/hydrogen.cc#newcode1199 src/hydrogen.cc:1199: val->type().IsTagged() && !val->type().IsSmi()) { On 2013/03/14 15:00:20, ...
7 years, 9 months ago (2013-03-20 10:04:34 UTC) #5
Hannes Payer (out of office)
LGTM with a few nits. As discussed offline, the test case does not work right ...
7 years, 9 months ago (2013-03-20 10:22:35 UTC) #6
danno
Committed patchset #20 manually as r14001 (presubmit successful).
7 years, 9 months ago (2013-03-20 10:37:33 UTC) #7
danno
7 years, 9 months ago (2013-03-20 11:44:10 UTC) #8
Message was sent while issue was closed.
Addressed feedback and landed.

https://codereview.chromium.org/12221064/diff/85002/src/arm/stub-cache-arm.cc
File src/arm/stub-cache-arm.cc (right):

https://codereview.chromium.org/12221064/diff/85002/src/arm/stub-cache-arm.cc...
src/arm/stub-cache-arm.cc:2995: __ DispatchMap(r2, r3, receiver_map, stub,
DO_SMI_CHECK);
On 2013/03/20 10:22:35, Hannes Payer wrote:
> Can you declare Handle<Code> stube before the if/else statement and move __
> DispatchMap(r2, r3, receiver_map, stub, DO_SMI_CHECK); below the if/else
> statement since DispatchMap is duplicated? This should also apply to
> stub-cache-ia32.cc and to stub-cache-x64.cc

Done.

https://codereview.chromium.org/12221064/diff/85002/src/ic.cc
File src/ic.cc (right):

https://codereview.chromium.org/12221064/diff/85002/src/ic.cc#newcode1327
src/ic.cc:1327: 
On 2013/03/20 10:22:35, Hannes Payer wrote:
> Can you bring back the newline?

Done.

https://codereview.chromium.org/12221064/diff/85002/src/ic.cc#newcode1652
src/ic.cc:1652: if ((store_mode == STORE_NO_TRANSITION_HANDLE_COW ||
On 2013/03/20 10:22:35, Hannes Payer wrote:
> This code should be executed if FLAG_compiled_keyed_stores is false.

Done.

Powered by Google App Engine
This is Rietveld 408576698