Index: runtime/vm/flow_graph_inliner.cc |
diff --git a/runtime/vm/flow_graph_inliner.cc b/runtime/vm/flow_graph_inliner.cc |
index 9ee6365a49ef934c08e2d520cb0434d7fffb6d8a..d164ddf2c2539be965b1abfb83cc7cd515c60798 100644 |
--- a/runtime/vm/flow_graph_inliner.cc |
+++ b/runtime/vm/flow_graph_inliner.cc |
@@ -609,7 +609,9 @@ class CallSiteInliner : public ValueObject { |
if (constant != NULL) { |
return new(Z) ConstantInstr(constant->value()); |
} else { |
- return new(Z) ParameterInstr(i, graph->graph_entry()); |
+ ParameterInstr* param = new(Z) ParameterInstr(i, graph->graph_entry()); |
+ param->UpdateType(*argument->Type()); |
+ return param; |
} |
} |
@@ -832,6 +834,13 @@ class CallSiteInliner : public ValueObject { |
DEBUG_ASSERT(callee_graph->VerifyUseLists()); |
} else { |
JitOptimizer optimizer(callee_graph); |
+ |
+ optimizer.ApplyClassIds(); |
+ DEBUG_ASSERT(callee_graph->VerifyUseLists()); |
+ |
+ FlowGraphTypePropagator::Propagate(callee_graph); |
+ DEBUG_ASSERT(callee_graph->VerifyUseLists()); |
+ |
optimizer.ApplyICData(); |
DEBUG_ASSERT(callee_graph->VerifyUseLists()); |