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

Issue 132963012: Pretenure call new support. (Closed)

Created:
6 years, 10 months ago by mvstanton
Modified:
6 years, 9 months ago
CC:
v8-dev
Visibility:
Public.

Description

Pretenure call new support. When FLAG_pretenure_call_new is on, we emit mementos on new object creation in full code, and consume the feedback in crankshaft. A key difference in the generated code for stubs is the allocation of an additional type vector slot for the CallNew AST node, which simplifies the CallConstructStub and CallFunctionStub considerably. Some performance tuning still needs to be addressed, therefore the flag is off at this moment, though fully functional. The goal is to remove the flag as soon as possible, which allows much code deletion (yay). R=hpayer@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=20076

Patch Set 1 : Patch #

Patch Set 2 : REBASE. #

Total comments: 12

Patch Set 3 : REBASE #

Patch Set 4 : Comment response. #

Total comments: 30

Patch Set 5 : REBASE. #

Patch Set 6 : 2nd round of comment response. #

Patch Set 7 : Raised pretenure ratio from .60 to .85 #

Patch Set 8 : REBASE. #

Patch Set 9 : Conditionalized pretenuring behind the flag. #

Patch Set 10 : Complete CL. #

Patch Set 11 : REBASE. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+765 lines, -260 lines) Patch
M src/a64/builtins-a64.cc View 1 2 3 4 5 6 7 8 9 7 chunks +66 lines, -9 lines 0 comments Download
M src/a64/code-stubs-a64.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +55 lines, -40 lines 0 comments Download
M src/a64/full-codegen-a64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/arm/builtins-arm.cc View 1 2 3 4 5 6 7 8 9 10 7 chunks +81 lines, -10 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +53 lines, -40 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -0 lines 0 comments Download
M src/ast.h View 1 2 3 4 5 6 7 8 2 chunks +8 lines, -2 lines 0 comments Download
M src/ast.cc View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -1 line 0 comments Download
M src/factory.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M src/factory.cc View 1 2 3 4 5 6 7 8 9 1 chunk +11 lines, -0 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 1 chunk +18 lines, -5 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 1 2 3 4 5 6 7 8 5 chunks +76 lines, -10 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 3 chunks +62 lines, -47 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 1 chunk +7 lines, -0 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -3 lines 0 comments Download
M src/runtime.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M src/runtime.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +37 lines, -7 lines 0 comments Download
M src/type-info.cc View 1 2 3 4 5 6 7 8 2 chunks +15 lines, -9 lines 0 comments Download
M src/x64/builtins-x64.cc View 1 2 3 4 5 6 7 8 9 10 7 chunks +75 lines, -10 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +62 lines, -49 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -0 lines 0 comments Download
M test/cctest/test-heap.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +39 lines, -0 lines 0 comments Download
M test/cctest/test-mementos.cc View 1 2 3 4 5 6 7 1 chunk +44 lines, -0 lines 0 comments Download
M test/mjsunit/allocation-site-info.js View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -5 lines 0 comments Download
M test/mjsunit/array-constructor-feedback.js View 1 2 3 4 5 6 7 8 3 chunks +16 lines, -13 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
mvstanton
Hi Hannes, here is the pretenure call new support we've been discussing. Now we create ...
6 years, 10 months ago (2014-02-11 09:16:19 UTC) #1
Hannes Payer (out of office)
Super cool. Please add more tests (we could add them to cctest test-mementos.cc) and platform ...
6 years, 10 months ago (2014-02-11 15:51:22 UTC) #2
mvstanton
Hi Hannes, I added some tests (they were helpful already!), and comment response. The JSConstructStubHelper ...
6 years, 10 months ago (2014-02-17 15:53:08 UTC) #3
Hannes Payer (out of office)
Mainly minor comments, looking good. https://codereview.chromium.org/132963012/diff/210001/src/a64/builtins-a64.cc File src/a64/builtins-a64.cc (right): https://codereview.chromium.org/132963012/diff/210001/src/a64/builtins-a64.cc#newcode583 src/a64/builtins-a64.cc:583: __ bind(&count_incremented); bind outside ...
6 years, 10 months ago (2014-02-18 16:24:25 UTC) #4
mvstanton
Thanks Hannes, here are comment results. --Michael https://codereview.chromium.org/132963012/diff/210001/src/a64/builtins-a64.cc File src/a64/builtins-a64.cc (right): https://codereview.chromium.org/132963012/diff/210001/src/a64/builtins-a64.cc#newcode478 src/a64/builtins-a64.cc:478: if (create_memento) ...
6 years, 10 months ago (2014-02-19 08:40:25 UTC) #5
mvstanton
Hi Hannes, here is the delta where pretenure ratio is raised to 85% to address ...
6 years, 10 months ago (2014-02-19 13:18:51 UTC) #6
Hannes Payer (out of office)
LGTM
6 years, 10 months ago (2014-02-20 08:02:24 UTC) #7
mvstanton
6 years, 9 months ago (2014-03-19 13:39:27 UTC) #8
Message was sent while issue was closed.
Committed patchset #11 manually as r20076 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698