Lines Matching refs:Copy
244 auto &Copy = I.first->second; in trackCopy() local
245 if (!is_contained(Copy.DefRegs, Def)) in trackCopy()
246 Copy.DefRegs.push_back(Def); in trackCopy()
247 Copy.LastSeenUseInCopy = MI; in trackCopy()
419 bool eraseIfRedundant(MachineInstr &Copy, MCRegister Src, MCRegister Def);
422 bool isForwardableRegClassCopy(const MachineInstr &Copy,
424 bool isBackwardPropagatableRegClassCopy(const MachineInstr &Copy,
457 if (MachineInstr *Copy = Tracker.findCopyForUnit(Unit, *TRI)) { in ReadRegister() local
459 LLVM_DEBUG(dbgs() << "MCP: Copy is used - not dead: "; Copy->dump()); in ReadRegister()
460 MaybeDeadCopies.remove(Copy); in ReadRegister()
462 CopyDbgUsers[Copy].insert(&Reader); in ReadRegister()
477 if (MachineInstr *Copy = Tracker.findCopyForUnit(Unit, *TRI)) in readSuccessorLiveIns() local
478 MaybeDeadCopies.remove(Copy); in readSuccessorLiveIns()
509 bool MachineCopyPropagation::eraseIfRedundant(MachineInstr &Copy, in eraseIfRedundant() argument
518 Tracker.findAvailCopy(Copy, Def, *TRI, *TII, UseCopyInstr); in eraseIfRedundant()
529 LLVM_DEBUG(dbgs() << "MCP: copy is a NOP, removing: "; Copy.dump()); in eraseIfRedundant()
534 isCopyInstr(Copy, *TII, UseCopyInstr); in eraseIfRedundant()
540 make_range(PrevCopy->getIterator(), Copy.getIterator())) in eraseIfRedundant()
549 Copy.eraseFromParent(); in eraseIfRedundant()
556 const MachineInstr &Copy, const MachineInstr &UseI, unsigned UseIdx) { in isBackwardPropagatableRegClassCopy() argument
558 isCopyInstr(Copy, *TII, UseCopyInstr); in isBackwardPropagatableRegClassCopy()
573 bool MachineCopyPropagation::isForwardableRegClassCopy(const MachineInstr &Copy, in isForwardableRegClassCopy() argument
577 isCopyInstr(Copy, *TII, UseCopyInstr); in isForwardableRegClassCopy()
700 MachineInstr *Copy = Tracker.findAvailCopy(MI, MOUse.getReg().asMCReg(), in forwardUses() local
702 if (!Copy) in forwardUses()
706 isCopyInstr(*Copy, *TII, UseCopyInstr); in forwardUses()
730 if (!isForwardableRegClassCopy(*Copy, MI, OpIdx)) in forwardUses()
754 << "\n in " << MI << " from " << *Copy); in forwardUses()
766 make_range(Copy->getIterator(), std::next(MI.getIterator()))) in forwardUses()
1011 MachineInstr *Copy = Tracker.findAvailBackwardCopy( in propagateDefs() local
1013 if (!Copy) in propagateDefs()
1017 isCopyInstr(*Copy, *TII, UseCopyInstr); in propagateDefs()
1024 if (!isBackwardPropagatableRegClassCopy(*Copy, MI, OpIdx)) in propagateDefs()
1035 << MI << " from " << *Copy); in propagateDefs()
1041 MaybeDeadCopies.insert(Copy); in propagateDefs()
1101 if (auto *Copy = Tracker.findCopyDefViaUnit(Unit, *TRI)) { in BackwardCopyPropagateBlock() local
1102 CopyDbgUsers[Copy].insert(&MI); in BackwardCopyPropagateBlock()
1113 for (auto *Copy : MaybeDeadCopies) { in BackwardCopyPropagateBlock() local
1115 isCopyInstr(*Copy, *TII, UseCopyInstr); in BackwardCopyPropagateBlock()
1118 SmallVector<MachineInstr *> MaybeDeadDbgUsers(CopyDbgUsers[Copy].begin(), in BackwardCopyPropagateBlock()
1119 CopyDbgUsers[Copy].end()); in BackwardCopyPropagateBlock()
1122 Copy->eraseFromParent(); in BackwardCopyPropagateBlock()