Lines Matching refs:Def

180           MCRegister Def = CopyOperands->Destination->getReg().asMCReg();
183 markRegsUnavailable(Def, TRI);
186 // "DefRegs" to contain Def is no longer effectual. We will also need
188 // Def. Failing to do so might cause the target to miss some
201 // to erase the record for Def in DefRegs.
204 if (*itr == Def) {
208 // entries solely record the Def is defined by Src. If an
209 // entry also contains the definition record of other Def'
234 MCRegister Def = CopyOperands->Destination->getReg().asMCReg();
236 // Remember Def is defined by the copy.
237 for (MCRegUnit Unit : TRI.regunits(Def))
240 // Remember source that's copied to Def. Once it's clobbered, then
245 if (!is_contained(Copy.DefRegs, Def))
246 Copy.DefRegs.push_back(Def);
350 Register Def = CopyOperands->Destination->getReg();
351 if (!TRI.isSubRegisterEq(Def, Reg))
359 if (MO.clobbersPhysReg(Def)) {
361 << printReg(Def, &TRI) << "\n");
419 bool eraseIfRedundant(MachineInstr &Copy, MCRegister Src, MCRegister Def);
429 const MachineOperand &MODef, Register 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
491 MCRegister Def, const TargetRegisterInfo *TRI,
498 if (Src == PreviousSrc && Def == PreviousDef)
503 return SubIdx == TRI->getSubRegIndex(PreviousDef, Def);
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))
518 Tracker.findAvailCopy(Copy, Def, *TRI, *TII, UseCopyInstr);
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);
559 Register Def = CopyOperands->Destination->getReg();
563 return URC->contains(Def);
660 const MachineInstr &MI, const MachineOperand &MODef, Register Def) {
663 TRI->regsOverlap(Def, MIDef.getReg()))
791 MCRegister Def = RegDef.asMCReg();
809 if (eraseIfRedundant(MI, Def, Src) || eraseIfRedundant(MI, Src, Def))
833 if (!MRI->isReserved(Def))
836 // If 'Def' is previously source of another copy, then this earlier copy's
843 Tracker.clobberRegister(Def, *TRI, *TII, UseCopyInstr);
977 Register Def = CopyOperands.Destination->getReg();
980 if (!Def || !Src)
983 if (MRI.isReserved(Def) || MRI.isReserved(Src))
1018 Register Def = CopyOperands->Destination->getReg();
1030 if (hasOverlappingMultipleDef(MI, MODef, Def))
1034 << "\n with " << printReg(Def, TRI) << "\n in "
1037 MODef.setReg(Def);
1117 Register Def = CopyOperands->Destination->getReg();
1121 MRI->updateDbgUsersToReg(Src.asMCReg(), Def.asMCReg(), MaybeDeadDbgUsers);
1163 // property#1: No Def of spill COPY in the chain is used or defined until the
1164 // paired reload COPY in the chain uses the Def.
1174 // last available COPY uses the Def of the reload COPY.
1220 auto CheckCopyConstraint = [this](Register Def, Register Src) {
1222 if (RC->contains(Def) && RC->contains(Src))
1272 Register Def = CopyOperands->Destination->getReg();
1273 return Src && Def && !TRI->regsOverlap(Src, Def) &&
1347 Register Def = CopyOperands->Destination->getReg();
1391 Tracker.findLastSeenUseInCopy(Def.asMCReg(), *TRI);
1419 // valid chain. Since we expect the Def of a spill copy isn't used by