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

Issue 19492007: Generate KeyedLoadDictionaryElementStub with Hydrogen (Closed)

Created:
7 years, 5 months ago by danno
Modified:
7 years, 1 month ago
CC:
v8-dev, Jakob Kummerow
Visibility:
Public.

Description

Generate KeyedLoadDictionaryElementStub with Hydrogen R=mvstanton@chromium.org Committed: http://code.google.com/p/v8/source/detail?r=17804

Patch Set 1 #

Patch Set 2 : Latest version #

Patch Set 3 : Rebase on r15912 #

Patch Set 4 : Trim contexts #

Patch Set 5 : Nits #

Patch Set 6 : Rebase on r15954 #

Patch Set 7 : Port to ToT #

Patch Set 8 : Tweaks #

Patch Set 9 : Disable flag by default #

Patch Set 10 : Twekas #

Patch Set 11 : Unify probe constant #

Patch Set 12 : Rebase to ToT #

Patch Set 13 : Add V8_OVERRIDE #

Total comments: 16

Patch Set 14 : Address review feedback #

Patch Set 15 : Better formatting #

Unified diffs Side-by-side diffs Delta from patch set Stats (+347 lines, -14 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +11 lines, -0 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -3 lines 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +20 lines, -2 lines 0 comments Download
M src/code-stubs.cc 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/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +135 lines, -0 lines 0 comments Download
M src/codegen.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -0 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +12 lines, -0 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +132 lines, -0 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 1 chunk +11 lines, -0 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -3 lines 0 comments Download
M src/stub-cache.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -2 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 1 chunk +11 lines, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -3 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
danno
7 years, 1 month ago (2013-10-30 21:48:00 UTC) #1
mvstanton
Hi Danno, looks good. I have some nits, when those are addressed then... lgtm. https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen.cc ...
7 years, 1 month ago (2013-11-04 15:28:24 UTC) #2
Jakob Kummerow
LGTM with a few more nits. https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen.cc File src/code-stubs-hydrogen.cc (right): https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen.cc#newcode1270 src/code-stubs-hydrogen.cc:1270: explicit CodeStubGraphBuilder(Isolate* isolate, ...
7 years, 1 month ago (2013-11-06 10:48:11 UTC) #3
danno
Committed patchset #15 manually as r17804 (presubmit successful).
7 years, 1 month ago (2013-11-15 17:53:48 UTC) #4
danno
7 years, 1 month ago (2013-11-15 17:54:09 UTC) #5
Message was sent while issue was closed.
Feedback addressed, landing

https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen.cc
File src/code-stubs-hydrogen.cc (right):

https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen....
src/code-stubs-hydrogen.cc:1270: explicit CodeStubGraphBuilder(Isolate* isolate,
On 2013/11/06 10:48:12, Jakob wrote:
> nit: no "explicit" necessary

Done.

https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen....
src/code-stubs-hydrogen.cc:1289: HValue*
CodeStubGraphBuilder<KeyedLoadDictionaryElementStub>::
On 2013/11/06 10:48:12, Jakob wrote:
> nit: I'd break after "HValue*" instead of after "::", but I leave that up to
> you.

Done.

https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen....
src/code-stubs-hydrogen.cc:1302: ? hash
On 2013/11/06 10:48:12, Jakob wrote:
> nit: 4 space indent

Done.

https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen....
src/code-stubs-hydrogen.cc:1323: current_probe + 1);
On 2013/11/04 15:28:24, mvstanton wrote:
> The recursive call is interesting here, but the base case is clear:
> current_probe == kNumberDictionaryProbes, then deopt if that point is reached.
> nice!

Done.

https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen....
src/code-stubs-hydrogen.cc:1326: result = graph()->GetConstantUndefined();
On 2013/11/06 10:48:12, Jakob wrote:
> As discussed, the automatic environment padding handles this, but I'd weakly
> prefer Push()ing some value (undefined, 0, take your pick) explicitly.

Done.

https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen....
src/code-stubs-hydrogen.cc:1357: details_compare.End();
On 2013/11/04 15:28:24, mvstanton wrote:
> nit: I would engage in the { } indentation style here like BinaryOpStub and
> FastNewClosureStub because it would be easier to parse the control flow.

Done.

https://codereview.chromium.org/19492007/diff/160001/src/code-stubs-hydrogen....
src/code-stubs-hydrogen.cc:1370: USE(stub);
On 2013/11/04 15:28:24, mvstanton wrote:
> What are the USE statements for, can they be removed?

Done.

https://codereview.chromium.org/19492007/diff/160001/src/hydrogen.cc
File src/hydrogen.cc (right):

https://codereview.chromium.org/19492007/diff/160001/src/hydrogen.cc#newcode1918
src/hydrogen.cc:1918: HValue* HGraphBuilder::BuildElementIndexHash(HValue*
index) {
On 2013/11/04 15:28:24, mvstanton wrote:
> Could you update the comment in macro-assembler-X.cc where it sez:
> 
> // Compute the hash code from the untagged key.  This must be kept in sync
> // with ComputeIntegerHash in utils.h.
> 
> Add this location as another place to be kept in sync.

Done.

Powered by Google App Engine
This is Rietveld 408576698