|
Simplify generated code for object allocation with type arguments.
The motivation for the change is to make allocation sinking more
general when type arguments are in play. As a result I cleaned up the code
dealing with constructor type arguments as follows:
* Remove ExtractConstructorTypeArguments and ExtractConstructorInstantiator
from the intermediate language.
* The allocation stub takes now 1 argument (instead of 2) for parameterized
classes.
* The allocation stub always get an instantiated type arguments object
as input. It does not need to do a lookup in the instantiations array anymore.
* The code for looking up cached instantiated type arguments is moved
to the InstantiateTypeArguments instruction. This instruction is now also
used for object allocation. I'm not sure how relevant the cache lookup is
performance-wise. dart2js compilation did not show any regression without it.
R=regis@google.com
Committed: https://code.google.com/p/dart/source/detail?r=32697
Total comments: 15
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+182 lines, -768 lines) |
Patch |
|
M |
runtime/vm/code_generator.cc
|
View
|
1
2
3
|
3 chunks |
+26 lines, -46 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.h
|
View
|
|
1 chunk |
+0 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.cc
|
View
|
|
3 chunks |
+12 lines, -79 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
1
2
3
|
7 chunks |
+4 lines, -52 lines |
0 comments
|
Download
|
|
M |
runtime/vm/il_printer.cc
|
View
|
|
1 chunk |
+0 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.h
|
View
|
|
4 chunks |
+3 lines, -75 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.cc
|
View
|
|
2 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_arm.cc
|
View
|
|
3 chunks |
+24 lines, -82 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
|
3 chunks |
+26 lines, -84 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_mips.cc
|
View
|
|
3 chunks |
+22 lines, -80 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
|
3 chunks |
+27 lines, -81 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_arm.cc
|
View
|
1
2
3
|
4 chunks |
+10 lines, -43 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_ia32.cc
|
View
|
1
2
3
|
4 chunks |
+4 lines, -40 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_mips.cc
|
View
|
1
2
3
|
5 chunks |
+14 lines, -50 lines |
0 comments
|
Download
|
|
M |
runtime/vm/stub_code_x64.cc
|
View
|
1
2
3
|
3 chunks |
+4 lines, -40 lines |
0 comments
|
Download
|
Total messages: 4 (0 generated)
|