Lines Matching refs:Copy

243       auto &Copy = I.first->second;  in trackCopy()  local
244 if (!is_contained(Copy.DefRegs, Def)) in trackCopy()
245 Copy.DefRegs.push_back(Def); in trackCopy()
246 Copy.LastSeenUseInCopy = MI; in trackCopy()
417 bool eraseIfRedundant(MachineInstr &Copy, MCRegister Src, MCRegister Def);
420 bool isForwardableRegClassCopy(const MachineInstr &Copy,
422 bool isBackwardPropagatableRegClassCopy(const MachineInstr &Copy,
455 if (MachineInstr *Copy = Tracker.findCopyForUnit(Unit, *TRI)) { in ReadRegister() local
457 LLVM_DEBUG(dbgs() << "MCP: Copy is used - not dead: "; Copy->dump()); in ReadRegister()
458 MaybeDeadCopies.remove(Copy); in ReadRegister()
460 CopyDbgUsers[Copy].insert(&Reader); in ReadRegister()
491 bool MachineCopyPropagation::eraseIfRedundant(MachineInstr &Copy, in eraseIfRedundant() argument
500 Tracker.findAvailCopy(Copy, Def, *TRI, *TII, UseCopyInstr); in eraseIfRedundant()
511 LLVM_DEBUG(dbgs() << "MCP: copy is a NOP, removing: "; Copy.dump()); in eraseIfRedundant()
516 isCopyInstr(Copy, *TII, UseCopyInstr); in eraseIfRedundant()
522 make_range(PrevCopy->getIterator(), Copy.getIterator())) in eraseIfRedundant()
531 Copy.eraseFromParent(); in eraseIfRedundant()
538 const MachineInstr &Copy, const MachineInstr &UseI, unsigned UseIdx) { in isBackwardPropagatableRegClassCopy() argument
540 isCopyInstr(Copy, *TII, UseCopyInstr); in isBackwardPropagatableRegClassCopy()
555 bool MachineCopyPropagation::isForwardableRegClassCopy(const MachineInstr &Copy, in isForwardableRegClassCopy() argument
559 isCopyInstr(Copy, *TII, UseCopyInstr); in isForwardableRegClassCopy()
682 MachineInstr *Copy = Tracker.findAvailCopy(MI, MOUse.getReg().asMCReg(), in forwardUses() local
684 if (!Copy) in forwardUses()
688 isCopyInstr(*Copy, *TII, UseCopyInstr); in forwardUses()
712 if (!isForwardableRegClassCopy(*Copy, MI, OpIdx)) in forwardUses()
736 << "\n in " << MI << " from " << *Copy); in forwardUses()
748 make_range(Copy->getIterator(), std::next(MI.getIterator()))) in forwardUses()
987 MachineInstr *Copy = Tracker.findAvailBackwardCopy( in propagateDefs() local
989 if (!Copy) in propagateDefs()
993 isCopyInstr(*Copy, *TII, UseCopyInstr); in propagateDefs()
1000 if (!isBackwardPropagatableRegClassCopy(*Copy, MI, OpIdx)) in propagateDefs()
1011 << MI << " from " << *Copy); in propagateDefs()
1017 MaybeDeadCopies.insert(Copy); in propagateDefs()
1077 if (auto *Copy = Tracker.findCopyDefViaUnit(Unit, *TRI)) { in BackwardCopyPropagateBlock() local
1078 CopyDbgUsers[Copy].insert(&MI); in BackwardCopyPropagateBlock()
1089 for (auto *Copy : MaybeDeadCopies) { in BackwardCopyPropagateBlock() local
1091 isCopyInstr(*Copy, *TII, UseCopyInstr); in BackwardCopyPropagateBlock()
1094 SmallVector<MachineInstr *> MaybeDeadDbgUsers(CopyDbgUsers[Copy].begin(), in BackwardCopyPropagateBlock()
1095 CopyDbgUsers[Copy].end()); in BackwardCopyPropagateBlock()
1098 Copy->eraseFromParent(); in BackwardCopyPropagateBlock()