| Index: runtime/vm/flow_graph_optimizer.cc
|
| diff --git a/runtime/vm/flow_graph_optimizer.cc b/runtime/vm/flow_graph_optimizer.cc
|
| index 8a20b883b1218bc250bb052d9a52893db5cc2e40..1d0e4a9ac101590c14c0cbeac4506ded83f7912b 100644
|
| --- a/runtime/vm/flow_graph_optimizer.cc
|
| +++ b/runtime/vm/flow_graph_optimizer.cc
|
| @@ -1303,7 +1303,6 @@ bool FlowGraphOptimizer::InlineSetIndexed(
|
| // the index is not a smi.
|
| const AbstractType& value_type =
|
| AbstractType::ZoneHandle(Z, target.ParameterTypeAt(2));
|
| - Definition* instantiator = NULL;
|
| Definition* type_args = NULL;
|
| switch (array_cid) {
|
| case kArrayCid:
|
| @@ -1321,7 +1320,6 @@ bool FlowGraphOptimizer::InlineSetIndexed(
|
| NULL,
|
| FlowGraph::kValue);
|
|
|
| - instantiator = array;
|
| type_args = load_type_args;
|
| break;
|
| }
|
| @@ -1339,7 +1337,7 @@ bool FlowGraphOptimizer::InlineSetIndexed(
|
| // Fall through.
|
| case kTypedDataFloat32ArrayCid:
|
| case kTypedDataFloat64ArrayCid: {
|
| - type_args = instantiator = flow_graph_->constant_null();
|
| + type_args = flow_graph_->constant_null();
|
| ASSERT((array_cid != kTypedDataFloat32ArrayCid &&
|
| array_cid != kTypedDataFloat64ArrayCid) ||
|
| value_type.IsDoubleType());
|
| @@ -1347,14 +1345,14 @@ bool FlowGraphOptimizer::InlineSetIndexed(
|
| break;
|
| }
|
| case kTypedDataFloat32x4ArrayCid: {
|
| - type_args = instantiator = flow_graph_->constant_null();
|
| + type_args = flow_graph_->constant_null();
|
| ASSERT((array_cid != kTypedDataFloat32x4ArrayCid) ||
|
| value_type.IsFloat32x4Type());
|
| ASSERT(value_type.IsInstantiated());
|
| break;
|
| }
|
| case kTypedDataFloat64x2ArrayCid: {
|
| - type_args = instantiator = flow_graph_->constant_null();
|
| + type_args = flow_graph_->constant_null();
|
| ASSERT((array_cid != kTypedDataFloat64x2ArrayCid) ||
|
| value_type.IsFloat64x2Type());
|
| ASSERT(value_type.IsInstantiated());
|
| @@ -1367,7 +1365,6 @@ bool FlowGraphOptimizer::InlineSetIndexed(
|
| AssertAssignableInstr* assert_value =
|
| new(Z) AssertAssignableInstr(token_pos,
|
| new(Z) Value(stored_value),
|
| - new(Z) Value(instantiator),
|
| new(Z) Value(type_args),
|
| value_type,
|
| Symbols::Value(),
|
| @@ -4051,12 +4048,10 @@ static bool TryExpandTestCidsResult(ZoneGrowableArray<intptr_t>* results,
|
| void FlowGraphOptimizer::ReplaceWithInstanceOf(InstanceCallInstr* call) {
|
| ASSERT(Token::IsTypeTestOperator(call->token_kind()));
|
| Definition* left = call->ArgumentAt(0);
|
| - Definition* instantiator = NULL;
|
| Definition* type_args = NULL;
|
| AbstractType& type = AbstractType::ZoneHandle(Z);
|
| bool negate = false;
|
| if (call->ArgumentCount() == 2) {
|
| - instantiator = flow_graph()->constant_null();
|
| type_args = flow_graph()->constant_null();
|
| if (call->function_name().raw() ==
|
| Library::PrivateCoreLibName(Symbols::_instanceOfNum()).raw()) {
|
| @@ -4079,10 +4074,9 @@ void FlowGraphOptimizer::ReplaceWithInstanceOf(InstanceCallInstr* call) {
|
| negate = Bool::Cast(call->ArgumentAt(1)->OriginalDefinition()
|
| ->AsConstant()->value()).value();
|
| } else {
|
| - instantiator = call->ArgumentAt(1);
|
| - type_args = call->ArgumentAt(2);
|
| - type = AbstractType::Cast(call->ArgumentAt(3)->AsConstant()->value()).raw();
|
| - negate = Bool::Cast(call->ArgumentAt(4)->OriginalDefinition()
|
| + type_args = call->ArgumentAt(1);
|
| + type = AbstractType::Cast(call->ArgumentAt(2)->AsConstant()->value()).raw();
|
| + negate = Bool::Cast(call->ArgumentAt(3)->OriginalDefinition()
|
| ->AsConstant()->value()).value();
|
| }
|
| const ICData& unary_checks =
|
| @@ -4159,7 +4153,6 @@ void FlowGraphOptimizer::ReplaceWithInstanceOf(InstanceCallInstr* call) {
|
| InstanceOfInstr* instance_of =
|
| new(Z) InstanceOfInstr(call->token_pos(),
|
| new(Z) Value(left),
|
| - new(Z) Value(instantiator),
|
| new(Z) Value(type_args),
|
| type,
|
| negate,
|
| @@ -4172,10 +4165,9 @@ void FlowGraphOptimizer::ReplaceWithInstanceOf(InstanceCallInstr* call) {
|
| void FlowGraphOptimizer::ReplaceWithTypeCast(InstanceCallInstr* call) {
|
| ASSERT(Token::IsTypeCastOperator(call->token_kind()));
|
| Definition* left = call->ArgumentAt(0);
|
| - Definition* instantiator = call->ArgumentAt(1);
|
| - Definition* type_args = call->ArgumentAt(2);
|
| + Definition* type_args = call->ArgumentAt(1);
|
| const AbstractType& type =
|
| - AbstractType::Cast(call->ArgumentAt(3)->AsConstant()->value());
|
| + AbstractType::Cast(call->ArgumentAt(2)->AsConstant()->value());
|
| ASSERT(!type.IsMalformedOrMalbounded());
|
| const ICData& unary_checks =
|
| ICData::ZoneHandle(Z, call->ic_data()->AsUnaryClassChecks());
|
| @@ -4214,7 +4206,6 @@ void FlowGraphOptimizer::ReplaceWithTypeCast(InstanceCallInstr* call) {
|
| AssertAssignableInstr* assert_as =
|
| new(Z) AssertAssignableInstr(call->token_pos(),
|
| new(Z) Value(left),
|
| - new(Z) Value(instantiator),
|
| new(Z) Value(type_args),
|
| type,
|
| dst_name,
|
|
|