| /openbsd/src/gnu/llvm/llvm/include/llvm/Support/ |
| D | GenericDomTreeConstruction.h | 134 TreeNodePtr getNodeForBlock(NodePtr BB, DomTreeT &DT) { in getNodeForBlock() 135 if (TreeNodePtr Node = DT.getNode(BB)) return Node; in getNodeForBlock() 141 assert(IDom || DT.DomTreeNodes[nullptr]); in getNodeForBlock() 142 TreeNodePtr IDomNode = getNodeForBlock(IDom, DT); in getNodeForBlock() 146 return DT.createChild(BB, IDomNode); in getNodeForBlock() 272 void runSemiNCA(DomTreeT &DT, const unsigned MinLevel = 0) { 293 const TreeNodePtr TN = DT.getNode(N); 343 static NodePtr GetEntryNode(const DomTreeT &DT) { in GetEntryNode() 344 assert(DT.Parent && "Parent not set"); in GetEntryNode() 345 return GraphTraits<typename DomTreeT::ParentPtr>::getEntryNode(DT.Parent); in GetEntryNode() [all …]
|
| D | GenericIteratedDominanceFrontier.h | 64 IDFCalculatorBase(DominatorTreeBase<NodeTy, IsPostDom> &DT) : DT(DT) {} in IDFCalculatorBase() argument 66 IDFCalculatorBase(DominatorTreeBase<NodeTy, IsPostDom> &DT, in IDFCalculatorBase() argument 68 : DT(DT), ChildrenGetter(C) {} in IDFCalculatorBase() 105 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()
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/CodeGen/ |
| D | MachineDominators.h | 74 std::unique_ptr<MachineDomTree> DT; variable 92 if (!DT) in getBase() 93 DT.reset(new MachineDomTree()); in getBase() 95 return *DT; in getBase() 102 return DT->getRoot(); in getRoot() 107 return DT->getRootNode(); in getRootNode() 117 return DT->dominates(A, B); in dominates() 123 DT->getDescendants(A, Result); in getDescendants() 128 return DT->dominates(A, B); in dominates() 136 if (BBA != BBB) return DT->dominates(BBA, BBB); in dominates() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Transforms/Utils/ |
| 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 …]
|
| D | LoopUnrollRuntime.cpp | 76 ValueToValueMapTy &VMap, DominatorTree *DT, in ConnectProlog() argument 150 SplitBlockPredecessors(PrologExit, PrologExitPreds, ".unr-lcssa", DT, LI, in ConnectProlog() 169 SplitBlockPredecessors(OriginalLoopLatchExit, Preds, ".unr-lcssa", DT, LI, in ConnectProlog() 174 if (DT) { in ConnectProlog() 175 auto *NewDom = DT->findNearestCommonDominator(OriginalLoopLatchExit, in ConnectProlog() 177 DT->changeImmediateDominator(OriginalLoopLatchExit, NewDom); in ConnectProlog() 196 ValueToValueMapTy &VMap, DominatorTree *DT, in ConnectEpilog() argument 292 SplitBlockPredecessors(Exit, Preds, ".epilog-lcssa", DT, LI, nullptr, in ConnectEpilog() 297 if (DT) { in ConnectEpilog() 298 auto *NewDom = DT->findNearestCommonDominator(Exit, NewExit); in ConnectEpilog() [all …]
|
| D | FixIrreducible.cpp | 167 static void createNaturalLoopInternal(LoopInfo &LI, DominatorTree &DT, in createNaturalLoopInternal() argument 196 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Eager); in createNaturalLoopInternal() 199 assert(DT.verify(DominatorTree::VerificationLevel::Full)); in createNaturalLoopInternal() 201 assert(DT.verify(DominatorTree::VerificationLevel::Fast)); in createNaturalLoopInternal() 243 LI.verify(DT); in createNaturalLoopInternal() 256 static void createNaturalLoop(LoopInfo &LI, DominatorTree &DT, Function *F, in createNaturalLoop() argument 259 createNaturalLoopInternal(LI, DT, nullptr, Blocks, Headers); in createNaturalLoop() 262 static void createNaturalLoop(LoopInfo &LI, DominatorTree &DT, Loop &L, in createNaturalLoop() argument 265 createNaturalLoopInternal(LI, DT, &L, Blocks, Headers); in createNaturalLoop() 270 static bool makeReducible(LoopInfo &LI, DominatorTree &DT, Graph &&G) { in makeReducible() argument [all …]
|
| D | LCSSA.cpp | 79 const DominatorTree &DT, const LoopInfo &LI, in formLCSSAForInstructions() argument 115 if (!DT.isReachableFromEntry(UserBB)) { in formLCSSAForInstructions() 144 const DomTreeNode *DomNode = DT.getNode(DomBB); in formLCSSAForInstructions() 161 if (!DT.dominates(DomNode, DT.getNode(ExitBB))) in formLCSSAForInstructions() 300 Loop &L, const DominatorTree &DT, SmallVector<BasicBlock *, 8> &ExitBlocks, in computeBlocksDominatingExits() argument 315 BasicBlock *IDomBB = DT.getNode(BB)->getIDom()->getBlock(); in computeBlocksDominatingExits() 341 bool llvm::formLCSSA(Loop &L, const DominatorTree &DT, const LoopInfo *LI, in formLCSSA() argument 349 assert(SubLoop->isRecursivelyLCSSAForm(DT, *LI) && "Subloop not in LCSSA!"); in formLCSSA() 365 computeBlocksDominatingExits(L, DT, ExitBlocks, BlocksDominatingExits); in formLCSSA() 396 Changed = formLCSSAForInstructions(Worklist, DT, *LI, SE, Builder); in formLCSSA() [all …]
|
| D | UnifyLoopExits.cpp | 91 static void restoreSSA(const DominatorTree &DT, const Loop *L, in INITIALIZE_PASS_DEPENDENCY() 128 if (Def->getParent() == In || DT.dominates(Def, In)) { in INITIALIZE_PASS_DEPENDENCY() 146 static bool unifyLoopExits(DominatorTree &DT, LoopInfo &LI, Loop *L) { in unifyLoopExits() argument 189 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Eager); in unifyLoopExits() 194 restoreSSA(DT, L, ExitingBlocks, LoopExitBlock); in unifyLoopExits() 197 assert(DT.verify(DominatorTree::VerificationLevel::Full)); in unifyLoopExits() 199 assert(DT.verify(DominatorTree::VerificationLevel::Fast)); in unifyLoopExits() 213 LI.verify(DT); in unifyLoopExits() 219 static bool runImpl(LoopInfo &LI, DominatorTree &DT) { in runImpl() argument 226 Changed |= unifyLoopExits(DT, LI, L); in runImpl() [all …]
|
| 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 …]
|
| /openbsd/src/gnu/llvm/llvm/lib/CodeGen/ |
| D | MachineDominators.cpp | 62 DT.reset(new DomTreeBase<MachineBasicBlock>()); in calculate() 63 DT->recalculate(F); in calculate() 73 DT.reset(nullptr); in releaseMemory() 77 if (DT && VerifyMachineDomInfo) in verifyAnalysis() 78 if (!DT->verify(MachineDomTree::VerificationLevel::Basic)) { in verifyAnalysis() 85 if (DT) in print() 86 DT->print(OS); in print() 106 MachineDomTreeNode *SuccDTNode = DT->getNode(Succ); in applySplitCriticalEdges() 129 if (!DT->dominates(SuccDTNode, DT->getNode(PredBB))) { in applySplitCriticalEdges() 141 MachineDomTreeNode *NewDTNode = DT->addNewBlock(Edge.NewBB, Edge.FromBB); in applySplitCriticalEdges() [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Analysis/ |
| D | DomTreeUpdater.cpp | 60 if (Strategy != UpdateStrategy::Lazy || !DT) in applyDomTreeUpdates() 68 DT->applyUpdates(ArrayRef<DominatorTree::UpdateType>(I, E)); in applyDomTreeUpdates() 123 if (DT) in recalculate() 124 DT->recalculate(F); in recalculate() 139 if (DT) in recalculate() 140 DT->recalculate(F); in recalculate() 155 if (!DT) in hasPendingDomTreeUpdates() 205 if (DT && !IsRecalculatingDomTree) in eraseDelBBNode() 206 if (DT->getNode(DelBB)) in eraseDelBBNode() 207 DT->eraseNode(DelBB); in eraseDelBBNode() [all …]
|
| D | CFG.cpp | 135 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT, in isPotentiallyReachableFromMany() argument 139 if (DT && !DT->isReachableFromEntry(StopBB)) in isPotentiallyReachableFromMany() 140 DT = nullptr; in isPotentiallyReachableFromMany() 145 DT = nullptr; in isPotentiallyReachableFromMany() 170 if (DT && DT->dominates(BB, StopBB)) in isPotentiallyReachableFromMany() 209 const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT, in isPotentiallyReachable() argument 214 if (DT) { in isPotentiallyReachable() 215 if (DT->isReachableFromEntry(A) && !DT->isReachableFromEntry(B)) in isPotentiallyReachable() 218 if (A->isEntryBlock() && DT->isReachableFromEntry(B)) in isPotentiallyReachable() 220 if (B->isEntryBlock() && DT->isReachableFromEntry(A)) in isPotentiallyReachable() [all …]
|
| D | PHITransAddr.cpp | 145 const DominatorTree *DT) { in PHITranslateSubExpr() argument 189 Value *PHIIn = PHITranslateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr() 207 (!DT || DT->dominates(CastI->getParent(), PredBB))) in PHITranslateSubExpr() 218 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT); in PHITranslateSubExpr() 231 GEP->isInBounds(), {DL, TLI, DT, AC})) { in PHITranslateSubExpr() 246 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in PHITranslateSubExpr() 262 Value *LHS = PHITranslateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr() 281 if (Value *Res = simplifyAddInst(LHS, RHS, isNSW, isNUW, {DL, TLI, DT, AC})) { in PHITranslateSubExpr() 298 (!DT || DT->dominates(BO->getParent(), PredBB))) in PHITranslateSubExpr() 315 const DominatorTree *DT, in PHITranslateValue() argument [all …]
|
| D | CaptureTracking.cpp | 110 const DominatorTree *DT, bool IncludeI, const LoopInfo *LI) in CapturesBefore() 111 : BeforeHere(I), DT(DT), ReturnCaptures(ReturnCaptures), in CapturesBefore() 122 if (!DT->isReachableFromEntry(I->getParent())) in isSafeToPrune() 126 return !isPotentiallyReachable(I, BeforeHere, nullptr, DT, LI); in isSafeToPrune() 145 const DominatorTree *DT; member 165 EarliestCaptures(bool ReturnCaptures, Function &F, const DominatorTree &DT, in EarliestCaptures() 167 : EphValues(EphValues), DT(DT), ReturnCaptures(ReturnCaptures), F(F) {} in EarliestCaptures() 185 EarliestCapture = DT.findNearestCommonDominator(EarliestCapture, I); in captured() 197 const DominatorTree &DT; member 256 const DominatorTree *DT, bool IncludeI, in PointerMayBeCapturedBefore() argument [all …]
|
| /openbsd/src/gnu/llvm/llvm/lib/Transforms/Scalar/ |
| D | Sink.cpp | 66 DominatorTree &DT, LoopInfo &LI) { in IsAcceptableTarget() argument 88 if (!DT.dominates(Inst->getParent(), SuccToSinkTo)) in IsAcceptableTarget() 105 DominatorTree &DT, LoopInfo &LI, AAResults &AA) { in SinkInstruction() argument 135 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 …]
|
| D | SimplifyCFGPass.cpp | 266 DominatorTree *DT, in simplifyFunctionCFGImpl() argument 268 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Eager); in simplifyFunctionCFGImpl() 270 bool EverChanged = removeUnreachableBlocks(F, DT ? &DTU : nullptr); in simplifyFunctionCFGImpl() 272 tailMergeBlocksWithSimilarFunctionTerminators(F, DT ? &DTU : nullptr); in simplifyFunctionCFGImpl() 273 EverChanged |= iterativelySimplifyCFG(F, TTI, DT ? &DTU : nullptr, Options); in simplifyFunctionCFGImpl() 283 if (!removeUnreachableBlocks(F, DT ? &DTU : nullptr)) in simplifyFunctionCFGImpl() 287 EverChanged = iterativelySimplifyCFG(F, TTI, DT ? &DTU : nullptr, Options); in simplifyFunctionCFGImpl() 288 EverChanged |= removeUnreachableBlocks(F, DT ? &DTU : nullptr); in simplifyFunctionCFGImpl() 295 DominatorTree *DT, in simplifyFunctionCFG() argument 298 (DT && DT->verify(DominatorTree::VerificationLevel::Full))) && in simplifyFunctionCFG() [all …]
|
| D | LICM.cpp | 152 static void hoist(Instruction &I, const DominatorTree *DT, const Loop *CurLoop, 156 static bool sink(Instruction &I, LoopInfo *LI, DominatorTree *DT, 160 Instruction &Inst, const DominatorTree *DT, const TargetLibraryInfo *TLI, 189 bool runOnLoop(Loop *L, AAResults *AA, LoopInfo *LI, DominatorTree *DT, 278 if (!LICM.runOnLoop(&L, &AR.AA, &AR.LI, &AR.DT, &AR.AC, &AR.TLI, &AR.TTI, in run() 317 bool Changed = LICM.runOnLoop(&OutermostLoop, &AR.AA, &AR.LI, &AR.DT, &AR.AC, in run() 394 DominatorTree *DT, AssumptionCache *AC, in runOnLoop() argument 402 assert(L->isLCSSAForm(*DT) && "Loop is not in LCSSA form."); in runOnLoop() 450 ? sinkRegionForLoopNest(DT->getNode(L->getHeader()), AA, LI, DT, in runOnLoop() 452 : sinkRegion(DT->getNode(L->getHeader()), AA, LI, DT, TLI, TTI, L, in runOnLoop() [all …]
|
| /openbsd/src/gnu/llvm/llvm/examples/IRTransforms/ |
| D | SimplifyCFG.cpp | 100 static bool removeDeadBlocks_v2(Function &F, DominatorTree &DT) { in removeDeadBlocks_v2() argument 102 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy); in removeDeadBlocks_v2() 171 static bool eliminateCondBranches_v2(Function &F, DominatorTree &DT) { in eliminateCondBranches_v2() argument 174 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy); in eliminateCondBranches_v2() 217 static bool eliminateCondBranches_v3(Function &F, DominatorTree &DT) { in eliminateCondBranches_v3() argument 219 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy); in eliminateCondBranches_v3() 304 static bool mergeIntoSinglePredecessor_v2(Function &F, DominatorTree &DT) { in mergeIntoSinglePredecessor_v2() argument 306 DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy); in mergeIntoSinglePredecessor_v2() 359 static bool doSimplify_v2(Function &F, DominatorTree &DT) { in doSimplify_v2() argument 360 return (int)eliminateCondBranches_v2(F, DT) | in doSimplify_v2() [all …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/IR/ |
| D | Dominators.h | 65 extern template void Calculate<BBDomTree>(BBDomTree &DT); 66 extern template void CalculateWithUpdates<BBDomTree>(BBDomTree &DT, 69 extern template void Calculate<BBPostDomTree>(BBPostDomTree &DT); 71 extern template void InsertEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, 73 extern template void InsertEdge<BBPostDomTree>(BBPostDomTree &DT, 77 extern template void DeleteEdge<BBDomTree>(BBDomTree &DT, BasicBlock *From, 79 extern template void DeleteEdge<BBPostDomTree>(BBPostDomTree &DT, 83 extern template void ApplyUpdates<BBDomTree>(BBDomTree &DT, 86 extern template void ApplyUpdates<BBPostDomTree>(BBPostDomTree &DT, 90 extern template bool Verify<BBDomTree>(const BBDomTree &DT, [all …]
|
| /openbsd/src/gnu/llvm/clang/include/clang/Analysis/Analyses/ |
| 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 …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Transforms/Utils/ |
| D | CodeMoverUtils.h | 29 const DominatorTree &DT, 36 const DominatorTree &DT, 41 DominatorTree &DT, 49 DominatorTree &DT, 56 DominatorTree &DT, 63 DominatorTree &DT, const PostDominatorTree &PDT, 72 const DominatorTree *DT, 77 const DominatorTree *DT, const PostDominatorTree *PDT);
|
| /openbsd/src/gnu/llvm/llvm/lib/IR/ |
| 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 …]
|
| /openbsd/src/gnu/llvm/llvm/include/llvm/Analysis/ |
| D | ValueTracking.h | 59 const DominatorTree *DT = nullptr, 75 const DominatorTree *DT = nullptr, 83 const DominatorTree *DT = nullptr, 92 const DominatorTree *DT = nullptr, 105 const DominatorTree *DT = nullptr, 117 const DominatorTree *DT = nullptr, 131 const DominatorTree *DT = nullptr, 144 const DominatorTree *DT = nullptr, 152 const DominatorTree *DT = nullptr, 160 const DominatorTree *DT = nullptr, [all …]
|
| /openbsd/src/gnu/llvm/clang/lib/Lex/ |
| D | PPExpressions.cpp | 102 static bool EvaluateDefined(PPValue &Result, Token &PeekTok, DefinedTracker &DT, in EvaluateDefined() argument 134 DT.IncludedUndefinedIds = !Macro; in EvaluateDefined() 218 DT.State = DefinedTracker::DefinedMacro; in EvaluateDefined() 219 DT.TheMacro = II; in EvaluateDefined() 231 static bool EvaluateValue(PPValue &Result, Token &PeekTok, DefinedTracker &DT, in EvaluateValue() argument 233 DT.State = DefinedTracker::Unknown; in EvaluateValue() 252 return EvaluateDefined(Result, PeekTok, DT, ValueLive, PP); in EvaluateValue() 280 DT.IncludedUndefinedIds = true; in EvaluateValue() 443 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue() 452 DT.IncludedUndefinedIds, PP)) in EvaluateValue() [all …]
|
| /openbsd/src/regress/lib/libc/db/ |
| D | Makefile | 13 .for DT in ${DBTARGETS} 14 db-${DT}: ${PROG} 15 sh ${.CURDIR}/run.test ${DT} 16 REGRESS_TARGETS+=db-${DT} 17 .PHONY: db-${DT}
|