14#ifndef LLVM_ANALYSIS_DOMTREEUPDATER_H
15#define LLVM_ANALYSIS_DOMTREEUPDATER_H
26class PostDominatorTree;
88 class CallBackOnDeletion final :
public CallbackVH {
95 BasicBlock *DelBB =
nullptr;
96 std::function<void(BasicBlock *)> Callback_;
98 void deleted()
override {
104 std::vector<CallBackOnDeletion> Callbacks;
111 void validateDeleteBB(BasicBlock *DelBB);
114 bool forceFlushDeletedBB();
117extern template class GenericDomTreeUpdater<DomTreeUpdater, DominatorTree,
121GenericDomTreeUpdater<DomTreeUpdater, DominatorTree,
122 PostDominatorTree>::recalculate(Function &
F);
125GenericDomTreeUpdater<DomTreeUpdater, DominatorTree, PostDominatorTree>::
126 applyUpdatesImpl<
true>();
128GenericDomTreeUpdater<DomTreeUpdater, DominatorTree, PostDominatorTree>::
129 applyUpdatesImpl<
false>();
#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.