Lines Matching full:move
52 LMoveOperands move = moves_[i];
56 if (!move.IsEliminated() && !move.source()->IsConstantOperand()) {
76 // moves to perform, ignoring any move that is redundant (the source is
78 // unallocated, or the move was already eliminated).
81 LMoveOperands move = moves->at(i);
82 if (!move.IsRedundant()) AddMove(move);
89 // Each call to this function performs a move and deletes it from the move
90 // graph. We first recursively perform any move blocking this one. We
91 // mark a move as "pending" on entry to PerformMove in order to detect
92 // cycles in the move graph. We use operand swaps to resolve cycles,
94 // in the move graph.
99 // Clear this move's destination to indicate a pending move. The actual
105 // Perform a depth-first traversal of the move graph to resolve
106 // dependencies. Any unperformed, unpending move with a source the same
112 // Though PerformMove can change any source operand in the move graph,
113 // this call cannot create a blocking move via a swap (this loop does
114 // not miss any). Assume there is a non-blocking move with source A
115 // and this move is blocked on source B and there is a swap of A and
117 // not be swapped). Since this move's destination is B and there is
118 // only a single incoming edge to an operand, this move must also be
119 // involved in the same cycle. In that case, the blocking move will
125 // We are about to resolve this move and don't need it marked as
129 // This move's source may have changed due to swaps to resolve cycles and
130 // so it may now be the last move in the cycle. If so remove it.
136 // The move may be blocked on a (at most one) pending move, in which case
137 // we have a cycle. Search for such a blocking move and perform a swap to
148 // This move is not blocked.
153 void LGapResolver::AddMove(LMoveOperands move) {
154 LOperand* source = move.source();
157 LOperand* destination = move.destination();
160 moves_.Add(move);
217 // No operand should be the destination for more than one move.
257 // 3. Prefer to spill a register that is not used in any remaining move
455 // The swap of source and destination has executed a move from source to
459 // Any unperformed (including pending) move with a source of either
460 // this move's source or destination needs to have their source