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
26class PostDominatorTree;
27
30 PostDominatorTree> {
33
34public:
37 using Base::Base;
38
40
41
42
43
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
70
71
72
73
74
75
76
77
78
80 std::function<void(BasicBlock *)> Callback);
81
82
83
84
86
87private:
88 class CallBackOnDeletion final : public CallbackVH {
89 public:
93
94 private:
95 BasicBlock *DelBB = nullptr;
96 std::function<void(BasicBlock *)> Callback_;
97
98 void deleted() override {
99 Callback_(DelBB);
101 }
102 };
103
104 std::vector Callbacks;
105
106
107
108
109
110
111 void validateDeleteBB(BasicBlock *DelBB);
112
113
114 bool forceFlushDeletedBB();
115};
116
117extern template class GenericDomTreeUpdater<DomTreeUpdater, DominatorTree,
118 PostDominatorTree>;
119
120extern template void
121GenericDomTreeUpdater<DomTreeUpdater, DominatorTree,
122 PostDominatorTree>::recalculate(Function &F);
123
124extern template void
125GenericDomTreeUpdater<DomTreeUpdater, DominatorTree, PostDominatorTree>::
126 applyUpdatesImpl<true>();
127extern template void
128GenericDomTreeUpdater<DomTreeUpdater, DominatorTree, PostDominatorTree>::
129 applyUpdatesImpl<false>();
130}
131
132#endif
#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.
virtual void deleted()
Callback for Value destruction.
LLVM_DUMP_METHOD void dump() const
Debug method to help view the internal state of this class.
void callbackDeleteBB(BasicBlock *DelBB, std::function< void(BasicBlock *)> Callback)
Delete DelBB.
void deleteBB(BasicBlock *DelBB)
Delete DelBB.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
void flush()
Apply all pending updates to available trees and flush all BasicBlocks awaiting deletion.
PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominat...
This is an optimization pass for GlobalISel generic memory operations.