Index: runtime/vm/flow_graph_type_propagator.cc |
diff --git a/runtime/vm/flow_graph_type_propagator.cc b/runtime/vm/flow_graph_type_propagator.cc |
index 6fcd8742810a6c0c34c74da5a31903bb2f6ad781..f0ac5a6a530f8d27b4b085cf4758efb9dbc6e461 100644 |
--- a/runtime/vm/flow_graph_type_propagator.cc |
+++ b/runtime/vm/flow_graph_type_propagator.cc |
@@ -15,6 +15,7 @@ DEFINE_FLAG(bool, trace_type_propagation, false, |
"Trace flow graph type propagation"); |
DECLARE_FLAG(bool, propagate_types); |
+DECLARE_FLAG(bool, trace_cha); |
DECLARE_FLAG(bool, use_cha_deopt); |
@@ -549,6 +550,10 @@ intptr_t CompileType::ToNullableCid() { |
// Type of a private class cannot change through later loaded libs. |
cid_ = type_class.id(); |
} else if (FLAG_use_cha_deopt) { |
+ if (FLAG_trace_cha) { |
+ ISL_Print(" **(CHA) Compile type not subclassed: %s\n", |
+ type_class.ToCString()); |
+ } |
cha->AddToLeafClasses(type_class); |
cid_ = type_class.id(); |
} else { |
@@ -786,6 +791,11 @@ CompileType ParameterInstr::ComputeType() const { |
cid = type_class.id(); |
} else { |
if (FLAG_use_cha_deopt) { |
+ if (FLAG_trace_cha) { |
+ ISL_Print(" **(CHA) Computing exact type of parameters, " |
+ "no subclasses: %s\n", |
+ type_class.ToCString()); |
+ } |
thread->cha()->AddToLeafClasses(type_class); |
cid = type_class.id(); |
} |