| Index: src/compiler/osr.cc
|
| diff --git a/src/compiler/osr.cc b/src/compiler/osr.cc
|
| index d8ccc79c9fd89ca06a11459f281a8166958ccf26..81b97bb6295f8ea7b89c6f4d797d5b9284e5d19f 100644
|
| --- a/src/compiler/osr.cc
|
| +++ b/src/compiler/osr.cc
|
| @@ -228,20 +228,15 @@ static void PeelOuterLoopsForOsr(Graph* graph, CommonOperatorBuilder* common,
|
| }
|
|
|
| // Merge the ends of the graph copies.
|
| - Node* end = graph->end();
|
| - tmp_inputs.clear();
|
| - for (int i = -1; i < static_cast<int>(copies.size()); i++) {
|
| - Node* input = end->InputAt(0);
|
| - if (i >= 0) input = copies[i]->at(input->id());
|
| - if (input->opcode() == IrOpcode::kMerge) {
|
| - for (Node* node : input->inputs()) tmp_inputs.push_back(node);
|
| - } else {
|
| - tmp_inputs.push_back(input);
|
| + Node* const end = graph->end();
|
| + int const input_count = end->InputCount();
|
| + for (int i = 0; i < input_count; ++i) {
|
| + NodeId const id = end->InputAt(i)->id();
|
| + for (NodeVector* const copy : copies) {
|
| + end->AppendInput(graph->zone(), copy->at(id));
|
| + end->set_op(common->End(end->InputCount()));
|
| }
|
| }
|
| - int count = static_cast<int>(tmp_inputs.size());
|
| - Node* merge = graph->NewNode(common->Merge(count), count, &tmp_inputs[0]);
|
| - end->ReplaceInput(0, merge);
|
|
|
| if (FLAG_trace_turbo_graph) { // Simple textual RPO.
|
| OFStream os(stdout);
|
|
|