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

Issue 8640001: Implement crankshaft support for nested object literals. (Closed)

Created:
9 years, 1 month ago by Michael Starzinger
Modified:
9 years, 1 month ago
Reviewers:
fschneider
CC:
v8-dev
Visibility:
Public.

Description

Implement crankshaft support for nested object literals. This generates optimized code for deep-copying of nested object literal boilerplates which are statically known. Most of the boilerplates have already been generated at crankshaft time, so this optimization should kick in for virtually every object literal. Only nested object literal graphs up to a certain depth and containing up to a certain total number of properties are considered for this optimization. This will prevent explosion of code size due to large object literals (e.g. eval on JSON). Improves splay performance because object literals are created often. R=fschneider@chromium.org Committed: http://code.google.com/p/v8/source/detail?r=10061

Patch Set 1 #

Patch Set 2 : No really, I can code C. #

Total comments: 10

Patch Set 3 : Addressed comments by Florian Schneider. #

Total comments: 6

Patch Set 4 : Ported lithium part to x64 and ARM. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+419 lines, -41 lines) Patch
M src/arm/lithium-arm.h View 1 2 3 2 chunks +12 lines, -4 lines 0 comments Download
M src/arm/lithium-arm.cc View 1 2 3 1 chunk +8 lines, -2 lines 0 comments Download
M src/arm/lithium-codegen-arm.h View 1 2 3 1 chunk +7 lines, -0 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 1 chunk +68 lines, -1 line 0 comments Download
M src/hydrogen.cc View 1 2 1 chunk +67 lines, -7 lines 0 comments Download
M src/hydrogen-instructions.h View 5 chunks +47 lines, -11 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 chunk +6 lines, -1 line 0 comments Download
M src/ia32/lithium-codegen-ia32.h View 1 chunk +8 lines, -0 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 1 chunk +73 lines, -1 line 0 comments Download
M src/ia32/lithium-ia32.h View 2 chunks +19 lines, -5 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 chunk +10 lines, -2 lines 0 comments Download
M src/x64/lithium-codegen-x64.h View 1 2 3 1 chunk +7 lines, -0 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 1 chunk +67 lines, -1 line 0 comments Download
M src/x64/lithium-x64.h View 1 2 3 2 chunks +12 lines, -4 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 2 3 1 chunk +8 lines, -2 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
Michael Starzinger
The current patch set will not compile on x64 and ARM, because lithium parts are ...
9 years, 1 month ago (2011-11-22 12:29:03 UTC) #1
fschneider
This is already pretty good. I have some suggestions for improvements which should make it ...
9 years, 1 month ago (2011-11-22 17:26:16 UTC) #2
Michael Starzinger
Added new patch set. Will start porting to x64 and ARM. http://codereview.chromium.org/8640001/diff/2001/src/hydrogen.cc File src/hydrogen.cc (right): ...
9 years, 1 month ago (2011-11-23 10:55:32 UTC) #3
fschneider
LGTM with a few comments. http://codereview.chromium.org/8640001/diff/6001/src/ia32/lithium-codegen-ia32.cc File src/ia32/lithium-codegen-ia32.cc (right): http://codereview.chromium.org/8640001/diff/6001/src/ia32/lithium-codegen-ia32.cc#newcode4186 src/ia32/lithium-codegen-ia32.cc:4186: object->elements()->map() == HEAP->fixed_cow_array_map()); Use ...
9 years, 1 month ago (2011-11-23 14:27:20 UTC) #4
Michael Starzinger
Ported to x64 and ARM. http://codereview.chromium.org/8640001/diff/6001/src/ia32/lithium-codegen-ia32.cc File src/ia32/lithium-codegen-ia32.cc (right): http://codereview.chromium.org/8640001/diff/6001/src/ia32/lithium-codegen-ia32.cc#newcode4186 src/ia32/lithium-codegen-ia32.cc:4186: object->elements()->map() == HEAP->fixed_cow_array_map()); On ...
9 years, 1 month ago (2011-11-24 09:51:54 UTC) #5
fschneider
9 years, 1 month ago (2011-11-24 11:25:53 UTC) #6
LGTM as well.

Powered by Google App Engine
This is Rietveld 408576698