Index: src/compiler/js-inlining.cc |
diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc |
index ec6ab90584c6260e9c8f5a697f57d2ea60a0cfbd..d143382dfd047a71ce3f868e92f308bd57f63d4c 100644 |
--- a/src/compiler/js-inlining.cc |
+++ b/src/compiler/js-inlining.cc |
@@ -126,19 +126,17 @@ void Inlinee::UnifyReturn(JSGraph* jsgraph) { |
NodeVector effects(jsgraph->zone()); |
// Iterate over all control flow predecessors, |
// which must be return statements. |
- InputIter iter = final_merge->inputs().begin(); |
- while (iter != final_merge->inputs().end()) { |
- Node* input = *iter; |
+ for (Edge edge : final_merge->input_edges()) { |
+ Node* input = edge.to(); |
switch (input->opcode()) { |
case IrOpcode::kReturn: |
values.push_back(NodeProperties::GetValueInput(input, 0)); |
effects.push_back(NodeProperties::GetEffectInput(input)); |
- iter.UpdateToAndIncrement(NodeProperties::GetControlInput(input)); |
+ edge.UpdateTo(NodeProperties::GetControlInput(input)); |
input->RemoveAllInputs(); |
break; |
default: |
UNREACHABLE(); |
- ++iter; |
break; |
} |
} |
@@ -167,9 +165,8 @@ class CopyVisitor : public NullNodeVisitor { |
void Post(Node* original) { |
NodeVector inputs(temp_zone_); |
- for (InputIter it = original->inputs().begin(); |
- it != original->inputs().end(); ++it) { |
- inputs.push_back(GetCopy(*it)); |
+ for (Node* const node : original->inputs()) { |
+ inputs.push_back(GetCopy(node)); |
} |
// Reuse the operator in the copy. This assumes that op lives in a zone |
@@ -242,35 +239,33 @@ void Inlinee::InlineAtCall(JSGraph* jsgraph, Node* call) { |
// context, effect, control. |
int inliner_inputs = call->op()->ValueInputCount(); |
// Iterate over all uses of the start node. |
- UseIter iter = start_->uses().begin(); |
- while (iter != start_->uses().end()) { |
- Node* use = *iter; |
+ for (Edge edge : start_->use_edges()) { |
+ Node* use = edge.from(); |
switch (use->opcode()) { |
case IrOpcode::kParameter: { |
int index = 1 + OpParameter<int>(use->op()); |
if (index < inliner_inputs && index < inlinee_context_index) { |
// There is an input from the call, and the index is a value |
// projection but not the context, so rewire the input. |
- NodeProperties::ReplaceWithValue(*iter, call->InputAt(index)); |
+ NodeProperties::ReplaceWithValue(use, call->InputAt(index)); |
} else if (index == inlinee_context_index) { |
// This is the context projection, rewire it to the context from the |
// JSFunction object. |
- NodeProperties::ReplaceWithValue(*iter, context); |
+ NodeProperties::ReplaceWithValue(use, context); |
} else if (index < inlinee_context_index) { |
// Call has fewer arguments than required, fill with undefined. |
- NodeProperties::ReplaceWithValue(*iter, jsgraph->UndefinedConstant()); |
+ NodeProperties::ReplaceWithValue(use, jsgraph->UndefinedConstant()); |
} else { |
// We got too many arguments, discard for now. |
// TODO(sigurds): Fix to treat arguments array correctly. |
} |
- ++iter; |
break; |
} |
default: |
- if (NodeProperties::IsEffectEdge(iter.edge())) { |
- iter.UpdateToAndIncrement(context); |
- } else if (NodeProperties::IsControlEdge(iter.edge())) { |
- iter.UpdateToAndIncrement(control); |
+ if (NodeProperties::IsEffectEdge(edge)) { |
+ edge.UpdateTo(context); |
+ } else if (NodeProperties::IsControlEdge(edge)) { |
+ edge.UpdateTo(control); |
} else { |
UNREACHABLE(); |
} |
@@ -455,9 +450,8 @@ class JSCallRuntimeAccessor { |
NodeVector inputs(Zone* zone) const { |
NodeVector inputs(zone); |
- for (InputIter it = call_->inputs().begin(); it != call_->inputs().end(); |
- ++it) { |
- inputs.push_back(*it); |
+ for (Node* const node : call_->inputs()) { |
+ inputs.push_back(node); |
} |
return inputs; |
} |