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

Issue 11817017: Additional work to get array literal allocation tracking working, even with --always-opt (Closed)

Created:
7 years, 11 months ago by mvstanton
Modified:
7 years, 11 months ago
CC:
v8-dev
Visibility:
Public.

Description

Additional work to get array literal allocation tracking working, even with --always-opt BUG= Committed: https://code.google.com/p/v8/source/detail?r=13406

Patch Set 1 #

Patch Set 2 : Backed out removal of transitioning key store stubs cleanly. #

Patch Set 3 : Presubmit cleanup #

Patch Set 4 : Added heuristic about maximum size of pre-transitioning for boilerplate #

Patch Set 5 : Code cleanup #

Total comments: 22

Patch Set 6 : Code review feedback #

Patch Set 7 : Removed MIPs changes, and found a bug. COPY_ON_WRITE shallow array stub didn't track allocation inf… #

Total comments: 17

Patch Set 8 : Response to Toon's review #

Patch Set 9 : Removed unnecessary class specifiers #

Total comments: 24

Patch Set 10 : Comment response #

Total comments: 12

Patch Set 11 : A few formatting fixes #

Patch Set 12 : Quick adjustment to bit fields #

Unified diffs Side-by-side diffs Delta from patch set Stats (+556 lines, -192 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 7 chunks +11 lines, -18 lines 0 comments Download
M src/arm/codegen-arm.cc View 1 2 3 4 5 6 7 8 9 6 chunks +15 lines, -4 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 2 chunks +12 lines, -12 lines 0 comments Download
M src/arm/ic-arm.cc View 1 2 3 4 5 6 7 8 9 5 chunks +14 lines, -5 lines 0 comments Download
M src/arm/lithium-codegen-arm.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -1 line 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 9 chunks +31 lines, -9 lines 0 comments Download
M src/arm/stub-cache-arm.cc View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -2 lines 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +16 lines, -5 lines 0 comments Download
M src/code-stubs.cc View 1 2 3 4 5 6 7 8 9 2 chunks +5 lines, -4 lines 0 comments Download
M src/codegen.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +11 lines, -3 lines 0 comments Download
M src/flag-definitions.h View 1 chunk +2 lines, -0 lines 0 comments Download
M src/heap.h View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -1 line 0 comments Download
M src/heap.cc View 1 2 3 4 5 6 7 8 9 4 chunks +27 lines, -3 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 3 chunks +16 lines, -4 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 6 7 8 9 5 chunks +17 lines, -7 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 6 chunks +11 lines, -18 lines 0 comments Download
M src/ia32/codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 6 chunks +15 lines, -4 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 2 chunks +10 lines, -11 lines 0 comments Download
M src/ia32/ic-ia32.cc View 1 2 3 4 5 6 7 8 9 5 chunks +14 lines, -5 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -1 line 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 9 chunks +31 lines, -9 lines 0 comments Download
M src/ia32/stub-cache-ia32.cc View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -2 lines 0 comments Download
M src/ic.cc View 1 2 3 4 5 6 7 8 9 1 chunk +6 lines, -0 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 3 chunks +8 lines, -4 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +54 lines, -9 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 1 chunk +5 lines, -0 lines 0 comments Download
M src/runtime.cc View 1 2 3 4 5 6 7 8 9 1 chunk +5 lines, -1 line 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 7 chunks +10 lines, -18 lines 0 comments Download
M src/x64/codegen-x64.cc View 1 2 3 4 5 6 7 8 9 6 chunks +15 lines, -4 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 2 chunks +10 lines, -11 lines 0 comments Download
M src/x64/ic-x64.cc View 1 2 3 4 5 6 7 8 9 5 chunks +14 lines, -5 lines 0 comments Download
M src/x64/lithium-codegen-x64.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -1 line 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 9 chunks +30 lines, -9 lines 0 comments Download
M src/x64/stub-cache-x64.cc View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -2 lines 0 comments Download
A test/mjsunit/allocation-site-info.js View 1 2 3 4 5 6 1 chunk +114 lines, -0 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
mvstanton
Here is follow up work for tracking allocation site info on literal arrays. There are ...
7 years, 11 months ago (2013-01-10 15:48:51 UTC) #1
mvstanton
Hi guys, Toon or Michael will do the review, thx!
7 years, 11 months ago (2013-01-10 17:02:41 UTC) #2
danno
Here's a first round. Sorry, couldn't resist... ;-) https://codereview.chromium.org/11817017/diff/6001/src/arm/codegen-arm.cc File src/arm/codegen-arm.cc (right): https://codereview.chromium.org/11817017/diff/6001/src/arm/codegen-arm.cc#newcode147 src/arm/codegen-arm.cc:147: MacroAssembler* ...
7 years, 11 months ago (2013-01-10 22:58:59 UTC) #3
mvstanton
Thanks for the feedback Danno, happy you couldn't resist a look :). Let me ask ...
7 years, 11 months ago (2013-01-11 13:43:01 UTC) #4
danno
a few nits, mostly pedantic. I'll let Toon finish this one. https://codereview.chromium.org/11817017/diff/18001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right): ...
7 years, 11 months ago (2013-01-11 16:14:40 UTC) #5
mvstanton
Toon did a review, I typed the comments. jeesh. https://codereview.chromium.org/11817017/diff/18001/src/code-stubs.cc File src/code-stubs.cc (right): https://codereview.chromium.org/11817017/diff/18001/src/code-stubs.cc#newcode599 src/code-stubs.cc:599: ...
7 years, 11 months ago (2013-01-11 16:56:06 UTC) #6
mvstanton
Hi Toon, thanks for the review Friday. I've responded. We imagined some functions that centralized ...
7 years, 11 months ago (2013-01-15 15:23:04 UTC) #7
Toon Verwaest
Some additional nits, mostly formatting. https://codereview.chromium.org/11817017/diff/30002/src/code-stubs.h File src/code-stubs.h (right): https://codereview.chromium.org/11817017/diff/30002/src/code-stubs.h#newcode433 src/code-stubs.h:433: static const int kFastCloneModeCount ...
7 years, 11 months ago (2013-01-16 10:53:41 UTC) #8
mvstanton
Thanks Toon, updated. You might want to check if the new asserts around code-stubs.h:453 and ...
7 years, 11 months ago (2013-01-16 13:01:56 UTC) #9
Toon Verwaest
LGTM with some last, mostly style-related, nits. https://codereview.chromium.org/11817017/diff/39004/src/code-stubs.h File src/code-stubs.h (right): https://codereview.chromium.org/11817017/diff/39004/src/code-stubs.h#newcode454 src/code-stubs.h:454: class LengthBits: ...
7 years, 11 months ago (2013-01-16 13:35:55 UTC) #10
mvstanton
7 years, 11 months ago (2013-01-16 14:21:00 UTC) #11
thx for the careful look. Formatting updated (hopefully I'll remember this stuff
better too :)).

https://codereview.chromium.org/11817017/diff/39004/src/code-stubs.h
File src/code-stubs.h (right):

https://codereview.chromium.org/11817017/diff/39004/src/code-stubs.h#newcode454
src/code-stubs.h:454: class LengthBits: public BitField<int, 5, 5> {};
On 2013/01/16 13:35:55, Toon Verwaest wrote:
> You only need 4 bits here.

Done.

https://codereview.chromium.org/11817017/diff/39004/src/code-stubs.h#newcode457
src/code-stubs.h:457: STATIC_ASSERT(kMaximumClonedLength <= 8);
On 2013/01/16 13:35:55, Toon Verwaest wrote:
> With 4 bits, this field supports < 16.

Done.

https://codereview.chromium.org/11817017/diff/39004/src/codegen.h
File src/codegen.h (right):

https://codereview.chromium.org/11817017/diff/39004/src/codegen.h#newcode99
src/codegen.h:99: // if |mode| is set to DONT_TRACK_ALLOCATION_SITE,
On 2013/01/16 13:35:55, Toon Verwaest wrote:
> Uppercase I of If.

Done.

https://codereview.chromium.org/11817017/diff/39004/src/codegen.h#newcode101
src/codegen.h:101: static void
GenerateMapChangeElementsTransition(MacroAssembler* masm,
On 2013/01/16 13:35:55, Toon Verwaest wrote:
> In function declarations, put the arguments right below each other:
> 
> static void GenerateMap...(MacroAssembler* masm,
>                            AllocationSiteMode mode,
>                            Label* allocation_site_info_found);

Done, and updated the two functions below to have the same style. However, I
have to indent the lines of the GenerateMapChangeElementsTransition arguments
because they are too long for the 80 column character limit.

https://codereview.chromium.org/11817017/diff/39004/src/ia32/lithium-codegen-...
File src/ia32/lithium-codegen-ia32.cc (right):

https://codereview.chromium.org/11817017/diff/39004/src/ia32/lithium-codegen-...
src/ia32/lithium-codegen-ia32.cc:5303: AllocationSiteMode allocation_site_mode =
instr->hydrogen()->
On 2013/01/16 13:35:55, Toon Verwaest wrote:
> AllocationSiteMode allocation_site_mode =
>     intr->hydrogen()->allocation_site_mode();

Done.

https://codereview.chromium.org/11817017/diff/39004/src/objects.cc
File src/objects.cc (right):

https://codereview.chromium.org/11817017/diff/39004/src/objects.cc#newcode7527
src/objects.cc:7527: && (IsFastObjectElementsKind(to) ||
IsFastDoubleElementsKind(to))) {
On 2013/01/16 13:35:55, Toon Verwaest wrote:
> && on previous line. I'd also break the line between
FLAG_track_allocation_sites
> and IsFastSmiElementsKind.

Done.

Powered by Google App Engine
This is Rietveld 408576698