|
|
Enable allocation sinking for non-implicit closures.
In optimized code we can eliminate the allocation of closures that are not
escaping and where all calls are inlined.
Closures are currently allocated with a special IL instruction (CreateClosure).
This CL changes this for non-implicit closures and allocates them
like normal objects. The fields for the function and the context are
initialized like instance fields. This way object allocation sinking can
handle closures like any other objects.
R=srdjan@google.com
Committed: https://code.google.com/p/dart/source/detail?r=25706
Total comments: 7
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+183 lines, -77 lines) |
Patch |
 |
M |
runtime/vm/flow_graph_builder.cc
|
View
|
1
2
3
|
4 chunks |
+103 lines, -31 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_inliner.cc
|
View
|
1
2
3
|
5 chunks |
+28 lines, -3 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
1
2
|
6 chunks |
+7 lines, -9 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/flow_graph_type_propagator.cc
|
View
|
1
2
|
2 chunks |
+9 lines, -3 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/il_printer.cc
|
View
|
1
2
|
2 chunks |
+2 lines, -5 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language.h
|
View
|
1
2
|
7 chunks |
+24 lines, -14 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_arm.cc
|
View
|
1
2
|
1 chunk |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
1
2
|
1 chunk |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_mips.cc
|
View
|
1
2
|
1 chunk |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
1
2
|
1 chunk |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
runtime/vm/symbols.h
|
View
|
1
2
3
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
Total messages: 6 (0 generated)
|