Index: runtime/vm/intermediate_language.h |
diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h |
index 65a16c6eac5bdeba6dcc949d68e309c4ca0a9e58..628fa5fb7684f6b0b51988bcab2d124ae83c22b7 100644 |
--- a/runtime/vm/intermediate_language.h |
+++ b/runtime/vm/intermediate_language.h |
@@ -2777,6 +2777,7 @@ class PolymorphicInstanceCallInstr : public TemplateDefinition<0, Throws> { |
complete_(complete) { |
ASSERT(instance_call_ != NULL); |
ASSERT(!ic_data.NumberOfChecksIs(0)); |
+ InitializeIcCount(); |
} |
InstanceCallInstr* instance_call() const { return instance_call_; } |
@@ -2804,6 +2805,10 @@ class PolymorphicInstanceCallInstr : public TemplateDefinition<0, Throws> { |
const ICData& ic_data() const { return ic_data_; } |
+ intptr_t total_ic_count() { return total_ic_count_; } |
Vyacheslav Egorov (Google)
2017/03/10 10:31:30
This is an extremely confusing name. We need:
(a)
erikcorry
2017/03/10 13:30:01
Done.
|
+ |
+ void set_total_ic_count(intptr_t count) { total_ic_count_ = count; } |
+ |
virtual bool CanDeoptimize() const { return true; } |
virtual EffectSet Effects() const { return EffectSet::All(); } |
@@ -2819,6 +2824,9 @@ class PolymorphicInstanceCallInstr : public TemplateDefinition<0, Throws> { |
const ICData& ic_data_; |
bool with_checks_; |
const bool complete_; |
+ intptr_t total_ic_count_; |
+ |
+ void InitializeIcCount(); |
DISALLOW_COPY_AND_ASSIGN(PolymorphicInstanceCallInstr); |
}; |