| Index: src/compiler/control-reducer.cc
 | 
| diff --git a/src/compiler/control-reducer.cc b/src/compiler/control-reducer.cc
 | 
| index b5acbb23e7abb6e19d509f6996b37e7930102823..f01dcd721e8e2f3b459ddd216835c3333d156942 100644
 | 
| --- a/src/compiler/control-reducer.cc
 | 
| +++ b/src/compiler/control-reducer.cc
 | 
| @@ -215,15 +215,14 @@ class ControlReducerImpl {
 | 
|      // Remove dead->live edges.
 | 
|      for (size_t j = 0; j < nodes.size(); j++) {
 | 
|        Node* node = nodes[j];
 | 
| -      for (UseIter i = node->uses().begin(); i != node->uses().end();) {
 | 
| -        size_t id = static_cast<size_t>((*i)->id());
 | 
| +      for (Edge edge : node->use_edges()) {
 | 
| +        Node* use = edge.from();
 | 
| +        size_t id = static_cast<size_t>(use->id());
 | 
|          if (state_[id] != kVisited) {
 | 
| -          TRACE(("DeadLink: #%d:%s(%d) -> #%d:%s\n", (*i)->id(),
 | 
| -                 (*i)->op()->mnemonic(), i.index(), node->id(),
 | 
| +          TRACE(("DeadLink: #%d:%s(%d) -> #%d:%s\n", use->id(),
 | 
| +                 use->op()->mnemonic(), edge.index(), node->id(),
 | 
|                   node->op()->mnemonic()));
 | 
| -          i.UpdateToAndIncrement(NULL);
 | 
| -        } else {
 | 
| -          ++i;
 | 
| +          edge.UpdateTo(NULL);
 | 
|          }
 | 
|        }
 | 
|      }
 | 
| @@ -453,18 +452,16 @@ class ControlReducerImpl {
 | 
|  
 | 
|      // Replace IfTrue and IfFalse projections from this branch.
 | 
|      Node* control = NodeProperties::GetControlInput(node);
 | 
| -    for (UseIter i = node->uses().begin(); i != node->uses().end();) {
 | 
| -      Node* to = *i;
 | 
| -      if (to->opcode() == IrOpcode::kIfTrue) {
 | 
| -        TRACE(("  IfTrue: #%d:%s\n", to->id(), to->op()->mnemonic()));
 | 
| -        i.UpdateToAndIncrement(NULL);
 | 
| -        ReplaceNode(to, (result == kTrue) ? control : dead());
 | 
| -      } else if (to->opcode() == IrOpcode::kIfFalse) {
 | 
| -        TRACE(("  IfFalse: #%d:%s\n", to->id(), to->op()->mnemonic()));
 | 
| -        i.UpdateToAndIncrement(NULL);
 | 
| -        ReplaceNode(to, (result == kTrue) ? dead() : control);
 | 
| -      } else {
 | 
| -        ++i;
 | 
| +    for (Edge edge : node->use_edges()) {
 | 
| +      Node* use = edge.from();
 | 
| +      if (use->opcode() == IrOpcode::kIfTrue) {
 | 
| +        TRACE(("  IfTrue: #%d:%s\n", use->id(), use->op()->mnemonic()));
 | 
| +        edge.UpdateTo(NULL);
 | 
| +        ReplaceNode(use, (result == kTrue) ? control : dead());
 | 
| +      } else if (use->opcode() == IrOpcode::kIfFalse) {
 | 
| +        TRACE(("  IfFalse: #%d:%s\n", use->id(), use->op()->mnemonic()));
 | 
| +        edge.UpdateTo(NULL);
 | 
| +        ReplaceNode(use, (result == kTrue) ? dead() : control);
 | 
|        }
 | 
|      }
 | 
|      return control;
 | 
| 
 |