Home
last modified time | relevance | path

Searched refs:DT (Results 1 – 25 of 396) sorted by relevance

12345678910>>...16

/openbsd/src/gnu/llvm/llvm/include/llvm/Support/
DGenericDomTreeConstruction.h134 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 …]
DGenericIteratedDominanceFrontier.h64 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/
DMachineDominators.h74 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/
DCodeMoverUtils.cpp64 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 …]
DLoopUnrollRuntime.cpp76 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 …]
DFixIrreducible.cpp167 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 …]
DLCSSA.cpp79 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 …]
DUnifyLoopExits.cpp91 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 …]
DLoopSimplify.cpp118 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/
DMachineDominators.cpp62 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/
DDomTreeUpdater.cpp60 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 …]
DCFG.cpp135 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 …]
DPHITransAddr.cpp145 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 …]
DCaptureTracking.cpp110 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/
DSink.cpp66 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 …]
DSimplifyCFGPass.cpp266 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 …]
DLICM.cpp152 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/
DSimplifyCFG.cpp100 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/
DDominators.h65 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/
DDominators.h56 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/
DCodeMoverUtils.h29 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/
DDominators.cpp80 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/
DValueTracking.h59 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/
DPPExpressions.cpp102 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/
DMakefile13 .for DT in ${DBTARGETS}
14 db-${DT}: ${PROG}
15 sh ${.CURDIR}/run.test ${DT}
16 REGRESS_TARGETS+=db-${DT}
17 .PHONY: db-${DT}

12345678910>>...16