Lines Matching defs:Src

147       auto Src = TRI.regunits(CopyOperands->Source->getReg().asMCReg());
149 RegUnitsToInvalidate.insert(Src.begin(), Src.end());
181 MCRegister Src = CopyOperands->Source->getReg().asMCReg();
185 // Since we clobber the destination of a copy, the semantic of Src's
187 // to remove the record from the copy maps that indicates Src defined
197 for (MCRegUnit SrcUnit : TRI.regunits(Src)) {
208 // entries solely record the Def is defined by Src. If an
233 MCRegister Src = CopyOperands->Source->getReg().asMCReg();
242 for (MCRegUnit Unit : TRI.regunits(Src)) {
419 bool eraseIfRedundant(MachineInstr &Copy, MCRegister Src, MCRegister Def);
484 /// Return true if \p PreviousCopy did copy register \p Src to register \p Def.
486 /// all even though Src and Def are subregisters of the registers used in
490 static bool isNopCopy(const MachineInstr &PreviousCopy, MCRegister Src,
498 if (Src == PreviousSrc && Def == PreviousDef)
500 if (!TRI->isSubRegister(PreviousSrc, Src))
502 unsigned SubIdx = TRI->getSubRegIndex(PreviousSrc, Src);
507 /// register \p Src to the register \p Def; This may happen indirectly by
510 MCRegister Src, MCRegister Def) {
513 if (MRI->isReserved(Src) || MRI->isReserved(Def))
526 if (!isNopCopy(*PrevCopy, Src, Def, TRI, TII, UseCopyInstr))
531 // Copy was redundantly redefining either Src or Def. Remove earlier kill
538 assert(CopyDef == Src || CopyDef == Def);
792 MCRegister Src = RegSrc.asMCReg();
809 if (eraseIfRedundant(MI, Def, Src) || eraseIfRedundant(MI, Src, Def))
814 // Src may have been changed by forwardUses()
816 Src = CopyOperands->Source->getReg().asMCReg();
818 // If Src is defined by a previous copy, the previous copy cannot be
820 ReadRegister(Src, MI, RegularUse);
978 Register Src = CopyOperands.Source->getReg();
980 if (!Def || !Src)
983 if (MRI.isReserved(Def) || MRI.isReserved(Src))
1019 Register Src = CopyOperands->Source->getReg();
1021 if (MODef.getReg() != Src)
1116 Register Src = CopyOperands->Source->getReg();
1121 MRI->updateDbgUsersToReg(Src.asMCReg(), Def.asMCReg(), MaybeDeadDbgUsers);
1172 // the COPY defines the Src of the reload COPY backward. If such pair is found,
1220 auto CheckCopyConstraint = [this](Register Def, Register Src) {
1222 if (RC->contains(Def) && RC->contains(Src))
1271 Register Src = CopyOperands->Source->getReg();
1273 return Src && Def && !TRI->regsOverlap(Src, Def) &&
1346 Register Src = CopyOperands->Source->getReg();
1352 Tracker.findLastSeenDefInCopy(MI, Src.asMCReg(), *TRI, *TII, UseCopyInstr);
1418 // The COPY defines Src is no longer considered as a candidate of a
1432 Tracker.clobberRegister(Src.asMCReg(), *TRI, *TII, UseCopyInstr);
1433 LLVM_DEBUG(dbgs() << "MCP: Removed tracking of " << printReg(Src, TRI)