Lines Matching defs:Def
206 MCRegister Def = CopyOperands->Destination->getReg().asMCReg();
209 markRegsUnavailable(Def, TRI);
212 // "DefRegs" to contain Def is no longer effectual. We will also need
214 // Def. Failing to do so might cause the target to miss some
227 // to erase the record for Def in DefRegs.
230 if (*itr == Def) {
234 // entries solely record the Def is defined by Src. If an
235 // entry also contains the definition record of other Def'
304 MCRegister Def = CopyOperands->Destination->getReg().asMCReg();
306 // Remember Def is defined by the copy.
307 for (MCRegUnit Unit : TRI.regunits(Def))
310 // Remember source that's copied to Def. Once it's clobbered, then
314 if (!is_contained(Copy.DefRegs, Def))
315 Copy.DefRegs.push_back(Def);
419 Register Def = CopyOperands->Destination->getReg();
420 if (!TRI.isSubRegisterEq(Def, Reg))
428 if (MO.clobbersPhysReg(Def)) {
430 << printReg(Def, &TRI) << "\n");
488 bool eraseIfRedundant(MachineInstr &Copy, MCRegister Src, MCRegister Def);
498 const MachineOperand &MODef, Register Def);
555 /// Return true if \p PreviousCopy did copy register \p Src to register \p Def.
557 /// all even though Src and Def are subregisters of the registers used in
562 MCRegister Def, const TargetRegisterInfo *TRI,
569 if (Src == PreviousSrc && Def == PreviousDef)
574 return SubIdx == TRI->getSubRegIndex(PreviousDef, Def);
578 /// register \p Src to the register \p Def; This may happen indirectly by
581 MCRegister Src, MCRegister Def) {
584 if (MRI->isReserved(Src) || MRI->isReserved(Def))
589 Tracker.findAvailCopy(Copy, Def, *TRI, *TII, UseCopyInstr);
597 if (!isNopCopy(*PrevCopy, Src, Def, TRI, TII, UseCopyInstr))
602 // Copy was redundantly redefining either Src or Def. Remove earlier kill
609 assert(CopyDef == Src || CopyDef == Def);
630 Register Def = CopyOperands->Destination->getReg();
634 return URC->contains(Def);
731 const MachineInstr &MI, const MachineOperand &MODef, Register Def) {
734 TRI->regsOverlap(Def, MIDef.getReg()))
883 MCRegister Def = RegDef.asMCReg();
901 if (eraseIfRedundant(MI, Def, Src) || eraseIfRedundant(MI, Src, Def))
925 if (!MRI->isReserved(Def))
928 // If 'Def' is previously source of another copy, then this earlier copy's
935 Tracker.clobberRegister(Def, *TRI, *TII, UseCopyInstr);
1077 Register Def = CopyOperands.Destination->getReg();
1080 if (!Def || !Src)
1083 if (MRI.isReserved(Def) || MRI.isReserved(Src))
1118 Register Def = CopyOperands->Destination->getReg();
1130 if (hasOverlappingMultipleDef(MI, MODef, Def))
1137 << "\n with " << printReg(Def, TRI) << "\n in "
1140 MODef.setReg(Def);
1147 MO.setReg(Def);
1231 Register Def = CopyOperands->Destination->getReg();
1235 MRI->updateDbgUsersToReg(Src.asMCReg(), Def.asMCReg(), MaybeDeadDbgUsers);
1277 // property#1: No Def of spill COPY in the chain is used or defined until the
1278 // paired reload COPY in the chain uses the Def.
1288 // last available COPY uses the Def of the reload COPY.
1334 auto CheckCopyConstraint = [this](Register Def, Register Src) {
1336 if (RC->contains(Def) && RC->contains(Src))
1386 Register Def = CopyOperands->Destination->getReg();
1387 return Src && Def && !TRI->regsOverlap(Src, Def) &&
1461 Register Def = CopyOperands->Destination->getReg();
1505 Tracker.findLastSeenUseInCopy(Def.asMCReg(), *TRI);
1533 // valid chain. Since we expect the Def of a spill copy isn't used by