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

Issue 61463005: Supported folding of constant size allocation followed by dynamic size allocation. (Closed)

Created:
7 years, 1 month ago by Igor Sheludko
Modified:
6 years, 6 months ago
CC:
v8-dev
Visibility:
Public.

Description

JSArray allocation is split into two separate allocations. Implemented folding of constant size allocation followed by dynamic size allocation.

Patch Set 1 #

Patch Set 2 : Allocation folding of const + dynamic sizes case. #

Total comments: 13

Patch Set 3 : Rebasing #

Patch Set 4 : Applied revew notes for src/hydrogen.cc/.h #

Patch Set 5 : Estimation for upper bound of dynamic allocation size is taken into account during folding. #

Patch Set 6 : Rebasing #

Total comments: 7

Patch Set 7 : Review notes applied. #

Patch Set 8 : Rebasing #

Patch Set 9 : Arrays allocations wiring implemented. #

Patch Set 10 : Some refactoring and code cleanup. #

Total comments: 4

Patch Set 11 : Rebasing on r18422 #

Patch Set 12 : Allocation wiring reverted #

Patch Set 13 : Explicit propagation of allocation size upper bound #

Total comments: 4

Patch Set 14 : Review notes applied #

Patch Set 15 : Rebasing on r18647 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+270 lines, -169 lines) Patch
M src/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 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 3 chunks +35 lines, -22 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 8 chunks +130 lines, -124 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +18 lines, -2 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +86 lines, -21 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
Igor Sheludko
7 years, 1 month ago (2013-11-13 21:27:08 UTC) #1
mvstanton
Just a few comments, looking good! --Michael https://codereview.chromium.org/61463005/diff/20001/src/hydrogen.cc File src/hydrogen.cc (left): https://codereview.chromium.org/61463005/diff/20001/src/hydrogen.cc#oldcode2482 src/hydrogen.cc:2482: new_object->MakeDoubleAligned(); Why ...
7 years, 1 month ago (2013-11-14 10:04:20 UTC) #2
Michael Starzinger
First round of comments. The main comment is about kMaxNonCodeHeapObjectSize. https://codereview.chromium.org/61463005/diff/20001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/61463005/diff/20001/src/hydrogen-instructions.cc#newcode3390 ...
7 years, 1 month ago (2013-11-14 12:50:13 UTC) #3
Hannes Payer (out of office)
https://codereview.chromium.org/61463005/diff/360001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/61463005/diff/360001/src/hydrogen-instructions.cc#newcode3464 src/hydrogen-instructions.cc:3464: if (current_size->IsInteger32Constant()) { The size check code with tracing ...
7 years, 1 month ago (2013-11-21 12:07:19 UTC) #4
Igor Sheludko
https://codereview.chromium.org/61463005/diff/20001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/61463005/diff/20001/src/hydrogen-instructions.cc#newcode3390 src/hydrogen-instructions.cc:3390: HInstruction* current_instr = HInstruction::cast(current_size); HPhi can't happen here, since ...
7 years ago (2013-11-27 12:52:00 UTC) #5
Hannes Payer (out of office)
https://codereview.chromium.org/61463005/diff/540001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/61463005/diff/540001/src/hydrogen-instructions.cc#newcode3445 src/hydrogen-instructions.cc:3445: !wired_allocate_->size()->IsInteger32Constant()) { Can we not bail out here and ...
7 years ago (2013-11-29 09:14:28 UTC) #6
Hannes Payer (out of office)
https://codereview.chromium.org/61463005/diff/540001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/61463005/diff/540001/src/hydrogen-instructions.cc#newcode3443 src/hydrogen-instructions.cc:3443: // because otherwise it will prevent write barrier optimization. ...
7 years ago (2013-12-04 08:27:21 UTC) #7
Igor Sheludko
PTAL at new version. https://codereview.chromium.org/61463005/diff/540001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/61463005/diff/540001/src/hydrogen-instructions.cc#newcode3443 src/hydrogen-instructions.cc:3443: // because otherwise it will ...
6 years, 11 months ago (2013-12-30 19:20:48 UTC) #8
Hannes Payer (out of office)
Looking good, let's do another performance run. LGTM https://codereview.chromium.org/61463005/diff/610001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/61463005/diff/610001/src/hydrogen-instructions.h#newcode5463 src/hydrogen-instructions.h:5463: void ...
6 years, 11 months ago (2014-01-16 12:58:39 UTC) #9
Igor Sheludko
6 years, 6 months ago (2014-06-23 17:37:32 UTC) #10
On 2014/01/16 12:58:39, Hannes Payer wrote:
> Looking good, let's do another performance run.
> LGTM
> 
>
https://codereview.chromium.org/61463005/diff/610001/src/hydrogen-instructions.h
> File src/hydrogen-instructions.h (right):
> 
>
https://codereview.chromium.org/61463005/diff/610001/src/hydrogen-instruction...
> src/hydrogen-instructions.h:5463: void set_size_upper_bound(HConstant* value)
{
> size_upper_bound_ = value; }
> I guess set_size_upper_bound should only be called once for an instruction.
Can
> we assert that?
> 
> https://codereview.chromium.org/61463005/diff/610001/src/hydrogen.cc
> File src/hydrogen.cc (right):
> 
>
https://codereview.chromium.org/61463005/diff/610001/src/hydrogen.cc#newcode2737
> src/hydrogen.cc:2737: HConstant* elms_size_upper_bound =
> capacity->IsInteger32Constant()
> please use a full name elms -> elements
> 
>
https://codereview.chromium.org/61463005/diff/610001/src/hydrogen.cc#newcode2766
> src/hydrogen.cc:2766: HValue* elms_size =
> builder()->BuildCalculateElementsSize(kind_, capacity);
> elms -> elements
> 
> https://codereview.chromium.org/61463005/diff/610001/src/hydrogen.h
> File src/hydrogen.h (right):
> 
>
https://codereview.chromium.org/61463005/diff/610001/src/hydrogen.h#newcode1693
> src/hydrogen.h:1693: // Array must have been allocated with enough room for
> Can you keep array lower case since it refers to the variable below

Remake of this CL landed as https://codereview.chromium.org/304153009/

Powered by Google App Engine
This is Rietveld 408576698