LLVM: include/llvm/Analysis/IteratedDominanceFrontier.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_ANALYSIS_ITERATEDDOMINANCEFRONTIER_H
10#define LLVM_ANALYSIS_ITERATEDDOMINANCEFRONTIER_H
11
14
15namespace llvm {
16
18
20
21
25
30
31 ChildrenTy get(const NodeRef &N);
32
34};
35
36}
37
38template
54
57
58
59
60
61
63
64template
67
68 using OrderedNodeTy =
70
71 if () {
73 return {Children.begin(), Children.end()};
74 }
75
76 return GD->template getChildren(N);
77}
78
79}
80
81}
82
83#endif
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Compute iterated dominance frontiers using a linear time algorithm.
LLVM Basic Block Representation.
Core dominator tree base class.
Determine the iterated dominance frontier, given a set of defining blocks, and optionally,...
std::conditional_t< IsPostDom, Inverse< NodeTy * >, NodeTy * > OrderedNodeTy
IDFCalculatorDetail::ChildrenGetterTy< NodeTy, IsPostDom > ChildrenGetterTy
IDFCalculator(DominatorTreeBase< BasicBlock, IsPostDom > &DT, const GraphDiff< BasicBlock *, IsPostDom > *GD)
Definition IteratedDominanceFrontier.h:48
IDFCalculator(DominatorTreeBase< BasicBlock, IsPostDom > &DT)
Definition IteratedDominanceFrontier.h:45
typename llvm::IDFCalculatorBase< BasicBlock, IsPostDom > IDFCalculatorBase
Definition IteratedDominanceFrontier.h:41
typename IDFCalculatorBase::ChildrenGetterTy ChildrenGetterTy
Definition IteratedDominanceFrontier.h:43
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
This is an optimization pass for GlobalISel generic memory operations.
IDFCalculator< true > ReverseIDFCalculator
Definition IteratedDominanceFrontier.h:56
IDFCalculator< false > ForwardIDFCalculator
Definition IteratedDominanceFrontier.h:55
iterator_range< typename GraphTraits< GraphType >::ChildIteratorType > children(const typename GraphTraits< GraphType >::NodeRef &G)
BasicBlock * NodeRef
Definition IteratedDominanceFrontier.h:23
ChildrenGetterTy(const GraphDiff< BasicBlock *, IsPostDom > *GD)
Definition IteratedDominanceFrontier.h:27
ChildrenGetterTy()=default
const GraphDiff< BasicBlock *, IsPostDom > * GD
Definition IteratedDominanceFrontier.h:33
SmallVector< BasicBlock *, 8 > ChildrenTy
Definition IteratedDominanceFrontier.h:24
range get(const NodeRef &N)