Lines Matching defs:DstReg

128   bool isCopyToReg(MachineInstr &MI, Register &SrcReg, Register &DstReg,
138 bool &IsCopy, Register &DstReg,
179 void scanUses(Register DstReg);
363 Register &DstReg, bool &IsSrcPhys,
366 DstReg = 0;
368 DstReg = MI.getOperand(0).getReg();
371 DstReg = MI.getOperand(0).getReg();
378 IsDstPhys = DstReg.isPhysical();
460 Register SrcReg, DstReg;
463 if (!isCopyToReg(*DefMI, SrcReg, DstReg, IsSrcPhys, IsDstPhys))
471 static bool isTwoAddrUse(MachineInstr &MI, Register Reg, Register &DstReg) {
478 DstReg = MI.getOperand(ti).getReg();
488 Register Reg, MachineBasicBlock *MBB, bool &IsCopy, Register &DstReg,
504 if (isCopyToReg(UseMI, SrcReg, DstReg, IsSrcPhys, IsDstPhys)) {
509 if (isTwoAddrUse(UseMI, Reg, DstReg)) {
510 IsDstPhys = DstReg.isPhysical();
519 isTwoAddrUse(UseMI, MO.getReg(), DstReg)) {
520 IsDstPhys = DstReg.isPhysical();
828 void TwoAddressInstructionImpl::scanUses(Register DstReg) {
833 Register Reg = DstReg;
863 bool isNew = DstRegMap.insert(std::make_pair(DstReg, ToReg)).second;
865 assert(DstRegMap[DstReg] == ToReg && "Can't map to two dst registers!");
886 Register SrcReg, DstReg;
887 if (!isCopyToReg(*MI, SrcReg, DstReg, IsSrcPhys, IsDstPhys))
891 DstRegMap.insert(std::make_pair(SrcReg, DstReg));
893 bool isNew = SrcRegMap.insert(std::make_pair(DstReg, SrcReg)).second;
895 assert(SrcRegMap[DstReg] == SrcReg &&
898 scanUses(DstReg);
946 Register DstReg;
947 if (isTwoAddrUse(*KillMI, Reg, DstReg))
1129 Register DstReg;
1130 if (isTwoAddrUse(*KillMI, Reg, DstReg))
1527 Register DstReg = DstMO.getReg();
1529 if (SrcReg == DstReg)
1536 // Constrain the DstReg register class if required.
1537 if (DstReg.isVirtual()) {
1539 MRI->constrainRegClass(DstReg, RC);
1541 SrcMO.setReg(DstReg);
1889 Register DstReg = mi->getOperand(DstIdx).getReg();
1890 if (SrcReg != DstReg &&
1986 Register DstReg = MI.getOperand(0).getReg();
1994 if (LIS->hasInterval(DstReg)) {
1995 DefVN = LIS->getInterval(DstReg)
2028 .addReg(DstReg, RegState::Define, SubIdx)
2060 if (UndefLanes.any() && DefVN && MRI->shouldTrackSubRegLiveness(DstReg)) {
2061 auto &LI = LIS->getInterval(DstReg);
2062 for (MachineOperand &UseOp : MRI->use_operands(DstReg)) {
2074 LIS->removeInterval(DstReg);