Lines Matching refs:move
5 #include "src/compiler/backend/move-optimizer.h"
117 for (MoveOperands* move : *moves) {
118 if (!move->IsRedundant()) return i;
119 move->Eliminate();
121 moves->clear(); // Clear this redundant move.
191 for (MoveOperands* move : *moves) {
192 if (outputs.ContainsOpOrAlias(move->destination()) &&
193 !inputs.ContainsOpOrAlias(move->destination())) {
194 move->Eliminate();
201 for (MoveOperands* move : *moves) {
202 if (!inputs.ContainsOpOrAlias(move->destination())) {
203 move->Eliminate();
218 // If an operand is an input to the instruction, we cannot move assignments
223 // If an operand is output to the instruction, we cannot move assignments
235 for (MoveOperands* move : *from_moves) {
236 if (move->IsRedundant()) continue;
237 // Assume dest has a value "V". If we have a "dest = y" move, then we can't
238 // move "z = dest", because z would become y rather than "V".
241 src_cant_be.InsertOp(move->destination());
247 for (MoveOperands* move : *from_moves) {
248 if (move->IsRedundant()) continue;
249 if (!dst_cant_be.ContainsOpOrAlias(move->destination())) {
250 MoveKey key = {move->source(), move->destination()};
273 for (MoveOperands* move : *from_moves) {
274 if (move->IsRedundant()) continue;
275 MoveKey key = {move->source(), move->destination()};
277 to_move.AddMove(move->source(), move->destination(), code_zone());
278 move->Eliminate();
302 for (MoveOperands* move : *right) {
303 if (move->IsRedundant()) continue;
304 left->PrepareInsertAfter(move, &eliminated);
313 for (MoveOperands* move : *right) {
314 if (move->IsRedundant()) continue;
315 left->push_back(move);
381 // move down to this block (one of the successors) any of the gap moves,
406 for (const MoveOperands* move : *instr->parallel_moves()[0]) {
407 if (move->IsRedundant()) continue;
408 InstructionOperand src = move->source();
409 InstructionOperand dst = move->destination();
435 // there are such moves, we could move them, but the destination of the
436 // moves staying behind can't appear as a source of a common move,
437 // because the move staying behind will clobber this destination.
445 // If a common move can't be pushed to the common successor, then its
446 // destination also can't appear as source to any move being pushed.
473 // Delete relevant entries in predecessors and move everything to block.
477 for (MoveOperands* move : *LastInstruction(pred)->parallel_moves()[0]) {
478 if (move->IsRedundant()) continue;
479 MoveKey key = {move->source(), move->destination()};
483 moves->AddMove(move->source(), move->destination());
485 move->Eliminate();
523 for (MoveOperands* move : *parallel_moves) {
524 if (move->IsRedundant()) continue;
525 if (move->source().IsConstant() || IsSlot(move->source())) {
526 loads.push_back(move);
543 // Insert new move into slot 1.