|
Fix bug in field type tracking and polymorphic inlining.
When inlining implicit getters via the polymorphic inliner
(and not through the flow graph optimizer) the fields loaded
must be added to the list of guarded fields that trigger
deoptimization when a store violated the field type guard.
Also, this CL avoids adding fields to the list from inlining
candidates that do not get inlined after all. Previously, the
optimizer pass on the callee graph would add guarded fields
even if the final graph does not get inlined.
TEST=tests/language/vm/optimized_guarded_field_test.dart
R=kmillikin@google.com
Committed: https://code.google.com/p/dart/source/detail?r=27655
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+97 lines, -36 lines) |
Patch |
|
M |
runtime/vm/compiler.cc
|
View
|
1
|
4 chunks |
+4 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph.h
|
View
|
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.h
|
View
|
|
3 chunks |
+8 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.cc
|
View
|
|
4 chunks |
+27 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_inliner.h
|
View
|
1
|
2 chunks |
+1 line, -4 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_inliner.cc
|
View
|
1
|
7 chunks |
+13 lines, -7 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.h
|
View
|
|
2 chunks |
+2 lines, -7 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
|
2 chunks |
+1 line, -15 lines |
0 comments
|
Download
|
|
A |
tests/language/vm/optimized_guarded_field_test.dart
|
View
|
|
1 chunk |
+35 lines, -0 lines |
0 comments
|
Download
|
Total messages: 6 (0 generated)
|