Chromium Code Reviews| Index: runtime/vm/flow_graph.cc |
| diff --git a/runtime/vm/flow_graph.cc b/runtime/vm/flow_graph.cc |
| index 84b9e483e42517457bd48e6b7bce6e65207ac959..2ca8a1606617f45dd64fe9d50b4abed671e0780d 100644 |
| --- a/runtime/vm/flow_graph.cc |
| +++ b/runtime/vm/flow_graph.cc |
| @@ -2280,20 +2280,18 @@ void FlowGraph::TryMergeTruncDivMod( |
| (*merge_candidates)[k] = NULL; // Clear it. |
| ASSERT(curr_instr->HasUses()); |
| AppendExtractNthOutputForMerged( |
| - curr_instr, MergedMathInstr::OutputIndexOf(curr_instr->op_kind()), |
| + curr_instr, TruncDivModInstr::OutputIndexOf(curr_instr->op_kind()), |
| kTagged, kSmiCid); |
| ASSERT(other_binop->HasUses()); |
| AppendExtractNthOutputForMerged( |
| - other_binop, MergedMathInstr::OutputIndexOf(other_binop->op_kind()), |
| - kTagged, kSmiCid); |
| - |
| - ZoneGrowableArray<Value*>* args = new (Z) ZoneGrowableArray<Value*>(2); |
| - args->Add(new (Z) Value(curr_instr->left()->definition())); |
| - args->Add(new (Z) Value(curr_instr->right()->definition())); |
| + other_binop, |
| + TruncDivModInstr::OutputIndexOf(other_binop->op_kind()), kTagged, |
| + kSmiCid); |
| // Replace with TruncDivMod. |
| - MergedMathInstr* div_mod = new (Z) MergedMathInstr( |
| - args, curr_instr->deopt_id(), MergedMathInstr::kTruncDivMod); |
| + TruncDivModInstr* div_mod = new (Z) TruncDivModInstr( |
| + curr_instr->left()->CopyWithType(), |
| + curr_instr->right()->CopyWithType(), curr_instr->deopt_id()); |
| curr_instr->ReplaceWith(div_mod, NULL); |
| other_binop->ReplaceUsesWith(div_mod); |
|
rmacnak
2017/05/18 20:02:45
Aren't these uses already replaced from the Extact
Vyacheslav Egorov (Google)
2017/05/19 08:07:08
This function is a tad funky. ExtractOutput makes
|
| other_binop->RemoveFromGraph(); |