Index: runtime/vm/intermediate_language.cc |
diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc |
index 622151bc0271977cc16e0fcfb61d3d4afc92aade..c3359f1f23fe46637922f5369b64a07f62f3c7f3 100644 |
--- a/runtime/vm/intermediate_language.cc |
+++ b/runtime/vm/intermediate_language.cc |
@@ -3231,67 +3231,6 @@ void PolymorphicInstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
#endif |
-RawType* PolymorphicInstanceCallInstr::ComputeRuntimeType( |
- const ICData& ic_data) { |
- bool is_string = true; |
- bool is_integer = true; |
- bool is_double = true; |
- |
- const intptr_t num_checks = ic_data.NumberOfChecks(); |
- for (intptr_t i = 0; i < num_checks; i++) { |
- const intptr_t cid = ic_data.GetReceiverClassIdAt(i); |
- is_string = is_string && RawObject::IsStringClassId(cid); |
- is_integer = is_integer && RawObject::IsIntegerClassId(cid); |
- is_double = is_double && (cid == kDoubleCid); |
- } |
- |
- if (is_string) { |
- return Type::StringType(); |
- } else if (is_integer) { |
- return Type::IntType(); |
- } else if (is_double) { |
- return Type::Double(); |
- } |
- |
- return Type::null(); |
-} |
- |
- |
-Definition* PolymorphicInstanceCallInstr::Canonicalize(FlowGraph* flow_graph) { |
- if (!HasSingleRecognizedTarget() || with_checks()) { |
- return this; |
- } |
- |
- const Function& target = Function::Handle(ic_data().GetTargetAt(0)); |
- if (target.recognized_kind() == MethodRecognizer::kObjectRuntimeType) { |
- const AbstractType& type = |
- AbstractType::Handle(ComputeRuntimeType(ic_data())); |
- if (!type.IsNull()) { |
- return flow_graph->GetConstant(type); |
- } |
- } |
- |
- return this; |
-} |
- |
- |
-Definition* StaticCallInstr::Canonicalize(FlowGraph* flow_graph) { |
- if (!FLAG_precompiled_mode) { |
- return this; |
- } |
- |
- if (function().recognized_kind() == MethodRecognizer::kObjectRuntimeType) { |
- if (input_use_list() == NULL) { |
- // This function has only environment uses. In precompiled mode it is |
- // fine to remove it - because we will never deoptimize. |
- return flow_graph->constant_dead(); |
- } |
- } |
- |
- return this; |
-} |
- |
- |
LocationSummary* StaticCallInstr::MakeLocationSummary(Zone* zone, |
bool optimizing) const { |
return MakeCallSummary(zone); |