/external/llvm/unittests/IR/ |
D | DominatorTreeTest.cpp | 30 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/ |
D | GenericDomTreeConstruction.h | 34 unsigned DFSPass(DominatorTreeBase<typename GraphT::NodeType>& DT, in DFSPass() argument 40 InfoRec &VInfo = DT.Info[DT.Roots[i]]; in DFSPass() 47 InfoRec &SuccVInfo = DT.Info[*SI]; in DFSPass() 50 N = DTDFSPass(DT, *SI, N); in DFSPass() 64 DT.Info[BB]; in DFSPass() 71 DT.Vertex.push_back(BB); // Vertex[n] = V; in DFSPass() 96 DT.Info[Succ]; in DFSPass() 108 Eval(DominatorTreeBase<typename GraphT::NodeType>& DT, in Eval() argument 111 DT.Info[VIn]; in Eval() 124 DT.Info[V]; in Eval() [all …]
|
/external/clang/include/clang/Analysis/Analyses/ |
D | Dominators.h | 41 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/ |
D | PostDominators.h | 26 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 …]
|
D | InstructionSimplify.h | 54 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 …]
|
D | ValueTracking.h | 44 const DominatorTree *DT = nullptr); 56 const DominatorTree *DT = nullptr); 67 const DominatorTree *DT = nullptr); 76 const DominatorTree *DT = nullptr); 90 const DominatorTree *DT = nullptr); 103 const DominatorTree *DT = nullptr); 218 const DominatorTree *DT = nullptr); 225 const DominatorTree *DT); 230 const DominatorTree *DT);
|
/external/llvm/include/llvm/CodeGen/ |
D | MachineDominators.h | 71 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 …]
|
D | MachinePostDominators.h | 29 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/ |
D | MachineDominators.cpp | 41 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()
|
D | MachineRegionInfo.cpp | 26 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/ |
D | LCSSA.cpp | 62 static bool processInstruction(Loop &L, Instruction &Inst, DominatorTree &DT, in processInstruction() argument 94 DomTreeNode *DomNode = DT.getNode(DomBB); in processInstruction() 108 if (!DT.dominates(DomNode, DT.getNode(ExitBB))) in processInstruction() 189 processInstruction(*OtherLoop, *I, DT, EBs, PredCache, LI); in processInstruction() 205 DominatorTree &DT, in blockDominatesAnExit() argument 207 DomTreeNode *DomNode = DT.getNode(BB); in blockDominatesAnExit() 209 if (DT.dominates(DomNode, DT.getNode(ExitBlocks[i]))) in blockDominatesAnExit() 215 bool llvm::formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, in formLCSSA() argument 237 if (!blockDominatesAnExit(BB, DT, ExitBlocks)) in formLCSSA() 248 Changed |= processInstruction(L, *I, DT, ExitBlocks, PredCache, LI); in formLCSSA() [all …]
|
D | BreakCriticalEdges.cpp | 46 auto *DT = DTWP ? &DTWP->getDomTree() : nullptr; in runOnFunction() local 50 SplitAllCriticalEdges(F, CriticalEdgeSplittingOptions(DT, LI)); in runOnFunction() 201 auto *DT = Options.DT; in SplitCriticalEdge() local 203 if (!DT && !LI) in SplitCriticalEdge() 231 if (DT) { in SplitCriticalEdge() 232 DomTreeNode *TINode = DT->getNode(TIBB); in SplitCriticalEdge() 238 DomTreeNode *NewBBNode = DT->addNewBlock(NewBB, TIBB); in SplitCriticalEdge() 243 DestBBNode = DT->getNode(DestBB); in SplitCriticalEdge() 245 if (DomTreeNode *OPNode = DT->getNode(OtherPreds.back())) in SplitCriticalEdge() 246 NewBBDominatesDestBB = DT->dominates(DestBBNode, OPNode); in SplitCriticalEdge() [all …]
|
D | BasicBlockUtils.cpp | 110 bool llvm::MergeBlockIntoPredecessor(BasicBlock *BB, DominatorTree *DT, in MergeBlockIntoPredecessor() argument 165 if (DT) in MergeBlockIntoPredecessor() 166 if (DomTreeNode *DTN = DT->getNode(BB)) { in MergeBlockIntoPredecessor() 167 DomTreeNode *PredDTN = DT->getNode(PredBB); in MergeBlockIntoPredecessor() 172 DT->changeImmediateDominator(*DI, PredDTN); in MergeBlockIntoPredecessor() 174 DT->eraseNode(BB); in MergeBlockIntoPredecessor() 234 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, in SplitEdge() argument 240 if (SplitCriticalEdge(LatchTerm, SuccNum, CriticalEdgeSplittingOptions(DT, LI) in SplitEdge() 251 return SplitBlock(Succ, Succ->begin(), DT, LI); in SplitEdge() 258 return SplitBlock(BB, BB->getTerminator(), DT, LI); in SplitEdge() [all …]
|
D | LoopSimplify.cpp | 121 auto *DT = DTWP ? &DTWP->getDomTree() : nullptr; in InsertPreheaderForLoop() local 145 AA, DT, LI, PreserveLCSSA); in InsertPreheaderForLoop() 164 AliasAnalysis *AA, DominatorTree *DT, in rewriteLoopExitBlock() argument 182 NewExitBB = SplitBlockPredecessors(Exit, LoopBlocks, ".loopexit", AA, DT, in rewriteLoopExitBlock() 212 DominatorTree *DT, in findPHIToPartitionLoops() argument 218 if (Value *V = SimplifyInstruction(PN, DL, nullptr, DT, AC)) { in findPHIToPartitionLoops() 256 AliasAnalysis *AA, DominatorTree *DT, in separateNestedLoop() argument 267 PHINode *PN = findPHIToPartitionLoops(L, AA, DT, AC); in separateNestedLoop() 295 AA, DT, LI, PreserveLCSSA); in separateNestedLoop() 326 if (DT->dominates(Header, P)) in separateNestedLoop() [all …]
|
/external/llvm/include/llvm/Transforms/Utils/ |
D | BasicBlockUtils.h | 55 bool MergeBlockIntoPredecessor(BasicBlock *BB, DominatorTree *DT = nullptr, 84 DominatorTree *DT; member 91 : AA(nullptr), DT(nullptr), LI(nullptr), MergeIdenticalEdges(false), in CriticalEdgeSplittingOptions() 95 CriticalEdgeSplittingOptions(AliasAnalysis *AA, DominatorTree *DT = nullptr, 97 : AA(AA), DT(DT), LI(LI), MergeIdenticalEdges(false), in AA() 102 CriticalEdgeSplittingOptions(DominatorTree *DT, LoopInfo *LI) in CriticalEdgeSplittingOptions() 103 : AA(nullptr), DT(DT), LI(LI), MergeIdenticalEdges(false), in CriticalEdgeSplittingOptions() 195 DominatorTree *DT = nullptr, LoopInfo *LI = nullptr); 203 DominatorTree *DT = nullptr, LoopInfo *LI = nullptr); 224 DominatorTree *DT = nullptr, [all …]
|
/external/llvm/lib/Analysis/ |
D | PHITransAddr.cpp | 147 const DominatorTree *DT) { in PHITranslateSubExpr() argument 191 Value *PHIIn = PHITranslateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr() 209 (!DT || DT->dominates(CastI->getParent(), PredBB))) in PHITranslateSubExpr() 220 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT); in PHITranslateSubExpr() 231 if (Value *V = SimplifyGEPInst(GEPOps, DL, TLI, DT, AC)) { in PHITranslateSubExpr() 245 (!DT || DT->dominates(GEPI->getParent(), PredBB))) { in PHITranslateSubExpr() 267 Value *LHS = PHITranslateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT); in PHITranslateSubExpr() 286 if (Value *Res = SimplifyAddInst(LHS, RHS, isNSW, isNUW, DL, TLI, DT, AC)) { in PHITranslateSubExpr() 303 (!DT || DT->dominates(BO->getParent(), PredBB))) in PHITranslateSubExpr() 320 const DominatorTree *DT) { in PHITranslateValue() argument [all …]
|
D | CaptureTracking.cpp | 60 CapturesBefore(bool ReturnCaptures, const Instruction *I, DominatorTree *DT, in CapturesBefore() 62 : BeforeHere(I), DT(DT), ReturnCaptures(ReturnCaptures), in CapturesBefore() 75 if (BeforeHere != I && !DT->isReachableFromEntry(BB)) in shouldExplore() 80 if (BeforeHere != I && DT->dominates(BeforeHere, I) && in shouldExplore() 81 !isPotentiallyReachable(I, BeforeHere, DT)) in shouldExplore() 96 if (BeforeHere != I && !DT->isReachableFromEntry(BB)) in captured() 98 if (BeforeHere != I && DT->dominates(BeforeHere, I) && in captured() 99 !isPotentiallyReachable(I, BeforeHere, DT)) in captured() 106 DominatorTree *DT; member 149 DominatorTree *DT, bool IncludeI) { in PointerMayBeCapturedBefore() argument [all …]
|
D | CFG.cpp | 131 const DominatorTree *DT, in isPotentiallyReachableInner() argument 135 if (DT && !DT->isReachableFromEntry(StopBB)) in isPotentiallyReachableInner() 136 DT = nullptr; in isPotentiallyReachableInner() 148 if (DT && DT->dominates(BB, StopBB)) in isPotentiallyReachableInner() 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 DT, LI); in isPotentiallyReachable()
|
D | InstructionSimplify.cpp | 50 const DominatorTree *DT; member 57 : DL(DL), TLI(tli), DT(dt), AC(ac), CxtI(cxti) {} in Query() 103 static bool ValueDominatesPHI(Value *V, PHINode *P, const DominatorTree *DT) { in ValueDominatesPHI() argument 116 if (DT) { in ValueDominatesPHI() 117 if (!DT->isReachableFromEntry(P->getParent())) in ValueDominatesPHI() 119 if (!DT->isReachableFromEntry(I->getParent())) in ValueDominatesPHI() 121 return DT->dominates(I, P); in ValueDominatesPHI() 460 if (!ValueDominatesPHI(RHS, PI, Q.DT)) in ThreadBinOpOverPHI() 466 if (!ValueDominatesPHI(LHS, PI, Q.DT)) in ThreadBinOpOverPHI() 508 if (!ValueDominatesPHI(RHS, PI, Q.DT)) in ThreadCmpOverPHI() [all …]
|
D | RegionInfo.cpp | 66 DominatorTree *DT, Region *Parent) : in Region() argument 67 RegionBase<RegionTraits<Function>>(Entry, Exit, RI, DT, Parent) { in Region() 96 DT = DT_; in recalculate() 101 this, DT, nullptr); in recalculate() 121 auto DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); in runOnFunction() local 125 RI.recalculate(F, DT, PDT, DF); in runOnFunction()
|
/external/llvm/lib/Transforms/Scalar/ |
D | LICM.cpp | 77 static bool sink(Instruction &I, LoopInfo *LI, DominatorTree *DT, 79 static bool isGuaranteedToExecute(Instruction &Inst, DominatorTree *DT, 81 static bool isSafeToExecuteUnconditionally(Instruction &Inst, DominatorTree *DT, 91 DominatorTree *DT, Loop *CurLoop, 131 DominatorTree *DT; // Dominator Tree for the current Loop. member 181 DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); in runOnLoop() 185 assert(L->isLCSSAForm(*DT) && "Loop is not in LCSSA form."); in runOnLoop() 235 Changed |= sinkRegion(DT->getNode(L->getHeader()), AA, LI, DT, TLI, CurLoop, in runOnLoop() 238 Changed |= hoistRegion(DT->getNode(L->getHeader()), AA, LI, DT, TLI, in runOnLoop() 252 PIC, LI, DT, CurLoop, in runOnLoop() [all …]
|
D | LoopRotation.cpp | 80 DominatorTree *DT; member in __anon04536f5f0111::LoopRotate 112 DT = DTWP ? &DTWP->getDomTree() : nullptr; in runOnLoop() 314 if (DT) in simplifyLoopLatch() 315 DT->eraseNode(Latch); in simplifyLoopLatch() 502 if (DT) { in rotateLoop() 507 DomTreeNode *OrigHeaderNode = DT->getNode(OrigHeader); in rotateLoop() 510 DomTreeNode *OrigPreheaderNode = DT->getNode(OrigPreheader); in rotateLoop() 512 DT->changeImmediateDominator(HeaderChildren[I], OrigPreheaderNode); in rotateLoop() 514 assert(DT->getNode(Exit)->getIDom() == OrigPreheaderNode); in rotateLoop() 515 assert(DT->getNode(NewHeader)->getIDom() == OrigPreheaderNode); in rotateLoop() [all …]
|
D | PlaceSafepoints.cpp | 177 InsertSafepointPoll(DominatorTree &DT, Instruction *after, 204 DominatorTree &DT) { in containsUnconditionalCallSafepoint() argument 215 assert(DT.dominates(Header, Pred) && "loop latch not dominated by header?"); in containsUnconditionalCallSafepoint() 233 Current = DT.getNode(Current)->getIDom()->getBlock(); in containsUnconditionalCallSafepoint() 328 DominatorTree DT; in runOnLoop() local 329 DT.recalculate(*header->getParent()); in runOnLoop() 349 containsUnconditionalCallSafepoint(L, header, pred, DT)) { in runOnLoop() 385 DominatorTree &DT) { in findLocationForEntrySafepoint() argument 450 DT.recalculate(F); in findLocationForEntrySafepoint() 453 DT.verifyDomTree(); in findLocationForEntrySafepoint() [all …]
|
/external/clang/lib/Lex/ |
D | PPExpressions.cpp | 82 static bool EvaluateDefined(PPValue &Result, Token &PeekTok, DefinedTracker &DT, in EvaluateDefined() argument 156 DT.State = DefinedTracker::DefinedMacro; in EvaluateDefined() 157 DT.TheMacro = II; in EvaluateDefined() 169 static bool EvaluateValue(PPValue &Result, Token &PeekTok, DefinedTracker &DT, in EvaluateValue() argument 171 DT.State = DefinedTracker::Unknown; in EvaluateValue() 186 return(EvaluateDefined(Result, PeekTok, DT, ValueLive, PP)); in EvaluateValue() 336 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue() 353 DT.State = DefinedTracker::Unknown; in EvaluateValue() 363 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue() 370 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue() [all …]
|
/external/llvm/include/llvm/IR/ |
D | Dominators.h | 44 DominatorTreeBase<GraphTraits<BasicBlock *>::NodeType> &DT LLVM_COMMA 48 DominatorTreeBase<GraphTraits<Inverse<BasicBlock *> >::NodeType> &DT 156 static NodeType *getEntryNode(DominatorTree *DT) { 157 return DT->getRootNode(); 208 DominatorTree DT; 217 DominatorTree &getDomTree() { return DT; } 218 const DominatorTree &getDomTree() const { return DT; } 228 void releaseMemory() override { DT.releaseMemory(); }
|