|
Support allocation sinking for compound objects.
- Improve escape/alias analysis:
-- Storing an object into a field of another object does not mean that this object escapes (or has aliases) as long as that object does not have any loads from the same place;
-- Places like X.f and Y.f don't alias if X and Y are two different allocation instructions even if X and Y themselves potentially have aliases;
-- Improve precision of alias analysis for indexed properties;
- Support dematerialization and rematerialization of objects that are referenced by other dematerialized objects.
-- Use fix-point algorithm to collect candidates for allocation sinking;
-- Support aborting unsuccessful allocation sinking.
R=fschneider@google.com, johnmccutchan@google.com
Committed: https://code.google.com/p/dart/source/detail?r=38404
Total comments: 14
Total comments: 5
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1413 lines, -687 lines) |
Patch |
|
M |
runtime/vm/compiler.cc
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/deferred_objects.h
|
View
|
1
2
3
|
2 chunks |
+8 lines, -4 lines |
0 comments
|
Download
|
|
M |
runtime/vm/deferred_objects.cc
|
View
|
|
3 chunks |
+17 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/deopt_instructions.h
|
View
|
|
2 chunks |
+13 lines, -14 lines |
0 comments
|
Download
|
|
M |
runtime/vm/deopt_instructions.cc
|
View
|
|
3 chunks |
+15 lines, -10 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph.cc
|
View
|
|
1 chunk |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.cc
|
View
|
|
5 chunks |
+27 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.h
|
View
|
1
2
|
2 chunks |
+46 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
1
2
|
33 chunks |
+888 lines, -581 lines |
0 comments
|
Download
|
|
M |
runtime/vm/il_printer.cc
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.h
|
View
|
1
2
3
|
9 chunks |
+71 lines, -14 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.cc
|
View
|
|
2 chunks |
+9 lines, -5 lines |
0 comments
|
Download
|
|
M |
tests/language/vm/allocation_sinking_vm_test.dart
|
View
|
1
2
|
2 chunks |
+109 lines, -0 lines |
0 comments
|
Download
|
|
M |
tests/language/vm/load_to_load_forwarding_vm_test.dart
|
View
|
1
2
3
4
|
3 chunks |
+199 lines, -45 lines |
0 comments
|
Download
|
Total messages: 8 (0 generated)
|