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

Issue 77293003: Addressed perf regression in Browsermark2.0 array blur test (Closed)

Created:
7 years, 1 month ago by mvstanton
Modified:
7 years ago
Reviewers:
Michael Starzinger
CC:
v8-dev, Weiliang
Visibility:
Public.

Description

A performance regression in array literal creation was caused by refactoring that eliminated a special fast case for shallow arrays. At the same time the general case got a bit slower. This CL restores most of the performance without coding the special fast case. The virtual dispatching is unnecessary because we know what we want to do at compile time. A flag was added to Runtime::CreateArrayLiteral. The flags delivers information about shallowness but also whether or not allocation mementos should be created. This is useful for crankshafted code. BUG=v8:3008 LOG=N R=mstarzinger@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=18046

Patch Set 1 #

Patch Set 2 : Restore depth to materialized literal expression #

Patch Set 3 : REBASE #

Patch Set 4 : Removed some unnecessary changes. #

Total comments: 2

Patch Set 5 : Reduced 10% to 3% degrade, removed special case. #

Total comments: 6

Patch Set 6 : Replaced magic boolean with an enum #

Patch Set 7 : Platform ports #

Unified diffs Side-by-side diffs Delta from patch set Stats (+290 lines, -278 lines) Patch
M src/allocation-site-scopes.h View 1 2 3 4 5 4 chunks +22 lines, -14 lines 0 comments Download
M src/allocation-site-scopes.cc View 1 2 3 4 1 chunk +0 lines, -23 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 2 chunks +7 lines, -2 lines 0 comments Download
M src/ast.h View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 3 chunks +4 lines, -4 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 6 chunks +10 lines, -5 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 2 chunks +6 lines, -1 line 0 comments Download
M src/objects.h View 1 2 3 4 5 2 chunks +10 lines, -5 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 2 chunks +171 lines, -208 lines 0 comments Download
M src/runtime.h View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M src/runtime.cc View 1 2 3 4 5 1 chunk +37 lines, -9 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 4 5 6 2 chunks +6 lines, -1 line 0 comments Download
M test/mjsunit/array-literal-feedback.js View 1 1 chunk +6 lines, -2 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
mvstanton
Hi Michael, Can you have a look? Unfortunately I had to undo much of the ...
7 years, 1 month ago (2013-11-20 14:33:00 UTC) #1
Michael Starzinger
One comment to address. I am fine with this fix (although I don't like it ...
7 years, 1 month ago (2013-11-20 21:26:19 UTC) #2
mvstanton
Hi Michael, Okay I had another run at it, and was able to get to ...
7 years, 1 month ago (2013-11-22 14:42:00 UTC) #3
Michael Starzinger
LGTM. I give up! https://codereview.chromium.org/77293003/diff/130001/src/allocation-site-scopes.h File src/allocation-site-scopes.h (right): https://codereview.chromium.org/77293003/diff/130001/src/allocation-site-scopes.h#newcode64 src/allocation-site-scopes.h:64: current_ = Handle<AllocationSite>(*top_, isolate()); nit: ...
7 years, 1 month ago (2013-11-22 20:07:16 UTC) #4
mvstanton
Thanks for the help and impetus to try harder :) --Michael https://codereview.chromium.org/77293003/diff/130001/src/allocation-site-scopes.h File src/allocation-site-scopes.h (right): ...
7 years ago (2013-11-25 11:51:50 UTC) #5
mvstanton
7 years ago (2013-11-25 12:41:42 UTC) #6
Message was sent while issue was closed.
Committed patchset #7 manually as r18046 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698