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 (GD) {

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)