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

Issue 15564004: Refactor the IL for object allocation with type arguments. (Closed)

Created:
7 years, 7 months ago by Florian Schneider
Modified:
7 years, 7 months ago
Reviewers:
regis, srdjan
CC:
reviews_dartlang.org, vm-dev_dartlang.org, regis
Visibility:
Public.

Description

Refactor the IL for object allocation with type arguments. Two parts: 1. Change AllocateObjectWithBoundsCheck to a normal call that takes four arguments on the stack using PushArgument IL instructions. Before inputs were in registers and the instruction pushed them itself before the runtime call. This make the code more compact and simplifies the flow graph builder. 2. Simplify instructions for building constructor type arguments for another special case to simplify the instruction pattern and generate smaller code for that case. R=srdjan@google.com Committed: https://code.google.com/p/dart/source/detail?r=22943

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+112 lines, -180 lines) Patch
M runtime/vm/flow_graph_builder.h View 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 3 chunks +43 lines, -56 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 1 chunk +4 lines, -6 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 2 chunks +14 lines, -18 lines 1 comment Download
M runtime/vm/intermediate_language_ia32.cc View 3 chunks +19 lines, -41 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 2 chunks +13 lines, -17 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 3 chunks +19 lines, -40 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Florian Schneider
7 years, 7 months ago (2013-05-21 13:12:53 UTC) #1
srdjan
lgtm
7 years, 7 months ago (2013-05-21 14:59:14 UTC) #2
Florian Schneider
Committed patchset #3 manually as r22943 (presubmit successful).
7 years, 7 months ago (2013-05-21 15:15:55 UTC) #3
regis
LGTM https://codereview.chromium.org/15564004/diff/11001/runtime/vm/intermediate_language_arm.cc File runtime/vm/intermediate_language_arm.cc (right): https://codereview.chromium.org/15564004/diff/11001/runtime/vm/intermediate_language_arm.cc#newcode1620 runtime/vm/intermediate_language_arm.cc:1620: ASSERT(type_arguments().IsRawInstantiatedRaw(type_arguments().Length())); Do I understand correctly that you only ...
7 years, 7 months ago (2013-05-21 16:39:36 UTC) #4
Florian Schneider
7 years, 7 months ago (2013-05-22 08:09:19 UTC) #5
Message was sent while issue was closed.
On 2013/05/21 16:39:36, regis wrote:
> LGTM
> 
>
https://codereview.chromium.org/15564004/diff/11001/runtime/vm/intermediate_l...
> File runtime/vm/intermediate_language_arm.cc (right):
> 
>
https://codereview.chromium.org/15564004/diff/11001/runtime/vm/intermediate_l...
> runtime/vm/intermediate_language_arm.cc:1620:
> ASSERT(type_arguments().IsRawInstantiatedRaw(type_arguments().Length()));
> Do I understand correctly that you only use this
> ExtractConstructorTypeArgumentsInstr any more in the case where the
> uninstantiated type arguments is set to null if the instantiator is null? A
> comment would be useful.

Yes. I'll add a comment. I'm also considering eliminating these instructions
because they are now just a null-comparison.

Powered by Google App Engine
This is Rietveld 408576698