Home
last modified time | relevance | path

Searched refs:DominatorTree (Results 1 – 25 of 258) sorted by relevance

1234567891011

/netbsd-src/external/apache2/llvm/dist/llvm/lib/Analysis/
H A DDomPrinter.cpp52 struct DOTGraphTraits<DominatorTree*> : public DOTGraphTraits<DomTreeNode*> {
57 static std::string getGraphName(DominatorTree *DT) { in getGraphName()
61 std::string getNodeLabel(DomTreeNode *Node, DominatorTree *G) { in getNodeLabel()
83 void DominatorTree::viewGraph(const Twine &Name, const Twine &Title) { in viewGraph()
91 void DominatorTree::viewGraph() { in viewGraph()
101 static DominatorTree *getGraph(DominatorTreeWrapperPass *DTWP) { in getGraph()
107 DominatorTreeWrapperPass, false, DominatorTree *,
111 : DOTGraphTraitsViewer<DominatorTreeWrapperPass, false, DominatorTree *, in DomViewer()
119 DominatorTreeWrapperPass, true, DominatorTree *,
123 : DOTGraphTraitsViewer<DominatorTreeWrapperPass, true, DominatorTree *, in DomOnlyViewer()
[all …]
H A DDomTreeUpdater.cpp26 const DominatorTree::UpdateType Update) const { in isUpdateValid()
41 if (Kind == DominatorTree::Insert && !HasEdge) in isUpdateValid()
45 if (Kind == DominatorTree::Delete && HasEdge) in isUpdateValid()
52 const DominatorTree::UpdateType Update) const { in isSelfDominance()
67 DT->applyUpdates(ArrayRef<DominatorTree::UpdateType>(I, E)); in applyDomTreeUpdates()
89 PDT->applyUpdates(ArrayRef<DominatorTree::UpdateType>(I, E)); in applyPostDomTreeUpdates()
230 void DomTreeUpdater::applyUpdates(ArrayRef<DominatorTree::UpdateType> Updates) { in applyUpdates()
250 ArrayRef<DominatorTree::UpdateType> Updates) { in applyUpdatesPermissive()
255 SmallVector<DominatorTree::UpdateType, 8> DeduplicatedUpdates; in applyUpdatesPermissive()
303 DominatorTree &DomTreeUpdater::getDomTree() { in getDomTree()
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
H A DValueTracking.h34 class DominatorTree; variable
62 const DominatorTree *DT = nullptr,
78 const DominatorTree *DT = nullptr,
86 const DominatorTree *DT = nullptr,
95 const DominatorTree *DT = nullptr,
110 const DominatorTree *DT = nullptr,
122 const DominatorTree *DT = nullptr,
136 const DominatorTree *DT = nullptr,
150 const DominatorTree *DT = nullptr,
158 const DominatorTree *DT = nullptr,
[all …]
H A DDomTreeUpdater.h33 DomTreeUpdater(DominatorTree &DT_, UpdateStrategy Strategy_) in DomTreeUpdater()
35 DomTreeUpdater(DominatorTree *DT_, UpdateStrategy Strategy_) in DomTreeUpdater()
41 DomTreeUpdater(DominatorTree &DT_, PostDominatorTree &PDT_, in DomTreeUpdater()
44 DomTreeUpdater(DominatorTree *DT_, PostDominatorTree *PDT_, in DomTreeUpdater()
123 void applyUpdates(ArrayRef<DominatorTree::UpdateType> Updates);
146 void applyUpdatesPermissive(ArrayRef<DominatorTree::UpdateType> Updates);
228 DominatorTree &getDomTree();
262 SmallVector<DominatorTree::UpdateType, 16> PendUpdates;
265 DominatorTree *DT = nullptr;
304 bool isUpdateValid(DominatorTree::UpdateType Update) const;
[all …]
H A DLoads.h23 class DominatorTree; variable
38 const DominatorTree *DT = nullptr,
49 const DominatorTree *DT = nullptr,
59 const DominatorTree *DT = nullptr,
73 const DominatorTree *DT = nullptr,
85 DominatorTree &DT);
98 const DominatorTree *DT = nullptr,
H A DPHITransAddr.h21 class DominatorTree; variable
82 const DominatorTree *DT, bool MustDominate);
92 const DominatorTree &DT,
104 const DominatorTree *DT);
112 BasicBlock *PredBB, const DominatorTree &DT,
H A DMemorySSAUpdater.h48 class DominatorTree; variable
117 DominatorTree &DT);
120 ArrayRef<std::unique_ptr<ValueToValueMapTy>> VMaps, DominatorTree &DT);
125 void applyUpdates(ArrayRef<CFGUpdate> Updates, DominatorTree &DT,
128 void applyInsertUpdates(ArrayRef<CFGUpdate> Updates, DominatorTree &DT);
292 DominatorTree &DT);
293 void applyInsertUpdates(ArrayRef<CFGUpdate>, DominatorTree &DT,
H A DCFG.h24 class DominatorTree; variable
72 const DominatorTree *DT = nullptr, const LoopInfo *LI = nullptr);
83 const DominatorTree *DT = nullptr, const LoopInfo *LI = nullptr);
94 const DominatorTree *DT = nullptr,
109 const DominatorTree *DT = nullptr, const LoopInfo *LI = nullptr);
/netbsd-src/external/apache2/llvm/dist/llvm/examples/IRTransforms/
H A DSimplifyCFG.cpp102 static bool removeDeadBlocks_v2(Function &F, DominatorTree &DT) { in removeDeadBlocks_v2()
105 SmallVector<DominatorTree::UpdateType, 8> DTUpdates; in removeDeadBlocks_v2()
122 DTUpdates.push_back({DominatorTree::Delete, &BB, Succ}); in removeDeadBlocks_v2()
173 static bool eliminateCondBranches_v2(Function &F, DominatorTree &DT) { in eliminateCondBranches_v2()
177 SmallVector<DominatorTree::UpdateType, 8> DTUpdates; in eliminateCondBranches_v2()
207 DTUpdates.push_back({DominatorTree::Delete, &BB, RemovedSucc}); in eliminateCondBranches_v2()
219 static bool eliminateCondBranches_v3(Function &F, DominatorTree &DT) { in eliminateCondBranches_v3()
222 SmallVector<DominatorTree::UpdateType, 8> DTUpdates; in eliminateCondBranches_v3()
254 DTUpdates.push_back({DominatorTree::Delete, &BB, RemovedSucc}); in eliminateCondBranches_v3()
306 static bool mergeIntoSinglePredecessor_v2(Function &F, DominatorTree &DT) { in mergeIntoSinglePredecessor_v2()
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/IR/
H A DDominators.h151 class DominatorTree : public DominatorTreeBase<BasicBlock, false> {
155 DominatorTree() = default;
156 explicit DominatorTree(Function &F) { recalculate(F); }
157 explicit DominatorTree(DominatorTree &DT, DomTreeBuilder::BBUpdates U) {
238 template <> struct GraphTraits<DominatorTree*>
240 static NodeRef getEntryNode(DominatorTree *DT) { return DT->getRootNode(); }
242 static nodes_iterator nodes_begin(DominatorTree *N) {
246 static nodes_iterator nodes_end(DominatorTree *N) {
258 using Result = DominatorTree;
261 DominatorTree run(Function &F, FunctionAnalysisManager &);
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Utils/
H A DCodeMoverUtils.h21 class DominatorTree; variable
29 const DominatorTree &DT,
36 const DominatorTree &DT,
41 DominatorTree &DT,
48 DominatorTree &DT,
55 DominatorTree &DT,
62 DominatorTree &DT, const PostDominatorTree &PDT,
H A DSimplifyIndVar.h25 class DominatorTree; variable
37 const DominatorTree *DT = nullptr;
45 const DominatorTree *getDomTree() const { return DT; } in getDomTree()
51 bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT,
58 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT,
79 DominatorTree *DT, SmallVectorImpl<WeakTrackingVH> &DeadInsts,
H A DLoopUtils.h57 BasicBlock *InsertPreheaderForLoop(Loop *L, DominatorTree *DT, LoopInfo *LI,
65 bool formDedicatedExitBlocks(Loop *L, DominatorTree *DT, LoopInfo *LI,
84 SmallVectorImpl<Instruction *> &Worklist, const DominatorTree &DT,
100 bool formLCSSA(Loop &L, const DominatorTree &DT, const LoopInfo *LI,
112 bool formLCSSARecursively(Loop &L, const DominatorTree &DT, const LoopInfo *LI,
150 bool sinkRegion(DomTreeNode *, AAResults *, LoopInfo *, DominatorTree *,
164 bool hoistRegion(DomTreeNode *, AAResults *, LoopInfo *, DominatorTree *,
181 void deleteDeadLoop(Loop *L, DominatorTree *DT, ScalarEvolution *SE,
187 void breakLoopBackedge(Loop *L, DominatorTree &DT, ScalarEvolution &SE,
201 PredIteratorCache &, LoopInfo *, DominatorTree *, const TargetLibraryInfo *,
[all …]
H A DUnrollLoop.h28 class DominatorTree; variable
83 ScalarEvolution *SE, DominatorTree *DT,
92 LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC,
99 DominatorTree *DT, AssumptionCache *AC,
104 bool isSafeToUnrollAndJam(Loop *L, ScalarEvolution &SE, DominatorTree &DT,
108 DominatorTree &DT, LoopInfo *LI, ScalarEvolution &SE,
118 ScalarEvolution *SE, DominatorTree *DT,
H A DBasicBlockUtils.h32 class DominatorTree; variable
50 SmallVectorImpl<DominatorTree::UpdateType> *Updates,
137 DominatorTree *DT;
150 CriticalEdgeSplittingOptions(DominatorTree *DT = nullptr,
266 DominatorTree *DT = nullptr, LoopInfo *LI = nullptr,
297 BasicBlock *SplitBlock(BasicBlock *Old, Instruction *SplitPt, DominatorTree *DT,
341 const char *Suffix, DominatorTree *DT,
384 DominatorTree *DT, LoopInfo *LI = nullptr,
438 DominatorTree *DT,
H A DAssumeBundleBuilder.h27 class DominatorTree; variable
43 DominatorTree *DT = nullptr);
50 DominatorTree *DT = nullptr);
72 DominatorTree *DT);
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/
H A DLoopFuse.cpp181 const DominatorTree *DT;
186 FusionCandidate(Loop *L, const DominatorTree *DT, in FusionCandidate()
393 const DominatorTree *DT = LHS.DT; in operator ()()
546 DominatorTree &DT;
556 LoopFuser(LoopInfo &LI, DominatorTree &DT, DependenceInfo &DI, in LoopFuser()
799 SmallVector<DominatorTree::UpdateType, 8> TreeUpdates; in peelFusionCandidate()
805 DominatorTree::UpdateType(DominatorTree::Delete, Pred, BB)); in peelFusionCandidate()
1365 SmallVector<DominatorTree::UpdateType, 8> TreeUpdates; in performFusion()
1387 TreeUpdates.emplace_back(DominatorTree::UpdateType( in performFusion()
1388 DominatorTree::Delete, FC0.ExitingBlock, FC1.Preheader)); in performFusion()
[all …]
H A DSimplifyCFGPass.cpp85 std::vector<DominatorTree::UpdateType> Updates; in mergeEmptyReturnBlocks()
154 Updates.push_back({DominatorTree::Insert, Predecessor, RetBlock}); in mergeEmptyReturnBlocks()
156 Updates.push_back({DominatorTree::Delete, Predecessor, &BB}); in mergeEmptyReturnBlocks()
184 Updates.push_back({DominatorTree::Insert, &BB, RetBlock}); in mergeEmptyReturnBlocks()
238 DominatorTree *DT, in simplifyFunctionCFGImpl()
266 DominatorTree *DT, in simplifyFunctionCFG()
269 (DT && DT->verify(DominatorTree::VerificationLevel::Full))) && in simplifyFunctionCFG()
275 (DT && DT->verify(DominatorTree::VerificationLevel::Full))) && in simplifyFunctionCFG()
310 DominatorTree *DT = nullptr; in run()
347 DominatorTree *DT = nullptr; in runOnFunction()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/IR/
H A DDominators.cpp106 bool DominatorTree::invalidate(Function &F, const PreservedAnalyses &PA, in invalidate()
115 bool DominatorTree::dominates(const BasicBlock *BB, const Use &U) const { in dominates()
128 bool DominatorTree::dominates(const Value *DefV, in dominates()
167 bool DominatorTree::dominates(const Instruction *Def, in dominates()
200 bool DominatorTree::dominates(const BasicBlockEdge &BBE, in dominates()
250 bool DominatorTree::dominates(const BasicBlockEdge &BBE, const Use &U) const { in dominates()
268 bool DominatorTree::dominates(const Value *DefV, const Use &U) const { in dominates()
328 bool DominatorTree::isReachableFromEntry(const Use &U) const { in isReachableFromEntry()
344 bool DominatorTree::dominates(const BasicBlockEdge &BBE1, in dominates()
360 DominatorTree DominatorTreeAnalysis::run(Function &F, in run()
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/
H A DBasicBlockUtils.cpp57 SmallVectorImpl<DominatorTree::UpdateType> *Updates, in DetatchDeadBlocks()
66 Updates->push_back({DominatorTree::Delete, BB, Succ}); in DetatchDeadBlocks()
105 SmallVector<DominatorTree::UpdateType, 4> Updates; in DeleteDeadBlocks()
229 std::vector<DominatorTree::UpdateType> Updates; in MergeBlockIntoPredecessor()
244 Updates.push_back({DominatorTree::Insert, PredBB, SuccOfBB}); in MergeBlockIntoPredecessor()
246 Updates.push_back({DominatorTree::Delete, BB, SuccOfBB}); in MergeBlockIntoPredecessor()
247 Updates.push_back({DominatorTree::Delete, PredBB, BB}); in MergeBlockIntoPredecessor()
495 BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, DominatorTree *DT, in SplitEdge()
648 SmallVector<DominatorTree::UpdateType, 3> Updates; in ehAwareSplitEdge()
650 Updates.push_back({DominatorTree::Insert, BB, NewBB}); in ehAwareSplitEdge()
[all …]
H A DMatrixUtils.cpp52 {DominatorTree::Delete, Preheader, Tmp}, in CreateLoop()
53 {DominatorTree::Insert, Header, Body}, in CreateLoop()
54 {DominatorTree::Insert, Body, Latch}, in CreateLoop()
55 {DominatorTree::Insert, Latch, Header}, in CreateLoop()
56 {DominatorTree::Insert, Latch, Exit}, in CreateLoop()
57 {DominatorTree::Insert, Preheader, Header}, in CreateLoop()
H A DFixIrreducible.cpp158 static void createNaturalLoopInternal(LoopInfo &LI, DominatorTree &DT, in createNaturalLoopInternal()
190 assert(DT.verify(DominatorTree::VerificationLevel::Full)); in createNaturalLoopInternal()
192 assert(DT.verify(DominatorTree::VerificationLevel::Fast)); in createNaturalLoopInternal()
247 static void createNaturalLoop(LoopInfo &LI, DominatorTree &DT, Function *F, in createNaturalLoop()
253 static void createNaturalLoop(LoopInfo &LI, DominatorTree &DT, Loop &L, in createNaturalLoop()
261 static bool makeReducible(LoopInfo &LI, DominatorTree &DT, Graph &&G) { in makeReducible()
307 static bool FixIrreducibleImpl(Function &F, LoopInfo &LI, DominatorTree &DT) { in FixIrreducibleImpl()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/IPO/
H A DLoopExtractor.cpp66 function_ref<DominatorTree &(Function &)> LookupDomTree, in LoopExtractor()
78 function_ref<DominatorTree &(Function &)> LookupDomTree;
85 DominatorTree &DT);
86 bool extractLoop(Loop *L, LoopInfo &LI, DominatorTree &DT);
122 auto LookupDomTree = [this](Function &F) -> DominatorTree & { in runOnModule()
181 DominatorTree &DT = LookupDomTree(F); in runOnFunction()
226 LoopInfo &LI, DominatorTree &DT) { in extractLoops()
244 bool LoopExtractor::extractLoop(Loop *L, LoopInfo &LI, DominatorTree &DT) { in extractLoop()
268 auto LookupDomTree = [&FAM](Function &F) -> DominatorTree & { in run()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/
H A DAMDGPUUnifyDivergentExitNodes.cpp190 std::vector<DominatorTree::UpdateType> Updates; in unifyReturnBlockSet()
201 Updates.push_back({DominatorTree::Insert, BB, NewRetBlock}); in unifyReturnBlockSet()
218 DominatorTree *DT = nullptr; in runOnFunction()
245 std::vector<DominatorTree::UpdateType> Updates; in runOnFunction()
303 Updates.push_back({DominatorTree::Insert, BB, DummyReturnBB}); in runOnFunction()
314 Updates.push_back({DominatorTree::Insert, BB, TransitionBB}); in runOnFunction()
316 Updates.push_back({DominatorTree::Insert, TransitionBB, Successor}); in runOnFunction()
317 Updates.push_back({DominatorTree::Delete, BB, Successor}); in runOnFunction()
324 Updates.push_back({DominatorTree::Insert, BB, DummyReturnBB}); in runOnFunction()
345 Updates.push_back({DominatorTree::Insert, BB, UnreachableBlock}); in runOnFunction()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/CodeGen/
H A DIndirectBrExpandPass.cpp174 SmallVector<DominatorTree::UpdateType, 8> Updates; in runOnFunction()
180 Updates.push_back({DominatorTree::Delete, IBr->getParent(), SuccBB}); in runOnFunction()
211 SmallVector<DominatorTree::UpdateType, 8> Updates; in runOnFunction()
222 Updates.push_back({DominatorTree::Delete, IBr->getParent(), SuccBB}); in runOnFunction()
244 Updates.push_back({DominatorTree::Insert, IBr->getParent(), SwitchBB}); in runOnFunction()
246 Updates.push_back({DominatorTree::Delete, IBr->getParent(), SuccBB}); in runOnFunction()
266 Updates.push_back({DominatorTree::Insert, SwitchBB, BB}); in runOnFunction()

1234567891011