Home
last modified time | relevance | path

Searched refs:dominates (Results 1 – 25 of 152) sorted by relevance

1234567

/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DDominators.cpp122 bool DominatorTree::dominates(const BasicBlock *BB, const Use &U) const { in dominates() function in DominatorTree
127 return dominates(BB, PN->getIncomingBlock(U)); in dominates()
132 // dominates - Return true if Def dominates a use in User. This performs
135 bool DominatorTree::dominates(const Value *DefV, in dominates() function in DominatorTree
159 // The value defined by an invoke dominates an instruction only if it in dominates()
160 // dominates every instruction in UseBB. in dominates()
161 // A PHI is dominated only if the instruction dominates every possible use in in dominates()
164 return dominates(Def, UseBB); in dominates()
167 return dominates(DefB in dominates()
174 bool DominatorTree::dominates(const Instruction *Def, dominates() function in DominatorTree
200 bool DominatorTree::dominates(const BasicBlockEdge &BBE, dominates() function in DominatorTree
250 bool DominatorTree::dominates(const BasicBlockEdge &BBE, const Use &U) const { dominates() function in DominatorTree
268 bool DominatorTree::dominates(const Value *DefV, const Use &U) const { dominates() function in DominatorTree
337 bool DominatorTree::dominates(const BasicBlockEdge &BBE1, dominates() function in DominatorTree
[all...]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DCodeMoverUtils.cpp113 assert(DT.dominates(&Dominator, &BB) && "Expecting Dominator to dominate BB"); in collectControlConditions()
128 assert(DT.dominates(&Dominator, IDom) && in collectControlConditions()
137 if (PDT.dominates(CurBlock, IDom)) { in collectControlConditions()
141 } else if (PDT.dominates(CurBlock, BI->getSuccessor(0))) { in collectControlConditions()
147 } else if (PDT.dominates(CurBlock, BI->getSuccessor(1))) { in collectControlConditions()
243 if ((DT.dominates(&BB0, &BB1) && PDT.dominates(&BB1, &BB0)) || in isControlFlowEquivalent()
244 (PDT.dominates(&BB0, &BB1) && DT.dominates(&BB1, &BB0))) in isControlFlowEquivalent()
345 if (UserInst != &InsertPoint && !DT.dominates(&InsertPoint, U)) { in isSafeToMoveBefore()
350 DT.dominates(&I, UserInst)) in isSafeToMoveBefore()
363 DT.dominates(OpInst, &I)) in isSafeToMoveBefore()
[all …]
H A DScalarEvolutionExpander.cpp132 SE.DT.dominates(cast<Instruction>(Ret), &*BIP)); in ReuseOrCreateCast()
352 SE.DT.dominates(cast<Instruction>(V), &*Builder.GetInsertPoint())); in expandAddToGEP()
408 if (DT.dominates(A->getHeader(), B->getHeader())) return B; in PickMostRelevantLoop()
409 if (DT.dominates(B->getHeader(), A->getHeader())) return A; in PickMostRelevantLoop()
685 if (!SE.DT.dominates(OInst, IVIncInsertPos)) in isNormalAddRecExprPHI()
724 if (!OInst || SE.DT.dominates(OInst, InsertPos)) in getIVIncOperand()
735 if (!SE.DT.dominates(OInst, InsertPos)) in getIVIncOperand()
788 if (SE.DT.dominates(IncV, InsertPos)) { in hoistIVInc()
797 !SE.DT.dominates(InsertPos->getParent(), IncV->getParent())) in hoistIVInc()
812 if (SE.DT.dominates(IncV, InsertPos)) in hoistIVInc()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DDominators.h177 using Base::dominates;
180 bool dominates(const BasicBlock *BB, const Use &U) const;
191 bool dominates(const Value *Def, const Use &U) const;
195 bool dominates(const Value *Def, const Instruction *User) const;
196 bool dominates(const Value *Def, BasicBlock::iterator User) const {
197 return dominates(Def, &*User);
205 bool dominates(const Instruction *Def, const BasicBlock *BB) const;
211 bool dominates(const BasicBlockEdge &BBE, const Use &U) const;
212 bool dominates(const BasicBlockEdge &BBE, const BasicBlock *BB) const;
214 bool dominates(const BasicBlockEdge &BBE1, const BasicBlockEdge &BBE2) const;
H A DGenericConvergenceVerifierImpl.h147 Check(DT.dominates(Token->getParent(), User->getParent()), in verify()
219 if (!DT.dominates(DT.getNode(LiveToken->getParent()), SuccNode)) in verify()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPURewriteUndefForPHI.cpp21 // Pattern A: Block with undefined incoming value dominates defined predecessor
28 // Pattern B: Block with defined incoming value dominates undefined predecessor
112 // The divergent block with defined incoming value that dominates all in INITIALIZE_PASS_DEPENDENCY()
127 if (!DT->dominates(&BB, IncomingBB)) in INITIALIZE_PASS_DEPENDENCY()
137 if (DT->dominates(IncomingBB, DominateBB)) in INITIALIZE_PASS_DEPENDENCY()
152 // We only replace the undef when DominateBB truly dominates all the in INITIALIZE_PASS_DEPENDENCY()
154 // dominates BB so that UniqueDefinedIncoming is available in BB and in INITIALIZE_PASS_DEPENDENCY()
156 if (DT->dominates(DominateBB, &BB) && all_of(Undefs, [&](BasicBlock *UD) { in INITIALIZE_PASS_DEPENDENCY()
157 return DT->dominates(DominateBB, UD); in INITIALIZE_PASS_DEPENDENCY()
/freebsd/contrib/llvm-project/llvm/lib/Target/ARC/
H A DARCOptAddrMode.cpp164 if (!MDT->dominates(InstBB, MBB)) in dominatesAllUsesOf()
171 if (!MDT->dominates(MI, User)) in dominatesAllUsesOf()
247 if (MDT->dominates(Last, First)) std::swap(First, Last); in tryToCombine()
281 if (MDT->dominates(Ldst, Add)) in canJoinInstructions()
283 else if (!MDT->dominates(Add, Ldst)) in canJoinInstructions()
318 if (&MI != Add && MDT->dominates(Ldst, &MI)) in canJoinInstructions()
320 else if (!MDT->dominates(&MI, Ldst)) in canJoinInstructions()
322 if (MDT->dominates(Add, &MI)) in canJoinInstructions()
420 if (!OpDef || !MDT->dominates(OpDef, To)) in canHoistLoadStoreTo()
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DMachineDominators.h135 bool dominates(const MachineDomTreeNode *A, in dominates() function
138 return Base::dominates(A, B); in dominates()
147 bool dominates(const MachineBasicBlock *A, const MachineBasicBlock *B) const { in dominates() function
149 return Base::dominates(A, B); in dominates()
154 bool dominates(const MachineInstr *A, const MachineInstr *B) const { in dominates() function
158 return Base::dominates(BBA, BBB); in dominates()
H A DLexicalScopes.h99 if (Parent && (!NewScope || !Parent->dominates(NewScope)))
104 bool dominates(const LexicalScope *S) const { in dominates() function
168 bool dominates(const DILocation *DL, MachineBasicBlock *MBB);
/freebsd/contrib/llvm-project/llvm/lib/Transforms/IPO/
H A DHotColdSplitting.cpp520 bool SinkPostDom = PDT.dominates(&SinkBB, &PredBB); in create()
572 bool SinkDom = DT.dominates(&SinkBB, &SuccBB); in create()
621 BB == SuggestedEntryPoint || DT.dominates(SuggestedEntryPoint, BB); in takeSingleEntrySubRegion()
750 if ((DT->dominates(BB, Block) && PDT->dominates(Block, BB)) || in outlineColdRegions()
751 (PDT->dominates(BB, Block) && DT->dominates(Block, BB))) in outlineColdRegions()
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblyExceptionInfo.cpp62 assert(MDT.dominates(Header, Dst)); in isReachableAmongDominated()
73 if (!Visited.count(Succ) && MDT.dominates(Header, Succ)) in isReachableAmongDominated()
309 if (MDT.dominates(EHPad, Frontier)) in discoverAndMapException()
321 if (MDT.dominates(EHPad, Succ)) in discoverAndMapException()
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DPostDominators.h39 using Base::dominates;
41 /// Return true if \p I1 dominates \p I2. This checks if \p I2 comes before
43 bool dominates(const Instruction *I1, const Instruction *I2) const;
H A DRegionInfoImpl.h114 return (DT->dominates(entry, BB) && in contains()
115 !(DT->dominates(exit, BB) && DT->dominates(entry, exit))); in contains()
546 if (DT->dominates(entry, P) && !DT->dominates(exit, P)) in verifyBBMap()
563 if (!DT->dominates(entry, exit)) { in isCommonDomFrontier()
685 if (!DT->dominates(entry, exit)) in findRegionsWithEntry()
834 if (DT->dominates(Exit, BB)) in getMaxRegionExit()
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86FastPreTileConfig.cpp102 static bool dominates(MachineBasicBlock &MBB, in dominates() function
153 if (dominates(*MBB, *CfgMI, UseInst)) { in mayLiveOut()
555 if (LastShapeMI && dominates(MBB, MI, LastShapeMI)) in configBasicBlock()
600 if (LastShapeMI && dominates(MBB, MI, LastShapeMI)) in configBasicBlock()
611 else if (dominates(MBB, LastShapeMI, RowMI)) in configBasicBlock()
617 else if (dominates(MBB, LastShapeMI, ColMI)) in configBasicBlock()
628 if (!LastTileCfg || !dominates(MBB, LastTileCfg, UseMI)) in configBasicBlock()
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DPostDominators.cpp54 bool PostDominatorTree::dominates(const Instruction *I1, in dominates() function in PostDominatorTree
62 return Base::dominates(BB1, BB2); in dominates()
H A DPHITransAddr.cpp194 (!DT || DT->dominates(CastI->getParent(), PredBB))) in translateSubExpr()
233 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in translateSubExpr()
285 (!DT || DT->dominates(BO->getParent(), PredBB))) in translateSubExpr()
313 if (!DT->dominates(Inst->getParent(), PredBB)) in translateValue()
H A DMemorySSA.cpp401 assert(MSSA.dominates(ClobberAt, Start) && "Clobber doesn't dominate start?"); in checkClobberSanity()
670 if (!MSSA.dominates(Res.Result, StopWhere)) in getBlockingAccess()
786 if (!MSSA.dominates(I->Clobber, Dom->Clobber)) in tryOptimizePhi()
802 return MSSA.dominates(P.Clobber, Target); in tryOptimizePhi()
884 if (DT.dominates(ChainBB, TP.Clobber->getBlock())) in tryOptimizePhi()
915 return MSSA.dominates(P.Clobber, R.PrimaryClobber.Clobber); in verifyOptResult()
1371 if (DT->dominates(BackBlock, BB)) in optimizeUsesInBlock()
1409 !DT->dominates(LocInfo.LowerBoundBlock, BB)) { in optimizeUsesInBlock()
2038 assert(dominates(Phi, U) && "Memory PHI does not dominate it's uses"); in verifyOrderingDominationAndDefUses()
2067 assert(dominates(MD, U) && in verifyOrderingDominationAndDefUses()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DGuardWidening.cpp445 assert(DT.dominates(BestSoFar, Instr) && "Should be!"); in eliminateInstrViaWidening()
536 assert(DT.dominates(DominatingBlock, DominatedBlock) && "No dominance"); in computeWideningScore()
553 if (!DT.dominates(DominatingBlock, DominatedBlock)) in computeWideningScore()
558 return !PDT->dominates(DominatedBlock, DominatingBlock); in computeWideningScore()
568 if (!Inst || DT.dominates(Inst, Loc) || Visited.count(Inst)) in canBeHoistedTo()
589 if (!Inst || DT.dominates(Inst, Loc)) in makeAvailableAt()
612 if (!Res || !DT.dominates(I, &**Res)) in getFreezeInsertPt()
621 return ResInst != User && DT.dominates(I, User) && in getFreezeInsertPt()
622 !DT.dominates(ResInst, User); in getFreezeInsertPt()
H A DGVNHoist.cpp643 assert(DT->dominates(NewBB, OldBB) && "invalid path"); in hasEHOrLoadsOnPath()
644 assert(DT->dominates(Def->getDefiningAccess()->getBlock(), NewBB) && in hasEHOrLoadsOnPath()
678 assert(DT->dominates(HoistPt, SrcBB) && "Invalid path"); in hasEHOnPath()
882 if (!DT->dominates(Inst->getParent(), HoistPt)) in allOperandsAvailable()
892 if (!DT->dominates(Inst->getParent(), HoistPt)) { in allGepOperandsAvailable()
916 if (DT->dominates(Op->getParent(), HoistPt)) in makeGepsAvailable()
1049 } else if (!DT->dominates(Val->getParent(), HoistPt)) in makeGepOperandsAvailable()
H A DSink.cpp87 if (!DT.dominates(Inst->getParent(), SuccToSinkTo)) in IsAcceptableTarget()
148 if (!DT.dominates(BB, SuccToSinkTo)) in SinkInstruction()
/freebsd/contrib/llvm-project/llvm/include/llvm/Support/
H A DGenericDomTree.h412 return dominates(A, B);
430 bool dominates(const DomTreeNodeBase<NodeT> *A,
473 bool dominates(const NodeT *A, const NodeT *B) const;
861 if (Pred != NewBB && !dominates(NewBBSucc, Pred) &&
937 bool DominatorTreeBase<NodeT, IsPostDom>::dominates(const NodeT *A,
945 return dominates(getNode(const_cast<NodeT *>(A)),
957 return dominates(getNode(const_cast<NodeT *>(A)),
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DShrinkWrap.cpp606 !MDT->dominates(InitSave, InitRestore) || in postShrinkWrapping()
607 !MPDT->dominates(InitRestore, InitSave)) in postShrinkWrapping()
676 assert((MDT->dominates(Save, Restore) && MPDT->dominates(Restore, Save)) && in postShrinkWrapping()
740 (!(SaveDominatesRestore = MDT->dominates(Save, Restore)) || in updateSaveRestorePoints()
741 !(RestorePostDominatesSave = MPDT->dominates(Restore, Save)) || in updateSaveRestorePoints()
H A DMachineSink.cpp650 if (!DT->dominates(MBB, UseBlock)) in AllUsesDominatedByBlock()
1016 if (Pred != FromBB && !DT->dominates(ToBB, Pred)) in isLegalToBreakCriticalEdge()
1106 if (!PDT->dominates(SuccToSinkTo, MBB)) in isProfitableToSinkTo()
1483 if (!DT->dominates(From, To) || !PDT->dominates(To, From)) in hasStoreBetween()
1517 if (PDT->dominates(To, BB)) { in hasStoreBetween()
1526 if (DomBB != BB && DT->dominates(DomBB, BB)) in hasStoreBetween()
1528 else if(DomBB != BB && DT->dominates(BB, DomBB)) in hasStoreBetween()
1540 if (DomBB != BB && DT->dominates(DomBB, BB)) in hasStoreBetween()
1542 else if(DomBB != BB && DT->dominates(BB, DomBB)) in hasStoreBetween()
1715 if (!TryBreak && !DT->dominates(ParentBlock, SuccToSinkTo)) { in SinkInstruction()
[all …]
H A DCallBrPrepare.cpp179 << ", is " << (DT.dominates(BB, U) ? "" : "NOT ") in PrintDebugDomInfo()
215 if (DT.dominates(DefaultDest, *U)) in UpdateSSA()
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DAArch64PromoteConstant.cpp390 if (NewPt == IPI.first || DT.dominates(IPI.first, NewPt) || in isDominated()
395 DT.dominates(IPI.first->getParent(), NewPt->getParent()))) { in isDominated()
521 assert(DT.dominates(LoadedCst, in insertDefinitions()

1234567