6 #ifndef JLM_LLVM_IR_DOMTREE_HPP
7 #define JLM_LLVM_IR_DOMTREE_HPP
17 class ControlFlowGraph;
18 class ControlFlowGraphNode;
63 child(
size_t index)
const noexcept
87 static std::unique_ptr<DominatorTreeNode>
97 std::vector<std::unique_ptr<DominatorTreeNode>>
children_;
100 std::unique_ptr<DominatorTreeNode>
std::vector< std::unique_ptr< DominatorTreeNode > >::const_iterator const_iterator
const_iterator end() const
ControlFlowGraphNode * node() const noexcept
ControlFlowGraphNode * node_
static std::unique_ptr< DominatorTreeNode > create(ControlFlowGraphNode *node)
DominatorTreeNode * parent() const noexcept
size_t depth() const noexcept
DominatorTreeNode(const DominatorTreeNode &)=delete
const_iterator begin() const
DominatorTreeNode(ControlFlowGraphNode *node)
DominatorTreeNode(DominatorTreeNode &&)=delete
std::vector< std::unique_ptr< DominatorTreeNode > > children_
DominatorTreeNode * parent_
DominatorTreeNode & operator=(DominatorTreeNode &&)=delete
DominatorTreeNode * add_child(std::unique_ptr< DominatorTreeNode > child)
size_t nchildren() const noexcept
DominatorTreeNode & operator=(const DominatorTreeNode &)=delete
DominatorTreeNode * child(size_t index) const noexcept
Global memory state passed between functions.
std::unique_ptr< DominatorTreeNode > domtree(ControlFlowGraph &cfg)