Index: runtime/vm/aot_optimizer.cc |
diff --git a/runtime/vm/aot_optimizer.cc b/runtime/vm/aot_optimizer.cc |
index f7c741dc11d73184e253f926d6c9d12792e71a75..25074516d074f0c4042effded046301a806dbc92 100644 |
--- a/runtime/vm/aot_optimizer.cc |
+++ b/runtime/vm/aot_optimizer.cc |
@@ -108,8 +108,6 @@ void AotOptimizer::ApplyClassIds() { |
VisitInstanceCall(call); |
} |
} |
- } else if (instr->IsPolymorphicInstanceCall()) { |
- SpecializePolymorphicInstanceCall(instr->AsPolymorphicInstanceCall()); |
} |
} |
current_iterator_ = NULL; |
@@ -268,37 +266,6 @@ const ICData& AotOptimizer::TrySpecializeICData(const ICData& ic_data, |
} |
-void AotOptimizer::SpecializePolymorphicInstanceCall( |
- PolymorphicInstanceCallInstr* call) { |
- if (!FLAG_polymorphic_with_deopt) { |
- // Specialization adds receiver checks which can lead to deoptimization. |
- return; |
- } |
- if (!call->with_checks()) { |
- return; // Already specialized. |
- } |
- |
- const intptr_t receiver_cid = |
- call->PushArgumentAt(0)->value()->Type()->ToCid(); |
- if (receiver_cid == kDynamicCid) { |
- return; // No information about receiver was infered. |
- } |
- |
- const ICData& ic_data = TrySpecializeICData(call->ic_data(), receiver_cid); |
- if (ic_data.raw() == call->ic_data().raw()) { |
- // No specialization. |
- return; |
- } |
- |
- PolymorphicInstanceCallInstr* specialized = |
- new(Z) PolymorphicInstanceCallInstr(call->instance_call(), |
- ic_data, |
- /* with_checks = */ false, |
- /* complete = */ false); |
- call->ReplaceWith(specialized, current_iterator()); |
-} |
- |
- |
static BinarySmiOpInstr* AsSmiShiftLeftInstruction(Definition* d) { |
BinarySmiOpInstr* instr = d->AsBinarySmiOp(); |
if ((instr != NULL) && (instr->op_kind() == Token::kSHL)) { |