LLVM: include/llvm/Analysis/DomTreeUpdater.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_ANALYSIS_DOMTREEUPDATER_H

15#define LLVM_ANALYSIS_DOMTREEUPDATER_H

16

21#include

22#include

23

24namespace llvm {

25

28

31

37

38public:

41 using Base::Base;

42

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

74

75

76

77

78

79

80

81

82

84 std::function<void(BasicBlock *)> Callback);

85

86

87

88

90

91private:

92 class CallBackOnDeletion final : public CallbackVH {

93 public:

95 std::function<void(BasicBlock *)> Callback)

96 : CallbackVH(V), DelBB(V), Callback_(Callback) {}

97

98 private:

99 BasicBlock *DelBB = nullptr;

100 std::function<void(BasicBlock *)> Callback_;

101

102 void deleted() override {

103 Callback_(DelBB);

104 CallbackVH::deleted();

105 }

106 };

107

108 std::vector Callbacks;

109

110

111

112

113

114

115 void validateDeleteBB(BasicBlock *DelBB);

116

117

118 bool forceFlushDeletedBB();

119};

120

124

127 applyUpdatesImpl<true>();

130 applyUpdatesImpl<false>();

131}

132

133#endif

#define LLVM_TEMPLATE_ABI

#define LLVM_DUMP_METHOD

Mark debug helper function definitions like dump() that should not be stripped from debug builds.

LLVM Basic Block Representation.

Value handle with callbacks on RAUW and destruction.

Definition DomTreeUpdater.h:34

GenericDomTreeUpdater< DomTreeUpdater, DominatorTree, PostDominatorTree > Base

Definition DomTreeUpdater.h:39

~DomTreeUpdater()

Definition DomTreeUpdater.h:43

Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.

GenericDomTreeUpdater(UpdateStrategy Strategy_)

PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominat...

This is an optimization pass for GlobalISel generic memory operations.

void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)