Lines Matching full:rda

275     bool hasImplicitlyValidVPT(VPTBlock &Block, ReachingDefAnalysis &RDA) {  in hasImplicitlyValidVPT()  argument
295 MachineInstr *Op = RDA.getMIOperand(MI, MI->getOperand(Idx)); in hasImplicitlyValidVPT()
305 RDA.getGlobalReachingDefs(MI, MO.getReg(), Defs); in hasImplicitlyValidVPT()
322 bool isValid(ReachingDefAnalysis &RDA) { in isValid() argument
332 if (hasImplicitlyValidVPT(Block, RDA)) in isValid()
369 ReachingDefAnalysis &RDA; member
389 ReachingDefAnalysis &RDA, const TargetRegisterInfo &TRI, in LowOverheadLoop()
391 : ML(ML), MLI(MLI), RDA(RDA), TRI(TRI), TII(TII), in LowOverheadLoop()
474 ReachingDefAnalysis *RDA = nullptr; member in __anona50655620111::ARMLowOverheadLoops
533 static bool TryRemove(MachineInstr *MI, ReachingDefAnalysis &RDA, in INITIALIZE_PASS()
538 auto WontCorruptITs = [](InstSet &Killed, ReachingDefAnalysis &RDA) { in INITIALIZE_PASS() argument
550 RDA.getReachingLocalUses(&IT, MCRegister::from(ARM::ITSTATE), in INITIALIZE_PASS()
562 MachineInstr *IT = RDA.getMIOperand(Dead, *MO); in INITIALIZE_PASS()
579 if (!RDA.isSafeToRemove(MI, Uses, Ignore)) in INITIALIZE_PASS()
582 if (WontCorruptITs(Uses, RDA)) { in INITIALIZE_PASS()
590 RDA.collectKilledOperands(MI, Killed); in INITIALIZE_PASS()
591 if (WontCorruptITs(Killed, RDA)) { in INITIALIZE_PASS()
618 if (!VPTstate.isValid(RDA)) { in ValidateTailPredicate()
645 if (RDA.hasLocalDefBefore(VCTP, NumElements)) { in ValidateTailPredicate()
655 !RDA.isReachingDefLiveOut(&*StartInsertPt, NumElements)) { in ValidateTailPredicate()
657 RDA.getLocalLiveOutMIDef(StartInsertBB, NumElements)) { in ValidateTailPredicate()
658 if (RDA.isSafeToMoveForwards(ElemDef, &*StartInsertPt)) { in ValidateTailPredicate()
663 } else if (RDA.isSafeToMoveBackwards(&*StartInsertPt, ElemDef)) { in ValidateTailPredicate()
674 RDA.getUniqueReachingMIDef(ElemDef, Operand.getReg().asMCReg()) == in ValidateTailPredicate()
675 RDA.getUniqueReachingMIDef(&*StartInsertPt, in ValidateTailPredicate()
697 if (RDA.hasLocalDefBefore(&MBB->back(), NumElements)) in ValidateTailPredicate()
759 if (auto *Def = RDA.getUniqueReachingMIDef( in ValidateTailPredicate()
767 if (TryRemove(Def, RDA, ElementChain, Ignore)) { in ValidateTailPredicate()
797 !RDA.hasLocalDefBefore(VCTP, VCTP->getOperand(1).getReg())) { in ValidateTailPredicate()
798 if (auto *Def = RDA.getUniqueReachingMIDef( in ValidateTailPredicate()
802 TryRemove(Def, RDA, ToRemove, Ignore); in ValidateTailPredicate()
867 const ReachingDefAnalysis &RDA, in producesFalseLanesZero() argument
900 RDA.getGlobalReachingDefs(&MI, MO.getReg(), Defs); in producesFalseLanesZero()
958 if (producesFalseLanesZero(MI, QPRs, RDA, FalseLanesZero)) in ValidateLiveOuts()
984 RDA.getGlobalUses(MI, MO.getReg().asMCReg(), Uses); in ValidateLiveOuts()
1031 if (auto *MI = RDA.getLocalLiveOutMIDef(Header, RegMask.PhysReg)) in ValidateLiveOuts()
1048 RDA.getUniqueReachingMIDef(MI, MI->getOperand(1).getReg()); in ValidateLiveOuts()
1118 !RDA.hasSameReachingDef(Prev, MI, MI->getOperand(1).getReg().asMCReg())) { in AddVCTP()
1299 RDA = &getAnalysis<ReachingDefAnalysis>(); in runOnMachineFunction()
1347 LowOverheadLoop LoLoop(*ML, *MLI, *RDA, *TRI, *TII); in ProcessLoop()
1399 RDA->getReachingLocalUses(LoLoop.Dec, MCRegister::from(ARM::LR), Uses); in ProcessLoop()
1441 RDA->isSafeToDefRegAt(MI, MCRegister::from(ARM::CPSR), Ignore); in RevertLoopDec()
1517 MachineInstr *Def = RDA->getMIOperand(LoLoop.Start, 1); in IterationCountDCE()
1526 if (!TryRemove(Def, *RDA, LoLoop.ToRemove, Killed)) in IterationCountDCE()
1651 // No RDA checks are necessary here since the VPST would have been in ConvertVPTBlocks()
1678 MachineInstr *VprDef = RDA->getUniqueReachingMIDef(VPST, ARM::VPR); in ConvertVPTBlocks()
1689 RDA->hasSameReachingDef(VCMP, VPST, VCMP->getOperand(1).getReg()) && in ConvertVPTBlocks()
1690 RDA->hasSameReachingDef(VCMP, VPST, VCMP->getOperand(2).getReg())) { in ConvertVPTBlocks()
1801 // We've moved, removed and inserted new instructions, so update RDA. in Expand()
1802 RDA->reset(); in Expand()