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

Issue 1124443004: New hydrogen instruction to reduce cost of growing an array on keyed stores. (Closed)

Created:
5 years, 7 months ago by mvstanton
Modified:
5 years, 7 months ago
Reviewers:
Benedikt Meurer
CC:
v8-dev, v8-mips-ports_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

New hydrogen instruction to reduce cost of growing an array on keyed stores. HMaybeGrowElements moves the situation where you actually have to grow into deferred code. This means crankshaft doesn't have to spill registers just to make the bounds comparison to see if it'll need to grow or not. It makes the growing case a bit more expensive, but reduces the cost of the general case. BUG=chromium:484025 LOG=N Committed: https://crrev.com/3bce9c3afbe792167a54db49b16679289e0aea8f Cr-Commit-Position: refs/heads/master@{#28359}

Patch Set 1 #

Patch Set 2 : With x64 port. #

Patch Set 3 : Simplified arguments to stub. #

Patch Set 4 : Simplified lithium more (x64 only) #

Patch Set 5 : ia32 and x64 done. #

Total comments: 1

Patch Set 6 : Ports (without mips). #

Patch Set 7 : Make sure object/elements is always a reg or slot. #

Patch Set 8 : REBASE to tip of tree. #

Total comments: 2

Patch Set 9 : Including MIPS port. #

Patch Set 10 : Comment response. #

Patch Set 11 : REBASE. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+874 lines, -39 lines) Patch
M src/arm/interface-descriptors-arm.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/arm/lithium-arm.h View 1 2 3 4 5 6 7 2 chunks +23 lines, -0 lines 0 comments Download
M src/arm/lithium-arm.cc View 1 2 3 4 5 6 7 1 chunk +15 lines, -0 lines 0 comments Download
M src/arm/lithium-codegen-arm.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +94 lines, -0 lines 0 comments Download
M src/arm64/interface-descriptors-arm64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/arm64/lithium-arm64.h View 1 2 3 4 5 6 7 2 chunks +23 lines, -0 lines 0 comments Download
M src/arm64/lithium-arm64.cc View 1 2 3 4 5 6 7 1 chunk +15 lines, -0 lines 0 comments Download
M src/arm64/lithium-codegen-arm64.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/arm64/lithium-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +85 lines, -0 lines 0 comments Download
M src/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 1 chunk +3 lines, -2 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +10 lines, -25 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 6 7 3 chunks +59 lines, -0 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M src/ia32/interface-descriptors-ia32.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/ia32/lithium-codegen-ia32.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +89 lines, -0 lines 0 comments Download
M src/ia32/lithium-ia32.h View 1 2 3 4 5 6 7 2 chunks +23 lines, -0 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 2 3 4 5 6 7 1 chunk +15 lines, -0 lines 0 comments Download
M src/interface-descriptors.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -2 lines 0 comments Download
M src/interface-descriptors.cc View 1 2 1 chunk +1 line, -2 lines 0 comments Download
M src/mips/interface-descriptors-mips.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/mips/lithium-codegen-mips.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M src/mips/lithium-codegen-mips.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +95 lines, -0 lines 0 comments Download
M src/mips/lithium-mips.h View 1 2 3 4 5 6 7 8 2 chunks +23 lines, -0 lines 0 comments Download
M src/mips/lithium-mips.cc View 1 2 3 4 5 6 7 8 1 chunk +15 lines, -0 lines 0 comments Download
M src/mips64/interface-descriptors-mips64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/mips64/lithium-codegen-mips64.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M src/mips64/lithium-codegen-mips64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +95 lines, -0 lines 0 comments Download
M src/mips64/lithium-mips64.h View 1 2 3 4 5 6 7 8 2 chunks +23 lines, -0 lines 0 comments Download
M src/mips64/lithium-mips64.cc View 1 2 3 4 5 6 7 8 1 chunk +15 lines, -0 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M src/runtime/runtime-array.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M src/x64/interface-descriptors-x64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +0 lines, -1 line 0 comments Download
M src/x64/lithium-codegen-x64.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +103 lines, -0 lines 0 comments Download
M src/x64/lithium-x64.h View 1 2 3 4 5 6 7 2 chunks +23 lines, -0 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 2 3 4 5 6 7 1 chunk +15 lines, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 12 (3 generated)
mvstanton
Hi Benedikt, x64 and ia32 are done, I'll work on ports, thx for the look! ...
5 years, 7 months ago (2015-05-08 10:40:42 UTC) #2
Benedikt Meurer
x64 looking good, except for the LoadSmiConstant optimization, which might need some thought. https://codereview.chromium.org/1124443004/diff/80001/src/x64/macro-assembler-x64.cc File ...
5 years, 7 months ago (2015-05-08 10:46:31 UTC) #3
mvstanton
Hi Benedikt, yeah, I got rid of the xorl optimization now, leaving a comment. arm64 ...
5 years, 7 months ago (2015-05-08 13:03:26 UTC) #4
akos.palfi.imgtec
On 2015/05/08 13:03:26, mvstanton wrote: > Hi Benedikt, yeah, I got rid of the xorl ...
5 years, 7 months ago (2015-05-08 17:48:20 UTC) #5
Benedikt Meurer
LGTM with comment. https://codereview.chromium.org/1124443004/diff/140001/src/x64/lithium-codegen-x64.cc File src/x64/lithium-codegen-x64.cc (right): https://codereview.chromium.org/1124443004/diff/140001/src/x64/lithium-codegen-x64.cc#newcode4648 src/x64/lithium-codegen-x64.cc:4648: // Deoptimize if we got a ...
5 years, 7 months ago (2015-05-12 05:13:04 UTC) #6
mvstanton
Right on, thanks Benedikt! --Michael https://codereview.chromium.org/1124443004/diff/140001/src/x64/lithium-codegen-x64.cc File src/x64/lithium-codegen-x64.cc (right): https://codereview.chromium.org/1124443004/diff/140001/src/x64/lithium-codegen-x64.cc#newcode4648 src/x64/lithium-codegen-x64.cc:4648: // Deoptimize if we ...
5 years, 7 months ago (2015-05-12 07:59:03 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1124443004/200001
5 years, 7 months ago (2015-05-12 08:03:13 UTC) #10
commit-bot: I haz the power
Committed patchset #11 (id:200001)
5 years, 7 months ago (2015-05-12 08:47:23 UTC) #11
commit-bot: I haz the power
5 years, 7 months ago (2015-05-12 08:47:41 UTC) #12
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/3bce9c3afbe792167a54db49b16679289e0aea8f
Cr-Commit-Position: refs/heads/master@{#28359}

Powered by Google App Engine
This is Rietveld 408576698