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)