Index: runtime/vm/compiler.cc |
=================================================================== |
--- runtime/vm/compiler.cc (revision 27611) |
+++ runtime/vm/compiler.cc (working copy) |
@@ -271,6 +271,7 @@ |
isolate->set_long_jump_base(&bailout_jump); |
if (setjmp(*bailout_jump.Set()) == 0) { |
FlowGraph* flow_graph = NULL; |
+ GrowableArray<const Field*> guarded_fields; |
// TimerScope needs an isolate to be properly terminated in case of a |
// LongJump. |
{ |
@@ -293,6 +294,7 @@ |
FlowGraphBuilder builder(parsed_function, |
ic_data_array, |
NULL, // NULL = not inlining. |
+ &guarded_fields, |
osr_id); |
flow_graph = builder.BuildGraph(); |
} |
@@ -326,13 +328,12 @@ |
// Collect all instance fields that are loaded in the graph and |
// have non-generic type feedback attached to them that can |
// potentially affect optimizations. |
- GrowableArray<const Field*> guarded_fields(10); |
if (optimized) { |
TimerScope timer(FLAG_compiler_stats, |
&CompilerStats::graphoptimizer_timer, |
isolate); |
- FlowGraphOptimizer optimizer(flow_graph, &guarded_fields); |
+ FlowGraphOptimizer optimizer(flow_graph); |
optimizer.ApplyICData(); |
DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
@@ -358,7 +359,7 @@ |
optimizer.ApplyClassIds(); |
DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
- FlowGraphInliner inliner(flow_graph, &guarded_fields); |
+ FlowGraphInliner inliner(flow_graph); |
inliner.Inline(); |
// Use lists are maintained and validated by the inliner. |
DEBUG_ASSERT(flow_graph->VerifyUseLists()); |