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

Issue 9304001: Implement inlining of constructor calls. (Closed)

Created:
8 years, 10 months ago by Michael Starzinger
Modified:
8 years, 9 months ago
CC:
v8-dev
Visibility:
Public.

Description

Patch Set 1 #

Patch Set 2 : Added deoptimization and debugger support. #

Patch Set 3 : Fixed stack layout during arguments evaluation. #

Patch Set 4 : Ported deoptimizer to x64 and ARM. #

Total comments: 34

Patch Set 5 : Addressed comments by Vyacheslav Egorov. #

Total comments: 4

Patch Set 6 : Addressed moar comments by Vyacheslav Egorov. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1277 lines, -245 lines) Patch
M src/arm/builtins-arm.cc View 1 2 3 4 chunks +17 lines, -26 lines 0 comments Download
M src/arm/deoptimizer-arm.cc View 1 2 3 4 8 chunks +115 lines, -11 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/lithium-arm.h View 1 2 3 4 2 chunks +8 lines, -0 lines 0 comments Download
M src/arm/lithium-arm.cc View 1 2 3 4 4 chunks +12 lines, -4 lines 0 comments Download
M src/arm/lithium-codegen-arm.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 3 chunks +51 lines, -5 lines 0 comments Download
M src/ast.h View 2 chunks +15 lines, -1 line 0 comments Download
M src/ast.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M src/deoptimizer.h View 1 9 chunks +17 lines, -6 lines 0 comments Download
M src/deoptimizer.cc View 1 10 chunks +34 lines, -6 lines 0 comments Download
M src/flag-definitions.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/frames.cc View 1 2 chunks +8 lines, -4 lines 0 comments Download
M src/frames-inl.h View 1 1 chunk +1 line, -1 line 0 comments Download
M src/heap.h View 1 2 chunks +7 lines, -1 line 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 11 chunks +48 lines, -19 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 27 chunks +202 lines, -88 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 chunks +30 lines, -2 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 1 2 chunks +7 lines, -0 lines 0 comments Download
M src/ia32/deoptimizer-ia32.cc View 1 2 3 4 8 chunks +105 lines, -8 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 3 chunks +50 lines, -5 lines 0 comments Download
M src/ia32/lithium-ia32.h View 1 2 3 4 2 chunks +14 lines, -0 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 2 3 4 4 chunks +13 lines, -4 lines 0 comments Download
M src/lithium.h View 1 3 chunks +4 lines, -5 lines 0 comments Download
M src/mips/full-codegen-mips.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/mips/lithium-codegen-mips.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/mips/lithium-codegen-mips.cc View 1 2 3 4 5 1 chunk +38 lines, -0 lines 0 comments Download
M src/mips/lithium-mips.h View 1 2 3 4 2 chunks +8 lines, -0 lines 0 comments Download
M src/mips/lithium-mips.cc View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
M src/objects.cc View 1 1 chunk +8 lines, -2 lines 0 comments Download
M src/runtime.cc View 1 6 chunks +19 lines, -11 lines 0 comments Download
M src/type-info.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/type-info.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M src/x64/builtins-x64.cc View 1 2 3 2 chunks +10 lines, -0 lines 0 comments Download
M src/x64/deoptimizer-x64.cc View 1 2 3 4 8 chunks +111 lines, -8 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/lithium-codegen-x64.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 3 chunks +50 lines, -5 lines 0 comments Download
M src/x64/lithium-x64.h View 1 2 3 4 2 chunks +8 lines, -0 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 2 3 4 4 chunks +12 lines, -4 lines 0 comments Download
A test/mjsunit/compiler/inline-construct.js View 1 2 3 4 1 chunk +170 lines, -0 lines 0 comments Download
M test/mjsunit/debug-evaluate-locals-optimized.js View 1 4 chunks +10 lines, -4 lines 0 comments Download
M test/mjsunit/debug-evaluate-locals-optimized-double.js View 1 4 chunks +10 lines, -4 lines 0 comments Download
M test/mjsunit/regress/regress-1229.js View 1 1 chunk +31 lines, -11 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
Michael Starzinger
8 years, 10 months ago (2012-01-30 16:30:57 UTC) #1
Vyacheslav Egorov (Chromium)
It seems that CL lacks changes in deoptimizer that should reconstruct JS construct stub frame ...
8 years, 10 months ago (2012-01-30 16:44:05 UTC) #2
Vyacheslav Egorov (Chromium)
Another small comment: we need a good test coverage for this, see for example tests ...
8 years, 10 months ago (2012-01-30 16:49:55 UTC) #3
Michael Starzinger
Added new patch set. Now with deoptimizer and debugger support. Also fixed an issue in ...
8 years, 10 months ago (2012-02-02 18:19:24 UTC) #4
Michael Starzinger
Added new patch set. Ported deoptimizer to x64 and ARM.
8 years, 10 months ago (2012-02-09 10:07:08 UTC) #5
Vyacheslav Egorov (Chromium)
first round of comments (overall everything seems to be solid). http://codereview.chromium.org/9304001/diff/16001/src/arm/deoptimizer-arm.cc File src/arm/deoptimizer-arm.cc (right): http://codereview.chromium.org/9304001/diff/16001/src/arm/deoptimizer-arm.cc#newcode457 ...
8 years, 10 months ago (2012-02-13 15:01:38 UTC) #6
Michael Starzinger
Added new patch set. PTAL. https://chromiumcodereview.appspot.com/9304001/diff/16001/src/arm/deoptimizer-arm.cc File src/arm/deoptimizer-arm.cc (right): https://chromiumcodereview.appspot.com/9304001/diff/16001/src/arm/deoptimizer-arm.cc#newcode457 src/arm/deoptimizer-arm.cc:457: // Arguments adaptor can ...
8 years, 10 months ago (2012-02-27 14:16:31 UTC) #7
Vyacheslav Egorov (Chromium)
lgtm https://chromiumcodereview.appspot.com/9304001/diff/25001/src/hydrogen.cc File src/hydrogen.cc (right): https://chromiumcodereview.appspot.com/9304001/diff/25001/src/hydrogen.cc#newcode5551 src/hydrogen.cc:5551: Pop(); I think we can replace receiver with ...
8 years, 10 months ago (2012-02-27 15:06:02 UTC) #8
Michael Starzinger
8 years, 9 months ago (2012-02-28 09:07:10 UTC) #9
Addressed comments. Added new patch set. Rebased. Landed.

https://chromiumcodereview.appspot.com/9304001/diff/25001/src/hydrogen.cc
File src/hydrogen.cc (right):

https://chromiumcodereview.appspot.com/9304001/diff/25001/src/hydrogen.cc#new...
src/hydrogen.cc:5551: Pop();
On 2012/02/27 15:06:02, Vyacheslav Egorov wrote:
> I think we can replace receiver with function with SetExpressionStackAt() and
> then use PreProcessCall to do heavy lifting with HPushArgument.

Done. Made PreProcessCall more templatey.

https://chromiumcodereview.appspot.com/9304001/diff/25001/src/mips/lithium-co...
File src/mips/lithium-codegen-mips.cc (right):

https://chromiumcodereview.appspot.com/9304001/diff/25001/src/mips/lithium-co...
src/mips/lithium-codegen-mips.cc:4251: __ li(a0, Operand(constructor));
On 2012/02/27 15:06:02, Vyacheslav Egorov wrote:
> consider using LoadHeapObject/PushHeapObject just to be safe in case if we
start
> inlining constructors that are in new space (all architectures).

Done (on ARM and MIPS).

Powered by Google App Engine
This is Rietveld 408576698