Lines Matching refs:Copy

134       auto &Copy = I.first->second;  in trackCopy()  local
135 if (!is_contained(Copy.DefRegs, Def)) in trackCopy()
136 Copy.DefRegs.push_back(Def); in trackCopy()
212 bool eraseIfRedundant(MachineInstr &Copy, unsigned Src, unsigned Def);
214 bool isForwardableRegClassCopy(const MachineInstr &Copy,
239 if (MachineInstr *Copy = Tracker.findCopyForUnit(*RUI, *TRI)) { in ReadRegister() local
240 LLVM_DEBUG(dbgs() << "MCP: Copy is used - not dead: "; Copy->dump()); in ReadRegister()
241 MaybeDeadCopies.remove(Copy); in ReadRegister()
269 bool MachineCopyPropagation::eraseIfRedundant(MachineInstr &Copy, unsigned Src, in eraseIfRedundant() argument
277 MachineInstr *PrevCopy = Tracker.findAvailCopy(Copy, Def, *TRI); in eraseIfRedundant()
287 LLVM_DEBUG(dbgs() << "MCP: copy is a NOP, removing: "; Copy.dump()); in eraseIfRedundant()
291 assert(Copy.isCopy()); in eraseIfRedundant()
292 unsigned CopyDef = Copy.getOperand(0).getReg(); in eraseIfRedundant()
295 make_range(PrevCopy->getIterator(), Copy.getIterator())) in eraseIfRedundant()
298 Copy.eraseFromParent(); in eraseIfRedundant()
307 bool MachineCopyPropagation::isForwardableRegClassCopy(const MachineInstr &Copy, in isForwardableRegClassCopy() argument
311 unsigned CopySrcReg = Copy.getOperand(1).getReg(); in isForwardableRegClassCopy()
398 MachineInstr *Copy = Tracker.findAvailCopy(MI, MOUse.getReg(), *TRI); in forwardUses() local
399 if (!Copy) in forwardUses()
402 unsigned CopyDstReg = Copy->getOperand(0).getReg(); in forwardUses()
403 const MachineOperand &CopySrc = Copy->getOperand(1); in forwardUses()
418 if (!isForwardableRegClassCopy(*Copy, MI, OpIdx)) in forwardUses()
432 << "\n in " << MI << " from " << *Copy); in forwardUses()
442 make_range(Copy->getIterator(), std::next(MI.getIterator()))) in forwardUses()