| /src/contrib/llvm-project/llvm/include/llvm/Support/ |
| H A D | GenericDomTreeConstruction.h | 133 TreeNodePtr getNodeForBlock(NodePtr BB, DomTreeT &DT) { in getNodeForBlock() 134 if (TreeNodePtr Node = DT.getNode(BB)) return Node; in getNodeForBlock() 140 assert(IDom || DT.DomTreeNodes[nullptr]); in getNodeForBlock() 141 TreeNodePtr IDomNode = getNodeForBlock(IDom, DT); in getNodeForBlock() 145 return DT.createChild(BB, IDomNode); in getNodeForBlock() 328 static NodePtr GetEntryNode(const DomTreeT &DT) { in GetEntryNode() 329 assert(DT.Parent && "Parent not set"); in GetEntryNode() 330 return GraphTraits<typename DomTreeT::ParentPtr>::getEntryNode(DT.Parent); in GetEntryNode() 336 static RootsT FindRoots(const DomTreeT &DT, BatchUpdatePtr BUI) { in FindRoots() 337 assert(DT.Parent && "Parent pointer is not set"); in FindRoots() [all …]
|
| H A D | GenericIteratedDominanceFrontier.h | 65 IDFCalculatorBase(DominatorTreeBase<NodeTy, IsPostDom> &DT) : DT(DT) {} in IDFCalculatorBase() argument 67 IDFCalculatorBase(DominatorTreeBase<NodeTy, IsPostDom> &DT, in IDFCalculatorBase() argument 69 : DT(DT), ChildrenGetter(C) {} in IDFCalculatorBase() 106 DominatorTreeBase<NodeTy, IsPostDom> &DT; 145 DT.updateDFSNumbers(); in calculate() 152 if (DomTreeNodeBase<NodeTy> *Node = DT.getNode(BB)) { in calculate() 177 DomTreeNodeBase<NodeTy> *SuccNode = DT.getNode(Succ); in calculate()
|
| /src/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | CodeMoverUtils.cpp | 64 const DominatorTree &DT, 95 static bool domTreeLevelBefore(DominatorTree *DT, const Instruction *InstA, in domTreeLevelBefore() argument 102 DomTreeNode *DA = DT->getNode(InstA->getParent()); in domTreeLevelBefore() 103 DomTreeNode *DB = DT->getNode(InstB->getParent()); in domTreeLevelBefore() 110 const DominatorTree &DT, in collectControlConditions() argument 113 assert(DT.dominates(&Dominator, &BB) && "Expecting Dominator to dominate BB"); in collectControlConditions() 126 assert(DT.getNode(CurBlock) && "Expecting a valid DT node for CurBlock"); in collectControlConditions() 127 BasicBlock *IDom = DT.getNode(CurBlock)->getIDom()->getBlock(); in collectControlConditions() 128 assert(DT.dominates(&Dominator, IDom) && in collectControlConditions() 232 const DominatorTree &DT, in isControlFlowEquivalent() argument [all …]
|
| H A D | FixIrreducible.cpp | 164 static void createNaturalLoopInternal(LoopInfo &LI, DominatorTree &DT, in createNaturalLoopInternal() argument 193 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Eager); in createNaturalLoopInternal() 196 assert(DT.verify(DominatorTree::VerificationLevel::Full)); in createNaturalLoopInternal() 198 assert(DT.verify(DominatorTree::VerificationLevel::Fast)); in createNaturalLoopInternal() 240 LI.verify(DT); in createNaturalLoopInternal() 253 static void createNaturalLoop(LoopInfo &LI, DominatorTree &DT, Function *F, in createNaturalLoop() argument 256 createNaturalLoopInternal(LI, DT, nullptr, Blocks, Headers); in createNaturalLoop() 259 static void createNaturalLoop(LoopInfo &LI, DominatorTree &DT, Loop &L, in createNaturalLoop() argument 262 createNaturalLoopInternal(LI, DT, &L, Blocks, Headers); in createNaturalLoop() 267 static bool makeReducible(LoopInfo &LI, DominatorTree &DT, Graph &&G) { in makeReducible() argument [all …]
|
| H A D | LoopUnrollRuntime.cpp | 87 ValueToValueMapTy &VMap, DominatorTree *DT, in ConnectProlog() argument 161 SplitBlockPredecessors(PrologExit, PrologExitPreds, ".unr-lcssa", DT, LI, in ConnectProlog() 180 SplitBlockPredecessors(OriginalLoopLatchExit, Preds, ".unr-lcssa", DT, LI, in ConnectProlog() 192 if (DT) { in ConnectProlog() 193 auto *NewDom = DT->findNearestCommonDominator(OriginalLoopLatchExit, in ConnectProlog() 195 DT->changeImmediateDominator(OriginalLoopLatchExit, NewDom); in ConnectProlog() 214 ValueToValueMapTy &VMap, DominatorTree *DT, in ConnectEpilog() argument 310 SplitBlockPredecessors(Exit, Preds, ".epilog-lcssa", DT, LI, nullptr, in ConnectEpilog() 321 if (DT) { in ConnectEpilog() 322 auto *NewDom = DT->findNearestCommonDominator(Exit, NewExit); in ConnectEpilog() [all …]
|
| H A D | LCSSA.cpp | 78 const DominatorTree &DT, const LoopInfo &LI, in formLCSSAForInstructions() argument 113 if (!DT.isReachableFromEntry(UserBB)) { in formLCSSAForInstructions() 142 const DomTreeNode *DomNode = DT.getNode(DomBB); in formLCSSAForInstructions() 156 if (!DT.dominates(DomNode, DT.getNode(ExitBB))) in formLCSSAForInstructions() 322 Loop &L, const DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks, in computeBlocksDominatingExits() argument 337 BasicBlock *IDomBB = DT.getNode(BB)->getIDom()->getBlock(); in computeBlocksDominatingExits() 363 bool llvm::formLCSSA(Loop &L, const DominatorTree &DT, const LoopInfo *LI, in formLCSSA() argument 371 assert(SubLoop->isRecursivelyLCSSAForm(DT, *LI) && "Subloop not in LCSSA!"); in formLCSSA() 387 computeBlocksDominatingExits(L, DT, ExitBlocks, BlocksDominatingExits); in formLCSSA() 417 Changed = formLCSSAForInstructions(Worklist, DT, *LI, SE); in formLCSSA() [all …]
|
| H A D | UnifyLoopExits.cpp | 88 static void restoreSSA(const DominatorTree &DT, const Loop *L, in INITIALIZE_PASS_DEPENDENCY() 125 if (Def->getParent() == In || DT.dominates(Def, In)) { in INITIALIZE_PASS_DEPENDENCY() 143 static bool unifyLoopExits(DominatorTree &DT, LoopInfo &LI, Loop *L) { in unifyLoopExits() argument 186 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Eager); in unifyLoopExits() 191 restoreSSA(DT, L, ExitingBlocks, LoopExitBlock); in unifyLoopExits() 194 assert(DT.verify(DominatorTree::VerificationLevel::Full)); in unifyLoopExits() 196 assert(DT.verify(DominatorTree::VerificationLevel::Fast)); in unifyLoopExits() 210 LI.verify(DT); in unifyLoopExits() 216 static bool runImpl(LoopInfo &LI, DominatorTree &DT) { in runImpl() argument 223 Changed |= unifyLoopExits(DT, LI, L); in runImpl() [all …]
|
| H A D | LoopSimplify.cpp | 118 BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, DominatorTree *DT, in InsertPreheaderForLoop() argument 140 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader", DT, in InsertPreheaderForLoop() 173 static PHINode *findPHIToPartitionLoops(Loop *L, DominatorTree *DT, in findPHIToPartitionLoops() argument 179 if (Value *V = simplifyInstruction(PN, {DL, nullptr, DT, AC})) { in findPHIToPartitionLoops() 216 DominatorTree *DT, LoopInfo *LI, in separateNestedLoop() argument 248 PHINode *PN = findPHIToPartitionLoops(L, DT, AC); in separateNestedLoop() 273 DT, LI, MSSAU, PreserveLCSSA); in separateNestedLoop() 302 if (DT->dominates(Header, P)) in separateNestedLoop() 334 formDedicatedExitBlocks(L, DT, LI, MSSAU, PreserveLCSSA); in separateNestedLoop() 343 formLCSSA(*L, *DT, LI, SE); in separateNestedLoop() [all …]
|
| /src/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | CallBrPrepare.cpp | 57 static bool SplitCriticalEdges(ArrayRef<CallBrInst *> CBRs, DominatorTree &DT); 59 DominatorTree &DT); 60 static void UpdateSSA(DominatorTree &DT, CallBrInst *CBR, CallInst *Intrinsic, 84 auto &DT = FAM.getResult<DominatorTreeAnalysis>(Fn); in run() local 86 Changed |= SplitCriticalEdges(CBRs, DT); in run() 87 Changed |= InsertIntrinsicCalls(CBRs, DT); in run() 118 bool SplitCriticalEdges(ArrayRef<CallBrInst *> CBRs, DominatorTree &DT) { in SplitCriticalEdges() argument 120 CriticalEdgeSplittingOptions Options(&DT); in SplitCriticalEdges() 140 bool InsertIntrinsicCalls(ArrayRef<CallBrInst *> CBRs, DominatorTree &DT) { in InsertIntrinsicCalls() argument 160 UpdateSSA(DT, CBR, Intrinsic, SSAUpdate); in InsertIntrinsicCalls() [all …]
|
| H A D | MachineDominators.cpp | 43 template void Calculate<MBBDomTree>(MBBDomTree &DT); 44 template void CalculateWithUpdates<MBBDomTree>(MBBDomTree &DT, MBBUpdates U); 46 template void InsertEdge<MBBDomTree>(MBBDomTree &DT, MachineBasicBlock *From, 49 template void DeleteEdge<MBBDomTree>(MBBDomTree &DT, MachineBasicBlock *From, 52 template void ApplyUpdates<MBBDomTree>(MBBDomTree &DT, MBBDomTreeGraphDiff &, 55 template bool Verify<MBBDomTree>(const MBBDomTree &DT, 107 DT = MachineDominatorTree(F); in runOnMachineFunction() 111 void MachineDominatorTreeWrapperPass::releaseMemory() { DT.reset(); } in releaseMemory() 114 if (VerifyMachineDomInfo && DT) in verifyAnalysis() 115 if (!DT->verify(MachineDominatorTree::VerificationLevel::Basic)) in verifyAnalysis() [all …]
|
| /src/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | CFG.cpp | 137 const DominatorTree *DT, const LoopInfo *LI) { in isReachableImpl() argument 140 if (DT) { in isReachableImpl() 142 if (!DT->isReachableFromEntry(BB)) { in isReachableImpl() 143 DT = nullptr; in isReachableImpl() 152 DT = nullptr; in isReachableImpl() 183 if (DT) { in isReachableImpl() 185 return DT->dominates(BB, StopBB); in isReachableImpl() 241 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT, in isPotentiallyReachableFromMany() argument 244 Worklist, SingleEntrySet<const BasicBlock *>(StopBB), ExclusionSet, DT, in isPotentiallyReachableFromMany() 251 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT, in isManyPotentiallyReachableFromMany() argument [all …]
|
| H A D | PHITransAddr.cpp | 132 const DominatorTree *DT) { in translateSubExpr() argument 174 Value *PHIIn = translateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT); in translateSubExpr() 183 {DL, TLI, DT, AC})) { in translateSubExpr() 194 (!DT || DT->dominates(CastI->getParent(), PredBB))) in translateSubExpr() 205 Value *GEPOp = translateSubExpr(Op, CurBB, PredBB, DT); in translateSubExpr() 218 GEP->getNoWrapFlags(), {DL, TLI, DT, AC})) { in translateSubExpr() 233 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in translateSubExpr() 249 Value *LHS = translateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT); in translateSubExpr() 268 if (Value *Res = simplifyAddInst(LHS, RHS, isNSW, isNUW, {DL, TLI, DT, AC})) { in translateSubExpr() 285 (!DT || DT->dominates(BO->getParent(), PredBB))) in translateSubExpr() [all …]
|
| H A D | CaptureTracking.cpp | 106 const DominatorTree *DT, bool IncludeI, const LoopInfo *LI) in CapturesBefore() 107 : BeforeHere(I), DT(DT), ReturnCaptures(ReturnCaptures), in CapturesBefore() 118 if (!DT->isReachableFromEntry(I->getParent())) in isSafeToPrune() 122 return !isPotentiallyReachable(I, BeforeHere, nullptr, DT, LI); in isSafeToPrune() 141 const DominatorTree *DT; member 161 EarliestCaptures(bool ReturnCaptures, Function &F, const DominatorTree &DT) in EarliestCaptures() 162 : DT(DT), ReturnCaptures(ReturnCaptures), F(F) {} in EarliestCaptures() 177 EarliestCapture = DT.findNearestCommonDominator(EarliestCapture, I); in captured() 187 const DominatorTree &DT; member 239 const DominatorTree *DT, bool IncludeI, in PointerMayBeCapturedBefore() argument [all …]
|
| /src/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | Sink.cpp | 66 DominatorTree &DT, LoopInfo &LI) { in IsAcceptableTarget() argument 87 if (!DT.dominates(Inst->getParent(), SuccToSinkTo)) in IsAcceptableTarget() 104 DominatorTree &DT, LoopInfo &LI, AAResults &AA) { in SinkInstruction() argument 140 if (!DT.isReachableFromEntry(UseBlock)) in SinkInstruction() 144 SuccToSinkTo = DT.findNearestCommonDominator(SuccToSinkTo, UseBlock); in SinkInstruction() 148 if (!DT.dominates(BB, SuccToSinkTo)) in SinkInstruction() 156 !IsAcceptableTarget(Inst, SuccToSinkTo, DT, LI)) in SinkInstruction() 157 SuccToSinkTo = DT.getNode(SuccToSinkTo)->getIDom()->getBlock(); in SinkInstruction() 175 static bool ProcessBlock(BasicBlock &BB, DominatorTree &DT, LoopInfo &LI, in ProcessBlock() argument 180 if (!DT.isReachableFromEntry(&BB)) return false; in ProcessBlock() [all …]
|
| H A D | SimplifyCFGPass.cpp | 271 DominatorTree *DT, in simplifyFunctionCFGImpl() argument 273 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Eager); in simplifyFunctionCFGImpl() 275 bool EverChanged = removeUnreachableBlocks(F, DT ? &DTU : nullptr); in simplifyFunctionCFGImpl() 277 tailMergeBlocksWithSimilarFunctionTerminators(F, DT ? &DTU : nullptr); in simplifyFunctionCFGImpl() 278 EverChanged |= iterativelySimplifyCFG(F, TTI, DT ? &DTU : nullptr, Options); in simplifyFunctionCFGImpl() 288 if (!removeUnreachableBlocks(F, DT ? &DTU : nullptr)) in simplifyFunctionCFGImpl() 292 EverChanged = iterativelySimplifyCFG(F, TTI, DT ? &DTU : nullptr, Options); in simplifyFunctionCFGImpl() 293 EverChanged |= removeUnreachableBlocks(F, DT ? &DTU : nullptr); in simplifyFunctionCFGImpl() 300 DominatorTree *DT, in simplifyFunctionCFG() argument 303 (DT && DT->verify(DominatorTree::VerificationLevel::Full))) && in simplifyFunctionCFG() [all …]
|
| H A D | LICM.cpp | 175 static void hoist(Instruction &I, const DominatorTree *DT, const Loop *CurLoop, 179 static bool sink(Instruction &I, LoopInfo *LI, DominatorTree *DT, 183 Instruction &Inst, const DominatorTree *DT, const TargetLibraryInfo *TLI, 197 DominatorTree *DT); 218 bool runOnLoop(Loop *L, AAResults *AA, LoopInfo *LI, DominatorTree *DT, 307 if (!LICM.runOnLoop(&L, &AR.AA, &AR.LI, &AR.DT, &AR.AC, &AR.TLI, &AR.TTI, in run() 343 bool Changed = LICM.runOnLoop(&OutermostLoop, &AR.AA, &AR.LI, &AR.DT, &AR.AC, in run() 409 DominatorTree *DT, AssumptionCache *AC, in runOnLoop() argument 417 assert(L->isLCSSAForm(*DT) && "Loop is not in LCSSA form."); in runOnLoop() 464 ? sinkRegionForLoopNest(DT->getNode(L->getHeader()), AA, LI, DT, in runOnLoop() [all …]
|
| H A D | LoopSimplifyCFG.cpp | 113 DominatorTree &DT; member in __anon5d8717bf0111::ConstantTerminatorFoldingImpl 353 Preheader, Preheader->getTerminator(), &DT, &LI, MSSAU); in handleDeadExits() 413 MSSAU->applyUpdates(DTUpdates, DT, /*UpdateDT=*/true); in handleDeadExits() 417 formLCSSARecursively(*FixLCSSALoop, DT, &LI, &SE); in handleDeadExits() 424 MSSAU->applyUpdates(DTUpdates, DT, /*UpdateDT=*/true); in handleDeadExits() 528 ConstantTerminatorFoldingImpl(Loop &L, LoopInfo &LI, DominatorTree &DT, in ConstantTerminatorFoldingImpl() argument 531 : L(L), LI(LI), DT(DT), SE(SE), MSSAU(MSSAU), DFS(&L), in ConstantTerminatorFoldingImpl() 532 DTU(DT, DomTreeUpdater::UpdateStrategy::Eager) {} in ConstantTerminatorFoldingImpl() 582 if (!DeadExitBlocks.empty() && !L.isLCSSAForm(DT, /*IgnoreTokens*/ false)) { in run() 583 assert(L.isLCSSAForm(DT, /*IgnoreTokens*/ true) && in run() [all …]
|
| /src/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | GenericDomTreeUpdaterImpl.h | 30 if (DT) in recalculate() 31 DT->recalculate(F); in recalculate() 46 if (DT) in recalculate() 47 DT->recalculate(F); in recalculate() 60 if (!DT && !PDT) in applyUpdates() 72 if (DT) in applyUpdates() 73 DT->applyUpdates(Updates); in applyUpdates() 81 if (!DT && !PDT) in applyUpdatesPermissive() 127 if (DT) in applyUpdatesPermissive() 128 DT->applyUpdates(DeduplicatedUpdates); in applyUpdatesPermissive() [all …]
|
| /src/contrib/llvm-project/llvm/include/llvm/IR/ |
| H A D | Dominators.h | 61 extern template void Calculate<BBDomTree>(BBDomTree &DT); 62 extern template void CalculateWithUpdates<BBDomTree>(BBDomTree &DT, 65 extern template void Calculate<BBPostDomTree>(BBPostDomTree &DT); 67 extern template void InsertEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, 69 extern template void InsertEdge<BBPostDomTree>(BBPostDomTree &DT, 73 extern template void DeleteEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, 75 extern template void DeleteEdge<BBPostDomTree>(BBPostDomTree &DT, 79 extern template void ApplyUpdates<BBDomTree>(BBDomTree &DT, 82 extern template void ApplyUpdates<BBPostDomTree>(BBPostDomTree &DT, 86 extern template bool Verify<BBDomTree>(const BBDomTree &DT, [all …]
|
| /src/contrib/llvm-project/llvm/lib/IR/ |
| H A D | Dominators.cpp | 80 DomTreeBuilder::BBDomTree &DT); 83 DomTreeBuilder::BBDomTree &DT, BBUpdates U); 86 DomTreeBuilder::BBPostDomTree &DT); 90 DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To); 92 DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To); 95 DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To); 97 DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To); 100 DomTreeBuilder::BBDomTree &DT, DomTreeBuilder::BBDomTreeGraphDiff &, 103 DomTreeBuilder::BBPostDomTree &DT, DomTreeBuilder::BBPostDomTreeGraphDiff &, 107 const DomTreeBuilder::BBDomTree &DT, [all …]
|
| /src/contrib/llvm-project/clang/include/clang/Analysis/Analyses/ |
| H A D | Dominators.h | 56 DominatorTreeBase &getBase() { return DT; } in getBase() 62 return DT.getRoot(); in getRoot() 67 return DT.getRootNode(); in getRootNode() 80 if (DT.compare(Other.getBase())) in compare() 90 DT.recalculate(*cfg); in buildDominatorTree() 104 DomTreeNode *IDom = DT.getNode(*I)->getIDom(); in dump() 137 return DT.dominates(A, B); in dominates() 144 return DT.properlyDominates(A, B); in properlyDominates() 150 return DT.findNearestCommonDominator(A, B); in findNearestCommonDominator() 155 return DT.findNearestCommonDominator(A, B); in findNearestCommonDominator() [all …]
|
| /src/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
| H A D | CodeMoverUtils.h | 32 const DominatorTree &DT, 39 const DominatorTree &DT, 44 DominatorTree &DT, 52 DominatorTree &DT, 59 DominatorTree &DT, 66 DominatorTree &DT, const PostDominatorTree &PDT, 75 const DominatorTree *DT, 80 const DominatorTree *DT, const PostDominatorTree *PDT);
|
| /src/contrib/llvm-project/llvm/lib/Target/SPIRV/Analysis/ |
| H A D | SPIRVConvergenceRegionAnalysis.cpp | 123 ConvergenceRegion::ConvergenceRegion(DominatorTree &DT, LoopInfo &LI, in ConvergenceRegion() argument 125 : DT(DT), LI(LI), Parent(nullptr) { in ConvergenceRegion() 136 DominatorTree &DT, LoopInfo &LI, in ConvergenceRegion() argument 139 : DT(DT), LI(LI), ConvergenceToken(ConvergenceToken), Entry(Entry), in ConvergenceRegion() 201 ConvergenceRegionAnalyzer(Function &F, DominatorTree &DT, LoopInfo &LI) in ConvergenceRegionAnalyzer() argument 202 : DT(DT), LI(LI), F(F) {} in ConvergenceRegionAnalyzer() 271 ConvergenceRegion *TopLevelRegion = new ConvergenceRegion(DT, LI, F); in analyze() 300 DT, LI, CT, L->getHeader(), std::move(RegionBlocks), in analyze() 311 DominatorTree &DT; member in llvm::SPIRV::ConvergenceRegionAnalyzer 316 ConvergenceRegionInfo getConvergenceRegions(Function &F, DominatorTree &DT, in getConvergenceRegions() argument [all …]
|
| /src/contrib/llvm-project/clang/lib/Lex/ |
| H A D | PPExpressions.cpp | 102 static bool EvaluateDefined(PPValue &Result, Token &PeekTok, DefinedTracker &DT, in EvaluateDefined() argument 134 DT.IncludedUndefinedIds = !Macro; in EvaluateDefined() 220 DT.State = DefinedTracker::DefinedMacro; in EvaluateDefined() 221 DT.TheMacro = II; in EvaluateDefined() 233 static bool EvaluateValue(PPValue &Result, Token &PeekTok, DefinedTracker &DT, in EvaluateValue() argument 235 DT.State = DefinedTracker::Unknown; in EvaluateValue() 254 return EvaluateDefined(Result, PeekTok, DT, ValueLive, PP); in EvaluateValue() 282 DT.IncludedUndefinedIds = true; in EvaluateValue() 445 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue() 454 DT.IncludedUndefinedIds, PP)) in EvaluateValue() [all …]
|
| /src/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPURewriteUndefForPHI.cpp | 102 bool rewritePHIs(Function &F, UniformityInfo &UA, DominatorTree *DT) { in INITIALIZE_PASS_DEPENDENCY() 127 if (!DT->dominates(&BB, IncomingBB)) in INITIALIZE_PASS_DEPENDENCY() 137 if (DT->dominates(IncomingBB, DominateBB)) 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() 175 DominatorTree *DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); in runOnFunction() local 176 return rewritePHIs(F, UA, DT); in runOnFunction() 182 DominatorTree *DT = &AM.getResult<DominatorTreeAnalysis>(F); in run() local 183 bool Changed = rewritePHIs(F, UA, DT); in run()
|