14  if (node->opcode() != IrOpcode::kLoop) 
return NoChange();
 
   15  if (node->InputCount() <= 2) 
return NoChange();
 
   18                                              node->InputAt(0), node);
 
   24  for (
Edge edge : node->use_edges()) {
 
   25    Node* use = edge.from();
 
   33        use, use->opcode() == IrOpcode::kPhi
 
   35                                           use->InputCount() - 1)
 
   39        use->opcode() == IrOpcode::kPhi
 
   42        dominating_input, use, new_loop);
 
   49  for (
Edge edge : control_uses) {
 
   50    if (edge.from() != new_loop) {
 
   51      edge.from()->ReplaceInput(edge.index(), new_loop);
 
 
void emplace_back(Args &&... args)
 
void ReplaceWithValue(Node *node, Node *value, Node *effect=nullptr, Node *control=nullptr)
 
const Operator * Phi(MachineRepresentation representation, int value_input_count)
 
const Operator * Loop(int control_input_count)
 
const Operator * EffectPhi(int effect_input_count)
 
const Operator * Merge(int control_input_count)
 
CommonOperatorBuilder * common() const
 
static void ChangeOp(Node *node, const Operator *new_op)
 
static bool IsPhi(Node *node)
 
void ReplaceInput(int index, Node *new_to)
 
Node * InputAt(int index) const
 
Node * RemoveInput(int index)
 
static Reduction NoChange()
 
MachineGraph *const mcgraph_
 
Reduction Reduce(Node *node) final
 
Node * NewNode(const Operator *op, int input_count, Node *const *inputs, bool incomplete=false)
 
MachineRepresentation PhiRepresentationOf(const Operator *const op)