Lines Matching defs:RDA

272     bool hasImplicitlyValidVPT(VPTBlock &Block, ReachingDefAnalysis &RDA) {
292 MachineInstr *Op = RDA.getMIOperand(MI, MI->getOperand(Idx));
302 RDA.getGlobalReachingDefs(MI, MO.getReg(), Defs);
319 bool isValid(ReachingDefAnalysis &RDA) {
329 if (hasImplicitlyValidVPT(Block, RDA))
366 ReachingDefAnalysis &RDA;
386 ReachingDefAnalysis &RDA, const TargetRegisterInfo &TRI,
388 : ML(ML), MLI(MLI), RDA(RDA), TRI(TRI), TII(TII),
471 ReachingDefAnalysis *RDA = nullptr;
530 static bool TryRemove(MachineInstr *MI, ReachingDefAnalysis &RDA,
535 auto WontCorruptITs = [](InstSet &Killed, ReachingDefAnalysis &RDA) {
547 RDA.getReachingLocalUses(&IT, MCRegister::from(ARM::ITSTATE),
559 MachineInstr *IT = RDA.getMIOperand(Dead, *MO);
576 if (!RDA.isSafeToRemove(MI, Uses, Ignore))
579 if (WontCorruptITs(Uses, RDA)) {
587 RDA.collectKilledOperands(MI, Killed);
588 if (WontCorruptITs(Killed, RDA)) {
615 if (!VPTstate.isValid(RDA)) {
642 if (RDA.hasLocalDefBefore(VCTP, NumElements)) {
652 !RDA.isReachingDefLiveOut(&*StartInsertPt, NumElements)) {
654 RDA.getLocalLiveOutMIDef(StartInsertBB, NumElements)) {
655 if (RDA.isSafeToMoveForwards(ElemDef, &*StartInsertPt)) {
660 } else if (RDA.isSafeToMoveBackwards(&*StartInsertPt, ElemDef)) {
671 RDA.getUniqueReachingMIDef(ElemDef, Operand.getReg().asMCReg()) ==
672 RDA.getUniqueReachingMIDef(&*StartInsertPt,
694 if (RDA.hasLocalDefBefore(&MBB->back(), NumElements))
756 if (auto *Def = RDA.getUniqueReachingMIDef(
764 if (TryRemove(Def, RDA, ElementChain, Ignore)) {
794 !RDA.hasLocalDefBefore(VCTP, VCTP->getOperand(1).getReg())) {
795 if (auto *Def = RDA.getUniqueReachingMIDef(
799 TryRemove(Def, RDA, ToRemove, Ignore);
864 const ReachingDefAnalysis &RDA,
897 RDA.getGlobalReachingDefs(&MI, MO.getReg(), Defs);
955 if (producesFalseLanesZero(MI, QPRs, RDA, FalseLanesZero))
981 RDA.getGlobalUses(MI, MO.getReg().asMCReg(), Uses);
1028 if (auto *MI = RDA.getLocalLiveOutMIDef(Header, RegMask.PhysReg))
1045 RDA.getUniqueReachingMIDef(MI, MI->getOperand(1).getReg());
1115 !RDA.hasSameReachingDef(Prev, MI, MI->getOperand(1).getReg().asMCReg())) {
1296 RDA = &getAnalysis<ReachingDefAnalysis>();
1344 LowOverheadLoop LoLoop(*ML, *MLI, *RDA, *TRI, *TII);
1396 RDA->getReachingLocalUses(LoLoop.Dec, MCRegister::from(ARM::LR), Uses);
1438 RDA->isSafeToDefRegAt(MI, MCRegister::from(ARM::CPSR), Ignore);
1514 MachineInstr *Def = RDA->getMIOperand(LoLoop.Start, 1);
1523 if (!TryRemove(Def, *RDA, LoLoop.ToRemove, Killed))
1648 // No RDA checks are necessary here since the VPST would have been
1675 MachineInstr *VprDef = RDA->getUniqueReachingMIDef(VPST, ARM::VPR);
1686 RDA->hasSameReachingDef(VCMP, VPST, VCMP->getOperand(1).getReg()) &&
1687 RDA->hasSameReachingDef(VCMP, VPST, VCMP->getOperand(2).getReg())) {
1798 // We've moved, removed and inserted new instructions, so update RDA.
1799 RDA->reset();