Home
last modified time | relevance | path

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

12345678910>>...12

/external/llvm/unittests/IR/
DDominatorTreeTest.cpp30 DominatorTree *DT = in runOnFunction() local
60 EXPECT_TRUE(DT->isReachableFromEntry(BB0)); in runOnFunction()
61 EXPECT_TRUE(DT->isReachableFromEntry(BB1)); in runOnFunction()
62 EXPECT_TRUE(DT->isReachableFromEntry(BB2)); in runOnFunction()
63 EXPECT_FALSE(DT->isReachableFromEntry(BB3)); in runOnFunction()
64 EXPECT_TRUE(DT->isReachableFromEntry(BB4)); in runOnFunction()
67 EXPECT_TRUE(DT->dominates(BB0, BB0)); in runOnFunction()
68 EXPECT_TRUE(DT->dominates(BB0, BB1)); in runOnFunction()
69 EXPECT_TRUE(DT->dominates(BB0, BB2)); in runOnFunction()
70 EXPECT_TRUE(DT->dominates(BB0, BB3)); in runOnFunction()
[all …]
/external/llvm/include/llvm/Support/
DGenericDomTreeConstruction.h33 unsigned DFSPass(DominatorTreeBase<typename GraphT::NodeType>& DT, in DFSPass() argument
39 InfoRec &VInfo = DT.Info[DT.Roots[i]]; in DFSPass()
46 InfoRec &SuccVInfo = DT.Info[*SI]; in DFSPass()
49 N = DTDFSPass(DT, *SI, N); in DFSPass()
63 DT.Info[BB]; in DFSPass()
70 DT.Vertex.push_back(BB); // Vertex[n] = V; in DFSPass()
95 DT.Info[Succ]; in DFSPass()
107 Eval(DominatorTreeBase<typename GraphT::NodeType> &DT, in Eval() argument
110 DT.Info[VIn]; in Eval()
123 DT.Info[V]; in Eval()
[all …]
/external/clang/include/clang/Analysis/Analyses/
DDominators.h41 llvm::DominatorTreeBase<CFGBlock>* DT;
44 DT = new llvm::DominatorTreeBase<CFGBlock>(false); in DominatorTree()
47 ~DominatorTree() override { delete DT; } in ~DominatorTree() local
49 llvm::DominatorTreeBase<CFGBlock>& getBase() { return *DT; } in getBase()
54 return DT->getRoot(); in getRoot()
60 return DT->getRootNode(); in getRootNode()
74 if (DT->compare(Other.getBase())) in compare()
85 DT->recalculate(*cfg); in buildDominatorTree()
95 if(DT->getNode(*I)->getIDom()) in dump()
98 << DT->getNode(*I)->getIDom()->getBlock()->getBlockID() in dump()
[all …]
/external/llvm/include/llvm/Analysis/
DPostDominators.h26 DominatorTreeBase<BasicBlock>* DT; member
30 DT = new DominatorTreeBase<BasicBlock>(true); in PostDominatorTree()
42 return DT->getRoots(); in getRoots()
46 return DT->getRootNode(); in getRootNode()
50 return DT->getNode(BB);
54 return DT->getNode(BB); in getNode()
58 return DT->dominates(A, B); in dominates()
62 return DT->dominates(A, B); in dominates()
66 return DT->properlyDominates(A, B); in properlyDominates()
70 return DT->properlyDominates(A, B); in properlyDominates()
[all …]
DInstructionSimplify.h54 const DominatorTree *DT = nullptr,
63 const DominatorTree *DT = nullptr,
72 const DominatorTree *DT = nullptr,
81 const DominatorTree *DT = nullptr,
90 const DominatorTree *DT = nullptr,
98 const DominatorTree *DT = nullptr,
106 const DominatorTree *DT = nullptr,
114 const DominatorTree *DT = nullptr,
123 const DominatorTree *DT = nullptr,
131 const DominatorTree *DT = nullptr,
[all …]
DValueTracking.h49 const DominatorTree *DT = nullptr);
59 const DominatorTree *DT = nullptr);
67 const DominatorTree *DT = nullptr);
78 const DominatorTree *DT = nullptr);
87 const DominatorTree *DT = nullptr);
93 const DominatorTree *DT = nullptr);
100 const DominatorTree *DT = nullptr);
114 const DominatorTree *DT = nullptr);
127 const DominatorTree *DT = nullptr);
245 const DominatorTree *DT = nullptr,
[all …]
DBasicAliasAnalysis.h44 DominatorTree *DT; variable
49 AssumptionCache &AC, DominatorTree *DT = nullptr,
51 : AAResultBase(TLI), DL(DL), AC(AC), DT(DT), LI(LI) {} in AAResultBase()
54 : AAResultBase(Arg), DL(Arg.DL), AC(Arg.AC), DT(Arg.DT), LI(Arg.LI) {} in BasicAAResult()
56 : AAResultBase(std::move(Arg)), DL(Arg.DL), AC(Arg.AC), DT(Arg.DT), in BasicAAResult()
138 DominatorTree *DT, bool &NSW, bool &NUW);
144 AssumptionCache *AC, DominatorTree *DT);
156 AssumptionCache *AC, DominatorTree *DT);
/external/llvm/include/llvm/CodeGen/
DMachineDominators.h71 DominatorTreeBase<MachineBasicBlock>* DT; variable
79 return *DT; in getBase()
90 return DT->getRoots(); in getRoots()
95 return DT->getRoot(); in getRoot()
100 return DT->getRootNode(); in getRootNode()
108 return DT->dominates(A, B); in dominates()
114 return DT->dominates(A, B); in dominates()
122 if (BBA != BBB) return DT->dominates(BBA, BBB); in dominates()
141 return DT->properlyDominates(A, B); in properlyDominates()
147 return DT->properlyDominates(A, B); in properlyDominates()
[all …]
DMachinePostDominators.h29 DominatorTreeBase<MachineBasicBlock> *DT;
41 return DT->getRoots(); in getRoots()
45 return DT->getRootNode(); in getRootNode()
49 return DT->getNode(BB);
53 return DT->getNode(BB); in getNode()
58 return DT->dominates(A, B); in dominates()
62 return DT->dominates(A, B); in dominates()
67 return DT->properlyDominates(A, B); in properlyDominates()
72 return DT->properlyDominates(A, B); in properlyDominates()
77 return DT->findNearestCommonDominator(A, B); in findNearestCommonDominator()
/external/llvm/lib/CodeGen/
DMachineDominators.cpp41 DT->recalculate(F); in runOnMachineFunction()
49 DT = new DominatorTreeBase<MachineBasicBlock>(false); in MachineDominatorTree()
53 delete DT; in ~MachineDominatorTree()
57 DT->releaseMemory(); in releaseMemory()
61 DT->print(OS); in print()
81 MachineDomTreeNode *SuccDTNode = DT->getNode(Succ); in applySplitCriticalEdges()
104 if (!DT->dominates(SuccDTNode, DT->getNode(PredBB))) { in applySplitCriticalEdges()
116 MachineDomTreeNode *NewDTNode = DT->addNewBlock(Edge.NewBB, Edge.FromBB); in applySplitCriticalEdges()
122 DT->changeImmediateDominator(DT->getNode(Edge.ToBB), NewDTNode); in applySplitCriticalEdges()
DMachineRegionInfo.cpp26 MachineDominatorTree *DT, MachineRegion *Parent) : in MachineRegion() argument
27 RegionBase<RegionTraits<MachineFunction>>(Entry, Exit, RI, DT, Parent) { in MachineRegion()
58 DT = DT_; in recalculate()
64 TopLevelRegion = new MachineRegion(Entry, nullptr, this, DT, nullptr); in recalculate()
84 auto DT = &getAnalysis<MachineDominatorTree>(); in runOnMachineFunction() local
88 RI.recalculate(F, DT, PDT, DF); in runOnMachineFunction()
/external/llvm/lib/Transforms/Utils/
DLCSSA.cpp64 static bool processInstruction(Loop &L, Instruction &Inst, DominatorTree &DT, in processInstruction() argument
102 DomTreeNode *DomNode = DT.getNode(DomBB); in processInstruction()
113 if (!DT.dominates(DomNode, DT.getNode(ExitBB))) in processInstruction()
194 processInstruction(*OtherLoop, *I, DT, EBs, PredCache, LI); in processInstruction()
209 DominatorTree &DT, in blockDominatesAnExit() argument
211 DomTreeNode *DomNode = DT.getNode(BB); in blockDominatesAnExit()
213 if (DT.dominates(DomNode, DT.getNode(ExitBB))) in blockDominatesAnExit()
219 bool llvm::formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, in formLCSSA() argument
238 if (!blockDominatesAnExit(BB, DT, ExitBlocks)) in formLCSSA()
249 Changed |= processInstruction(L, I, DT, ExitBlocks, PredCache, LI); in formLCSSA()
[all …]
DBreakCriticalEdges.cpp46 auto *DT = DTWP ? &DTWP->getDomTree() : nullptr; in runOnFunction() local
50 SplitAllCriticalEdges(F, CriticalEdgeSplittingOptions(DT, LI)); in runOnFunction()
199 auto *DT = Options.DT; in SplitCriticalEdge() local
201 if (!DT && !LI) in SplitCriticalEdge()
229 if (DT) { in SplitCriticalEdge()
230 DomTreeNode *TINode = DT->getNode(TIBB); in SplitCriticalEdge()
236 DomTreeNode *NewBBNode = DT->addNewBlock(NewBB, TIBB); in SplitCriticalEdge()
241 DestBBNode = DT->getNode(DestBB); in SplitCriticalEdge()
243 if (DomTreeNode *OPNode = DT->getNode(OtherPreds.back())) in SplitCriticalEdge()
244 NewBBDominatesDestBB = DT->dominates(DestBBNode, OPNode); in SplitCriticalEdge()
[all …]
DBasicBlockUtils.cpp108 bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, DominatorTree *DT, in MergeBlockIntoPredecessor() argument
164 if (DT) in MergeBlockIntoPredecessor()
165 if (DomTreeNode *DTN = DT->getNode(BB)) { in MergeBlockIntoPredecessor()
166 DomTreeNode *PredDTN = DT->getNode(PredBB); in MergeBlockIntoPredecessor()
171 DT->changeImmediateDominator(*DI, PredDTN); in MergeBlockIntoPredecessor()
173 DT->eraseNode(BB); in MergeBlockIntoPredecessor()
238 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, in SplitEdge() argument
244 if (SplitCriticalEdge(LatchTerm, SuccNum, CriticalEdgeSplittingOptions(DT, LI) in SplitEdge()
255 return SplitBlock(Succ, &Succ->front(), DT, LI); in SplitEdge()
262 return SplitBlock(BB, BB->getTerminator(), DT, LI); in SplitEdge()
[all …]
DLoopSimplify.cpp117 BasicBlock *llvm::InsertPreheaderForLoop(Loop *L, DominatorTree *DT, in InsertPreheaderForLoop() argument
139 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader", DT, in InsertPreheaderForLoop()
159 DominatorTree *DT, LoopInfo *LI, in rewriteLoopExitBlock() argument
175 NewExitBB = SplitBlockPredecessors(Exit, LoopBlocks, ".loopexit", DT, LI, in rewriteLoopExitBlock()
206 static PHINode *findPHIToPartitionLoops(Loop *L, DominatorTree *DT, in findPHIToPartitionLoops() argument
212 if (Value *V = SimplifyInstruction(PN, DL, nullptr, DT, AC)) { in findPHIToPartitionLoops()
249 DominatorTree *DT, LoopInfo *LI, in separateNestedLoop() argument
260 PHINode *PN = findPHIToPartitionLoops(L, DT, AC); in separateNestedLoop()
285 DT, LI, PreserveLCSSA); in separateNestedLoop()
316 if (DT->dominates(Header, P)) in separateNestedLoop()
[all …]
/external/llvm/lib/Analysis/
DPHITransAddr.cpp147 const DominatorTree *DT) { in PHITranslateSubExpr() argument
192 Value *PHIIn = PHITranslateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr()
210 (!DT || DT->dominates(CastI->getParent(), PredBB))) in PHITranslateSubExpr()
221 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT); in PHITranslateSubExpr()
232 if (Value *V = SimplifyGEPInst(GEPOps, 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()
282 if (Value *Res = SimplifyAddInst(LHS, RHS, isNSW, isNUW, DL, TLI, DT, AC)) { in PHITranslateSubExpr()
299 (!DT || DT->dominates(BO->getParent(), PredBB))) in PHITranslateSubExpr()
316 const DominatorTree *DT, in PHITranslateValue() argument
[all …]
DCaptureTracking.cpp62 CapturesBefore(bool ReturnCaptures, const Instruction *I, DominatorTree *DT, in CapturesBefore()
64 : OrderedBB(IC), BeforeHere(I), DT(DT), in CapturesBefore()
73 if (BeforeHere != I && !DT->isReachableFromEntry(BB)) in isSafeToPrune()
104 return !isPotentiallyReachableFromMany(Worklist, BB, DT); in isSafeToPrune()
110 if (BeforeHere != I && DT->dominates(BeforeHere, I) && in isSafeToPrune()
111 !isPotentiallyReachable(I, BeforeHere, DT)) in isSafeToPrune()
142 DominatorTree *DT; member
186 DominatorTree *DT, bool IncludeI, in PointerMayBeCapturedBefore() argument
192 if (!DT) in PointerMayBeCapturedBefore()
200 CapturesBefore CB(ReturnCaptures, I, DT, IncludeI, OBB); in PointerMayBeCapturedBefore()
DCFG.cpp132 const DominatorTree *DT, const LoopInfo *LI) { in isPotentiallyReachableFromMany() argument
135 if (DT && !DT->isReachableFromEntry(StopBB)) in isPotentiallyReachableFromMany()
136 DT = nullptr; in isPotentiallyReachableFromMany()
148 if (DT && DT->dominates(BB, StopBB)) in isPotentiallyReachableFromMany()
175 const DominatorTree *DT, const LoopInfo *LI) { in isPotentiallyReachable() argument
183 DT, LI); in isPotentiallyReachable()
187 const DominatorTree *DT, const LoopInfo *LI) { in isPotentiallyReachable() argument
235 Worklist, const_cast<BasicBlock *>(B->getParent()), DT, LI); in isPotentiallyReachable()
DInstructionSimplify.cpp51 const DominatorTree *DT; member
58 : DL(DL), TLI(tli), DT(dt), AC(ac), CxtI(cxti) {} in Query()
104 static bool ValueDominatesPHI(Value *V, PHINode *P, const DominatorTree *DT) { in ValueDominatesPHI() argument
117 if (DT) { in ValueDominatesPHI()
118 if (!DT->isReachableFromEntry(P->getParent())) in ValueDominatesPHI()
120 if (!DT->isReachableFromEntry(I->getParent())) in ValueDominatesPHI()
122 return DT->dominates(I, P); in ValueDominatesPHI()
461 if (!ValueDominatesPHI(RHS, PI, Q.DT)) in ThreadBinOpOverPHI()
467 if (!ValueDominatesPHI(LHS, PI, Q.DT)) in ThreadBinOpOverPHI()
508 if (!ValueDominatesPHI(RHS, PI, Q.DT)) in ThreadCmpOverPHI()
[all …]
/external/llvm/lib/Transforms/Scalar/
DLoopRotation.cpp126 DominatorTree *DT, ScalarEvolution *SE, in rotateLoop() argument
299 if (DT) { in rotateLoop()
304 DomTreeNode *OrigHeaderNode = DT->getNode(OrigHeader); in rotateLoop()
307 DomTreeNode *OrigPreheaderNode = DT->getNode(OrigPreheader); in rotateLoop()
309 DT->changeImmediateDominator(HeaderChildren[I], OrigPreheaderNode); in rotateLoop()
311 assert(DT->getNode(Exit)->getIDom() == OrigPreheaderNode); in rotateLoop()
312 assert(DT->getNode(NewHeader)->getIDom() == OrigPreheaderNode); in rotateLoop()
315 DT->changeImmediateDominator(OrigHeader, OrigLatch); in rotateLoop()
323 CriticalEdgeSplittingOptions(DT, LI).setPreserveLCSSA()); in rotateLoop()
343 *PI, Exit, CriticalEdgeSplittingOptions(DT, LI).setPreserveLCSSA()); in rotateLoop()
[all …]
DLICM.cpp80 static bool sink(Instruction &I, const LoopInfo *LI, const DominatorTree *DT,
83 const DominatorTree *DT,
87 const DominatorTree *DT,
100 DominatorTree *DT, TargetLibraryInfo *TLI,
143 DominatorTree *DT; // Dominator Tree for the current Loop. member
196 DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); in runOnLoop()
200 assert(L->isLCSSAForm(*DT) && "Loop is not in LCSSA form."); in runOnLoop()
250 Changed |= sinkRegion(DT->getNode(L->getHeader()), AA, LI, DT, TLI, CurLoop, in runOnLoop()
253 Changed |= hoistRegion(DT->getNode(L->getHeader()), AA, LI, DT, TLI, in runOnLoop()
267 PIC, LI, DT, CurLoop, in runOnLoop()
[all …]
/external/llvm/include/llvm/Transforms/Utils/
DSimplifyIndVar.h36 const DominatorTree *DT;
42 IVVisitor(): DT(nullptr), ShouldSplitOverflowIntrinsics(false) {} in IVVisitor()
45 const DominatorTree *getDomTree() const { return DT; } in getDomTree()
52 assert(DT && "Splitting overflow intrinsics requires a DomTree."); in setSplitOverflowIntrinsics()
60 bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT,
66 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT,
DBasicBlockUtils.h54 bool MergeBlockIntoPredecessor(BasicBlock *BB, DominatorTree *DT = nullptr,
83 DominatorTree *DT; member
89 CriticalEdgeSplittingOptions(DominatorTree *DT = nullptr,
91 : DT(DT), LI(LI), MergeIdenticalEdges(false), in DT() function
183 DominatorTree *DT = nullptr, LoopInfo *LI = nullptr);
191 DominatorTree *DT = nullptr, LoopInfo *LI = nullptr);
210 DominatorTree *DT = nullptr,
230 DominatorTree *DT = nullptr,
266 DominatorTree *DT = nullptr);
/external/clang/lib/Lex/
DPPExpressions.cpp82 static bool EvaluateDefined(PPValue &Result, Token &PeekTok, DefinedTracker &DT, in EvaluateDefined() argument
150 DT.State = DefinedTracker::DefinedMacro; in EvaluateDefined()
151 DT.TheMacro = II; in EvaluateDefined()
163 static bool EvaluateValue(PPValue &Result, Token &PeekTok, DefinedTracker &DT, in EvaluateValue() argument
165 DT.State = DefinedTracker::Unknown; in EvaluateValue()
180 return(EvaluateDefined(Result, PeekTok, DT, ValueLive, PP)); in EvaluateValue()
330 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue()
347 DT.State = DefinedTracker::Unknown; in EvaluateValue()
357 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue()
364 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue()
[all …]
/external/llvm/include/llvm/IR/
DDominators.h43 DominatorTreeBase<GraphTraits<BasicBlock *>::NodeType> &DT, Function &F);
45 DominatorTreeBase<GraphTraits<Inverse<BasicBlock *>>::NodeType> &DT,
175 static NodeType *getEntryNode(DominatorTree *DT) {
176 return DT->getRootNode();
227 DominatorTree DT;
236 DominatorTree &getDomTree() { return DT; }
237 const DominatorTree &getDomTree() const { return DT; }
247 void releaseMemory() override { DT.releaseMemory(); }

12345678910>>...12