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

Issue 11659022: Generate the TransitionElementsStub using Crankshaft (Closed)

Created:
7 years, 12 months ago by danno
Modified:
7 years, 10 months ago
CC:
v8-dev
Visibility:
Public.

Description

Generate the TransitionElementsStub using Crankshaft This includes: * Adding support for saving callee-clobbered double registers in Crankshaft code. * Adding a new "HTrapAllocationMemento" hydrogen instruction to handle AllocationSiteInfo data in crankshafted stubs. * Adding a new "HAllocate" hydrogen instruction that can allocate raw memory from the GC in crankshafted code. * Support for manipulation of the hole in HChange instructions for Crankshafted stubs. * Utility routines to manually build loops and if statements containing hydrogen code. Committed: http://code.google.com/p/v8/source/detail?r=13585

Patch Set 1 #

Patch Set 2 : Cleanup #

Patch Set 3 : Correct patch #

Patch Set 4 : Initialize double -> fast arrays #

Patch Set 5 : Merge ToT #

Patch Set 6 : Align allocation #

Patch Set 7 : More tweaks #

Patch Set 8 : merge with latest #

Patch Set 9 : Moar changes #

Patch Set 10 : Moar changes #

Patch Set 11 : Fix call sites #

Patch Set 12 : Merge with ToT #

Patch Set 13 : Tweaks #

Patch Set 14 : Update to latest #

Patch Set 15 : Implement nosse2 #

Patch Set 16 : Fix 64-bit port #

Patch Set 17 : Implement ARM #

Patch Set 18 : Add test cases #

Patch Set 19 : AllocationSiteInfo handling #

Patch Set 20 : Feature complete #

Patch Set 21 : Tweaks #

Total comments: 24

Patch Set 22 : Tweaks #

Patch Set 23 : Review feedback #

Total comments: 22

Patch Set 24 : Fix ARM and deoptimizatoin bugs #

Patch Set 25 : Review feedback #

Total comments: 2

Patch Set 26 : Address review feedback #

Unified diffs Side-by-side diffs Delta from patch set Stats (+2138 lines, -352 lines) Patch
M src/arm/assembler-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 chunks +3 lines, -3 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 3 chunks +16 lines, -4 lines 0 comments Download
M src/arm/codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +6 lines, -4 lines 0 comments Download
M src/arm/deoptimizer-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +17 lines, -15 lines 0 comments Download
M src/arm/lithium-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 8 chunks +40 lines, -3 lines 0 comments Download
M src/arm/lithium-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +27 lines, -2 lines 0 comments Download
M src/arm/lithium-codegen-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +5 lines, -1 line 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 14 chunks +262 lines, -51 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -3 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 5 chunks +6 lines, -5 lines 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +35 lines, -0 lines 0 comments Download
M src/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 5 chunks +108 lines, -3 lines 0 comments Download
M src/compiler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +10 lines, -0 lines 0 comments Download
M src/deoptimizer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +1 line, -1 line 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +2 lines, -0 lines 0 comments Download
M src/heap.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +3 lines, -0 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 6 chunks +78 lines, -3 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 12 chunks +272 lines, -34 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 18 chunks +170 lines, -46 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 3 chunks +33 lines, -8 lines 0 comments Download
M src/ia32/assembler-ia32.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +1 line, -0 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 chunks +12 lines, -0 lines 0 comments Download
M src/ia32/codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +6 lines, -4 lines 0 comments Download
M src/ia32/deoptimizer-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 chunks +12 lines, -9 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.h View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +13 lines, -6 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 16 chunks +253 lines, -49 lines 0 comments Download
M src/ia32/lithium-ia32.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 8 chunks +43 lines, -2 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 chunks +33 lines, -4 lines 0 comments Download
M src/ia32/macro-assembler-ia32.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -3 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 5 chunks +17 lines, -6 lines 0 comments Download
M src/lithium.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +14 lines, -7 lines 0 comments Download
M src/lithium.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +31 lines, -0 lines 0 comments Download
M src/lithium-allocator.h View 1 2 3 3 chunks +15 lines, -0 lines 0 comments Download
M src/lithium-allocator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +12 lines, -5 lines 0 comments Download
M src/lithium-allocator-inl.h View 1 1 chunk +15 lines, -0 lines 0 comments Download
M src/runtime.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M src/runtime.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +10 lines, -0 lines 0 comments Download
M src/serialize.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +13 lines, -1 line 0 comments Download
M src/x64/assembler-x64.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 chunks +3 lines, -3 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 chunks +12 lines, -0 lines 0 comments Download
M src/x64/codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +6 lines, -4 lines 0 comments Download
M src/x64/deoptimizer-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 chunks +9 lines, -7 lines 0 comments Download
M src/x64/lithium-codegen-x64.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +8 lines, -5 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 13 chunks +204 lines, -36 lines 0 comments Download
M src/x64/lithium-x64.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 6 chunks +35 lines, -0 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +27 lines, -2 lines 0 comments Download
M src/x64/macro-assembler-x64.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -3 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 7 chunks +14 lines, -10 lines 0 comments Download
A test/mjsunit/generated-transition-stub.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +218 lines, -0 lines 0 comments Download
M test/mjsunit/mjsunit.status View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
danno
PTAL
7 years, 10 months ago (2013-01-30 11:47:13 UTC) #1
Michael Starzinger
First round of comments, from a high-level point of view it looks good already. I ...
7 years, 10 months ago (2013-01-31 13:15:09 UTC) #2
danno
Please take another look. Note that I added a flag to disable the new functionality. ...
7 years, 10 months ago (2013-01-31 15:53:25 UTC) #3
Rodolph Perfetta
Drive by comments. https://codereview.chromium.org/11659022/diff/50002/src/arm/lithium-codegen-arm.cc File src/arm/lithium-codegen-arm.cc (right): https://codereview.chromium.org/11659022/diff/50002/src/arm/lithium-codegen-arm.cc#newcode4579 src/arm/lithium-codegen-arm.cc:4579: if (!object_reg.is(r0)) { Move(r0, object_reg); https://codereview.chromium.org/11659022/diff/50002/src/arm/lithium-codegen-arm.cc#newcode4982 ...
7 years, 10 months ago (2013-01-31 20:05:55 UTC) #4
danno
Addressed feedback and fixed deoptimization problem with double values in registers. https://codereview.chromium.org/11659022/diff/50002/src/arm/lithium-codegen-arm.cc File src/arm/lithium-codegen-arm.cc (right): ...
7 years, 10 months ago (2013-02-01 11:37:35 UTC) #5
Michael Starzinger
This should be the last round of comments. https://codereview.chromium.org/11659022/diff/50002/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/11659022/diff/50002/src/hydrogen-instructions.cc#newcode2126 src/hydrogen-instructions.cc:2126: bool ...
7 years, 10 months ago (2013-02-01 13:15:08 UTC) #6
danno
Should be ready to go... https://codereview.chromium.org/11659022/diff/50002/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/11659022/diff/50002/src/hydrogen-instructions.cc#newcode2126 src/hydrogen-instructions.cc:2126: bool HLoadKeyed::CanReturnHole() const { ...
7 years, 10 months ago (2013-02-02 17:56:21 UTC) #7
Michael Starzinger
7 years, 10 months ago (2013-02-04 10:15:24 UTC) #8
LGTM with two last comments about the test.

https://codereview.chromium.org/11659022/diff/37080/test/mjsunit/mjsunit.status
File test/mjsunit/mjsunit.status (right):

https://codereview.chromium.org/11659022/diff/37080/test/mjsunit/mjsunit.stat...
test/mjsunit/mjsunit.status:157: generated-transition-stub: PASS, SKIP if $mode
== debug
This is in the MIPS-only section, better move it up into the general sections.

https://codereview.chromium.org/11659022/diff/37080/test/mjsunit/regress/gene...
File test/mjsunit/regress/generated-transition-stub.js (right):

https://codereview.chromium.org/11659022/diff/37080/test/mjsunit/regress/gene...
test/mjsunit/regress/generated-transition-stub.js:1: // Copyright 2013 the V8
project authors. All rights reserved.
Not really a regression test, let's move it to either test/mjsunit or
test/mjsunit/compiler.

Powered by Google App Engine
This is Rietveld 408576698