9#ifndef LLVM_ANALYSIS_ITERATEDDOMINANCEFRONTIER_H
10#define LLVM_ANALYSIS_ITERATEDDOMINANCEFRONTIER_H
31 ChildrenTy
get(
const NodeRef &
N);
38template <
bool IsPostDom>
64template <
bool IsPostDom>
73 return {Children.begin(), Children.end()};
76 return GD->template getChildren<IsPostDom>(
N);
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)
IDFCalculator(DominatorTreeBase< BasicBlock, IsPostDom > &DT)
typename llvm::IDFCalculatorBase< BasicBlock, IsPostDom > IDFCalculatorBase
typename IDFCalculatorBase::ChildrenGetterTy ChildrenGetterTy
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
IDFCalculator< false > ForwardIDFCalculator
iterator_range< typename GraphTraits< GraphType >::ChildIteratorType > children(const typename GraphTraits< GraphType >::NodeRef &G)
ChildrenGetterTy(const GraphDiff< BasicBlock *, IsPostDom > *GD)
ChildrenGetterTy()=default
const GraphDiff< BasicBlock *, IsPostDom > * GD
SmallVector< BasicBlock *, 8 > ChildrenTy
range get(const NodeRef &N)