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

Issue 19562003: Add support for IncrementCounter in Hydrogen. (Closed)

Created:
7 years, 5 months ago by Benedikt Meurer
Modified:
7 years, 4 months ago
CC:
v8-dev
Visibility:
Public.

Description

This adds generic support for ExternalReferences in Hydrogen (and Lithium), as required for AddIncrementCounter. R=danno@chromium.org, titzer@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=15936

Patch Set 1 #

Patch Set 2 : Using HConstant, HLoadKeyed, HAdd and HStoreKeyed. #

Total comments: 2

Patch Set 3 : Cleanups. #

Patch Set 4 : Bugfix in HConstant::CopyToRepresentation() #

Patch Set 5 : REBASE #

Patch Set 6 : REBASE #

Total comments: 2

Patch Set 7 : Add ExternalMemory portion #

Total comments: 17

Patch Set 8 : Various fixes to HLoad/StoreNamedField. Addressed comments. #

Patch Set 9 : Use HType::None() for HLoadExternalArrayPointer. #

Patch Set 10 : Remove invalid commit from CL #

Patch Set 11 : Code style #

Patch Set 12 : More code style #

Total comments: 8

Patch Set 13 : REBASE #

Patch Set 14 : REBASE #

Patch Set 15 : REBASE #

Patch Set 16 : REBASE #

Patch Set 17 : Addressed nits #

Patch Set 18 : Addressed nits #

Patch Set 19 : Addressed nits #

Patch Set 20 : Addressed nits #

Patch Set 21 : Addressed nits #

Patch Set 22 : Addressed nits #

Patch Set 23 : Addressed nits #

Patch Set 24 : Addressed nits #

Patch Set 25 : Next try #

Patch Set 26 : Maybe now? #

Patch Set 27 : And another try #

Unified diffs Side-by-side diffs Delta from patch set Stats (+347 lines, -49 lines) Patch
M src/arm/lithium-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +12 lines, -0 lines 0 comments Download
M src/arm/lithium-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 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 3 chunks +18 lines, -1 line 0 comments Download
M src/assembler.h View 1 2 3 chunks +11 lines, -1 line 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +13 lines, -0 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 6 7 8 9 10 11 12 20 chunks +55 lines, -11 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 2 3 4 5 6 7 8 9 10 11 12 10 chunks +66 lines, -30 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.h View 1 2 3 4 5 6 7 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 11 12 13 14 15 16 5 chunks +42 lines, -3 lines 0 comments Download
M src/ia32/lithium-ia32.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +12 lines, -0 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +13 lines, -1 line 0 comments Download
M src/mips/lithium-codegen-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +18 lines, -0 lines 0 comments Download
M src/mips/lithium-mips.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +12 lines, -0 lines 0 comments Download
M src/mips/lithium-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M src/x64/lithium-codegen-x64.h View 1 2 3 4 5 6 7 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 11 12 13 14 15 16 4 chunks +39 lines, -2 lines 0 comments Download
M src/x64/lithium-x64.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +12 lines, -0 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +15 lines, -0 lines 0 comments Download

Messages

Total messages: 25 (0 generated)
Benedikt Meurer
Hey Michael, This is the new HIncrementCounter instruction, which we'll need when translating the StringAddStub ...
7 years, 5 months ago (2013-07-19 12:59:18 UTC) #1
danno
Hmm. I am not fond of this approach, I really dislike adding an instruction for ...
7 years, 5 months ago (2013-07-19 13:20:35 UTC) #2
Benedikt Meurer
PTAL Now AddIncrementCounter is implemented using the suggested sequence of HConstant, HLoadKeyed, HAdd and HStoreKeyed. ...
7 years, 5 months ago (2013-07-22 13:10:37 UTC) #3
mvstanton
I've got a command HLinkObjectInList that I'll remove as soon as this CL lands, because ...
7 years, 5 months ago (2013-07-22 13:49:46 UTC) #4
Benedikt Meurer
One thing to note about the new patch: I'm not sure if it's a great ...
7 years, 5 months ago (2013-07-22 13:57:01 UTC) #5
danno
As far as the general approach, I feel very strongly that introducing a "high-level" incrementalstats ...
7 years, 5 months ago (2013-07-22 14:19:55 UTC) #6
Benedikt Meurer
Yeah, Michael already convinced me that it's better this way. https://codereview.chromium.org/19562003/diff/4001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/19562003/diff/4001/src/hydrogen-instructions.h#newcode3289 ...
7 years, 5 months ago (2013-07-23 07:00:47 UTC) #7
titzer
On 2013/07/23 07:00:47, Benedikt Meurer wrote: > Yeah, Michael already convinced me that it's better ...
7 years, 5 months ago (2013-07-23 07:18:07 UTC) #8
Benedikt Meurer
On 2013/07/23 07:18:07, titzer wrote: > I'm ok with this change as it is, but ...
7 years, 5 months ago (2013-07-25 11:31:45 UTC) #9
titzer
lgtm https://codereview.chromium.org/19562003/diff/39001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/19562003/diff/39001/src/hydrogen-instructions.h#newcode5570 src/hydrogen-instructions.h:5570: static HObjectAccess ForInteger32() { Would prefer this to ...
7 years, 5 months ago (2013-07-25 11:56:47 UTC) #10
danno
https://codereview.chromium.org/19562003/diff/39001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/19562003/diff/39001/src/hydrogen-instructions.h#newcode5570 src/hydrogen-instructions.h:5570: static HObjectAccess ForInteger32() { On 2013/07/25 11:56:47, titzer wrote: ...
7 years, 5 months ago (2013-07-25 12:05:08 UTC) #11
Benedikt Meurer
On 2013/07/25 12:05:08, danno wrote: > https://codereview.chromium.org/19562003/diff/39001/src/hydrogen-instructions.h#newcode5570 > src/hydrogen-instructions.h:5570: static HObjectAccess ForInteger32() { > On ...
7 years, 5 months ago (2013-07-25 12:41:41 UTC) #12
danno
Almost there... https://codereview.chromium.org/19562003/diff/62001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/19562003/diff/62001/src/hydrogen-instructions.cc#newcode3697 src/hydrogen-instructions.cc:3697: if (has_external_value_) return HType::None(); You should also ...
7 years, 5 months ago (2013-07-25 18:35:56 UTC) #13
Benedikt Meurer
On 2013/07/25 18:35:56, danno wrote: > Almost there... Hm, no. I just noticed that HLoadNamedField ...
7 years, 5 months ago (2013-07-25 18:54:39 UTC) #14
danno
On 2013/07/25 18:54:39, Benedikt Meurer wrote: > On 2013/07/25 18:35:56, danno wrote: > > Almost ...
7 years, 5 months ago (2013-07-25 19:03:51 UTC) #15
Benedikt Meurer
On 2013/07/25 19:03:51, danno wrote: > On 2013/07/25 18:54:39, Benedikt Meurer wrote: > > On ...
7 years, 5 months ago (2013-07-25 19:34:20 UTC) #16
Benedikt Meurer
PTAL https://codereview.chromium.org/19562003/diff/62001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/19562003/diff/62001/src/hydrogen-instructions.cc#newcode3697 src/hydrogen-instructions.cc:3697: if (has_external_value_) return HType::None(); On 2013/07/25 18:35:57, danno ...
7 years, 5 months ago (2013-07-25 21:09:11 UTC) #17
danno
https://codereview.chromium.org/19562003/diff/62001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/19562003/diff/62001/src/hydrogen-instructions.cc#newcode3697 src/hydrogen-instructions.cc:3697: if (has_external_value_) return HType::None(); On 2013/07/25 21:09:11, Benedikt Meurer ...
7 years, 5 months ago (2013-07-25 22:22:05 UTC) #18
Benedikt Meurer
On 2013/07/25 22:22:05, danno wrote: > https://codereview.chromium.org/19562003/diff/62001/src/hydrogen-instructions.cc > File src/hydrogen-instructions.cc (right): > > https://codereview.chromium.org/19562003/diff/62001/src/hydrogen-instructions.cc#newcode3697 > ...
7 years, 5 months ago (2013-07-26 05:56:49 UTC) #19
Benedikt Meurer
Cleaned up the code, should be ready now. PTAL
7 years, 5 months ago (2013-07-26 06:37:54 UTC) #20
danno
lgtm with comments https://codereview.chromium.org/19562003/diff/87001/src/ia32/lithium-codegen-ia32.cc File src/ia32/lithium-codegen-ia32.cc (right): https://codereview.chromium.org/19562003/diff/87001/src/ia32/lithium-codegen-ia32.cc#newcode3061 src/ia32/lithium-codegen-ia32.cc:3061: LConstantOperand::cast(instr->object()))) nit: funky indentatoin https://codereview.chromium.org/19562003/diff/87001/src/ia32/lithium-codegen-ia32.cc#newcode4353 src/ia32/lithium-codegen-ia32.cc:4353: ...
7 years, 4 months ago (2013-07-29 10:40:13 UTC) #21
Benedikt Meurer
REBASE
7 years, 4 months ago (2013-07-29 13:20:06 UTC) #22
Benedikt Meurer
REBASE
7 years, 4 months ago (2013-07-29 13:20:18 UTC) #23
Benedikt Meurer
Committed patchset #27 manually as r15936 (presubmit successful).
7 years, 4 months ago (2013-07-29 13:57:03 UTC) #24
Benedikt Meurer
7 years, 4 months ago (2013-07-29 13:57:51 UTC) #25
Message was sent while issue was closed.
https://codereview.chromium.org/19562003/diff/87001/src/ia32/lithium-codegen-...
File src/ia32/lithium-codegen-ia32.cc (right):

https://codereview.chromium.org/19562003/diff/87001/src/ia32/lithium-codegen-...
src/ia32/lithium-codegen-ia32.cc:3061: LConstantOperand::cast(instr->object())))
On 2013/07/29 10:40:14, danno wrote:
> nit: funky indentatoin

Done.

https://codereview.chromium.org/19562003/diff/87001/src/ia32/lithium-codegen-...
src/ia32/lithium-codegen-ia32.cc:4353: LConstantOperand::cast(instr->object())))
On 2013/07/29 10:40:14, danno wrote:
> nit: funky indentatoin

Sven suggested to keep it this way.

https://codereview.chromium.org/19562003/diff/87001/src/ia32/lithium-codegen-...
src/ia32/lithium-codegen-ia32.cc:4357:
LConstantOperand::cast(instr->value()))));
On 2013/07/29 10:40:14, danno wrote:
> nit: funky indentatoin

Done.

https://codereview.chromium.org/19562003/diff/87001/src/x64/lithium-codegen-x...
File src/x64/lithium-codegen-x64.cc (right):

https://codereview.chromium.org/19562003/diff/87001/src/x64/lithium-codegen-x...
src/x64/lithium-codegen-x64.cc:3949: LConstantOperand::cast(instr->object())));
On 2013/07/29 10:40:14, danno wrote:
> nit: funky indentatoin

Done.

Powered by Google App Engine
This is Rietveld 408576698