Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:DstReg

131     /// joinCopy - Attempt to join intervals corresponding to SrcReg/DstReg,
175 /// updateRegDefsUses - Replace all defs and uses of SrcReg to DstReg and
176 /// update the subregister number if it is not zero. If DstReg is a
180 void updateRegDefsUses(unsigned SrcReg, unsigned DstReg, unsigned SubIdx);
252 SrcReg = DstReg = 0;
304 // SrcReg will be merged with a sub-register of DstReg.
308 // DstReg will be merged with a sub-register of SrcReg.
320 // Prefer SrcReg to be a sub-register of DstReg.
335 DstReg = Dst;
340 if (TargetRegisterInfo::isPhysicalRegister(DstReg))
342 std::swap(SrcReg, DstReg);
363 // Now check that Dst matches DstReg.
364 if (TargetRegisterInfo::isPhysicalRegister(DstReg)) {
373 return DstReg == Dst;
375 return TRI.getSubReg(DstReg, SrcSub) == Dst;
377 // DstReg is virtual.
378 if (DstReg != Dst)
736 unsigned DstReg = CP.isFlipped() ? CP.getSrcReg() : CP.getDstReg();
780 if (TargetRegisterInfo::isPhysicalRegister(DstReg)) {
781 unsigned NewDstReg = DstReg;
786 NewDstReg = TRI->getSubReg(DstReg, NewDstIdx);
795 assert(TargetRegisterInfo::isVirtualRegister(DstReg) &&
803 TII->reMaterialize(*MBB, MII, DstReg, SrcIdx, DefMI, *TRI);
824 if (TargetRegisterInfo::isVirtualRegister(DstReg)) {
834 MRI->setRegClass(DstReg, NewRC);
836 updateRegDefsUses(DstReg, DstReg, DstIdx);
841 assert(TargetRegisterInfo::isPhysicalRegister(DstReg) &&
947 /// updateRegDefsUses - Replace all defs and uses of SrcReg to DstReg and
948 /// update the subregister number if it is not zero. If DstReg is a
953 unsigned DstReg,
955 bool DstIsPhys = TargetRegisterInfo::isPhysicalRegister(DstReg);
956 LiveInterval *DstInt = DstIsPhys ? nullptr : &LIS->getInterval(DstReg);
965 // composition is not always idempotent. When SrcReg != DstReg, rewriting
967 // SrcReg is DstReg we could encounter UseMI twice if it has multiple
969 if (SrcReg == DstReg && !Visited.insert(UseMI))
976 // If SrcReg wasn't read, it may still be the case that DstReg is live-in
981 // Replace SrcReg with DstReg in all UseMI operands.
992 MO.substPhysReg(DstReg, *TRI);
994 MO.substVirtReg(DstReg, SubIdx, *TRI);
1024 /// joinCopy - Attempt to join intervals corresponding to SrcReg/DstReg,
1106 // When possible, let DstReg be the larger interval.
1151 // Make sure we attempt to inflate the register class of DstReg.
1160 // Rewrite all SrcReg operands to DstReg.
1161 // Also update DstReg operands to include DstIdx if it is set.
1197 // reserved physreg if RHS has a single value that is a copy of CP.DstReg().
1242 // identity copy after joining SrcReg and DstReg. The copy instruction will
1342 // DstReg.
2090 unsigned DstReg = Copy->getOperand(0).getReg();
2092 || TargetRegisterInfo::isPhysicalRegister(DstReg))
2096 || LIS->intervalIsInOneMBB(LIS->getInterval(DstReg));