Index: runtime/vm/intermediate_language.cc |
diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc |
index 0046c038270c00aab22e7a4178a1c9e1460ee897..a881c809d07bbb11b1894c10ff769164d0cefd6b 100644 |
--- a/runtime/vm/intermediate_language.cc |
+++ b/runtime/vm/intermediate_language.cc |
@@ -3165,7 +3165,7 @@ void PolymorphicInstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
compiler->EmitPolymorphicInstanceCall( |
ic_data(), instance_call()->ArgumentCount(), |
instance_call()->argument_names(), deopt_id(), |
- instance_call()->token_pos(), locs(), complete()); |
+ instance_call()->token_pos(), locs(), complete(), total_ic_count()); |
} |
#endif |
@@ -3236,6 +3236,16 @@ Definition* PolymorphicInstanceCallInstr::Canonicalize(FlowGraph* flow_graph) { |
} |
+void PolymorphicInstanceCallInstr::InitializeIcCount() { |
+ const intptr_t num_checks = ic_data().NumberOfChecks(); |
+ intptr_t total = 0; |
+ for (intptr_t i = 0; i < num_checks; i++) { |
+ total += ic_data().GetCountAt(i); |
+ } |
+ total_ic_count_ = total; |
+} |
+ |
+ |
Definition* StaticCallInstr::Canonicalize(FlowGraph* flow_graph) { |
if (!FLAG_precompiled_mode) { |
return this; |