Lines Matching refs:BasicBlock
43 class BasicBlock {
48 explicit BasicBlock(uint32_t id);
54 const std::vector<BasicBlock*>* predecessors() const { in predecessors()
59 std::vector<BasicBlock*>* predecessors() { return &predecessors_; } in predecessors()
62 const std::vector<BasicBlock*>* successors() const { return &successors_; } in successors()
65 std::vector<BasicBlock*>* successors() { return &successors_; } in successors()
68 std::vector<BasicBlock*>* structural_predecessors() { in structural_predecessors()
73 const std::vector<BasicBlock*>* structural_predecessors() const { in structural_predecessors()
78 std::vector<BasicBlock*>* structural_successors() { in structural_successors()
83 const std::vector<BasicBlock*>* structural_successors() const { in structural_successors()
118 void SetImmediateDominator(BasicBlock* dom_block);
123 void SetImmediateStructuralDominator(BasicBlock* dom_block);
128 void SetImmediateStructuralPostDominator(BasicBlock* pdom_block);
131 BasicBlock* immediate_dominator();
134 const BasicBlock* immediate_dominator() const;
137 BasicBlock* immediate_structural_dominator();
140 const BasicBlock* immediate_structural_dominator() const;
143 BasicBlock* immediate_structural_post_dominator();
146 const BasicBlock* immediate_structural_post_dominator() const;
162 const std::vector<BasicBlock*>& next = std::vector<BasicBlock*>());
165 bool operator==(const BasicBlock& other) const { return other.id_ == id_; }
172 bool dominates(const BasicBlock& other) const;
176 bool structurally_dominates(const BasicBlock& other) const;
180 bool structurally_postdominates(const BasicBlock& other) const;
182 void RegisterStructuralSuccessor(BasicBlock* block) { in RegisterStructuralSuccessor()
193 using value_type = BasicBlock*;
211 const BasicBlock* block,
212 std::function<const BasicBlock*(const BasicBlock*)> dominator_func);
218 const BasicBlock*& operator*();
224 const BasicBlock* current_;
225 std::function<const BasicBlock*(const BasicBlock*)> dom_func_;
274 BasicBlock* immediate_dominator_;
277 BasicBlock* immediate_structural_dominator_;
280 BasicBlock* immediate_structural_post_dominator_;
283 std::vector<BasicBlock*> predecessors_;
286 std::vector<BasicBlock*> successors_;
303 std::vector<BasicBlock*> structural_predecessors_;
304 std::vector<BasicBlock*> structural_successors_;
309 bool operator==(const BasicBlock::DominatorIterator& lhs,
310 const BasicBlock::DominatorIterator& rhs);
314 bool operator!=(const BasicBlock::DominatorIterator& lhs,
315 const BasicBlock::DominatorIterator& rhs);