diff options
author | Chris Lattner <sabre@nondot.org> | 2004-07-31 01:59:11 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-07-31 01:59:11 +0000 |
commit | dc4a4922d32b470acd68498d41e3b8130cf1e74e (patch) | |
tree | 3338d9db10e2b96b59e011a834f3d715e61f7003 /include/llvm/CodeGen/MachineBasicBlock.h | |
parent | 0a88d2d8b96aa02449afb94761d67c3b59aade5c (diff) |
Add some machine CFG related stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15352 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineBasicBlock.h')
-rw-r--r-- | include/llvm/CodeGen/MachineBasicBlock.h | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/include/llvm/CodeGen/MachineBasicBlock.h b/include/llvm/CodeGen/MachineBasicBlock.h index 62657037d9..93713685ba 100644 --- a/include/llvm/CodeGen/MachineBasicBlock.h +++ b/include/llvm/CodeGen/MachineBasicBlock.h @@ -115,30 +115,42 @@ public: pred_iterator pred_end() { return Predecessors.end (); } const_pred_iterator pred_end() const { return Predecessors.end (); } unsigned pred_size() const { return Predecessors.size (); } + bool pred_empty() const { return Predecessors.empty(); } succ_iterator succ_begin() { return Successors.begin (); } const_succ_iterator succ_begin() const { return Successors.begin (); } succ_iterator succ_end() { return Successors.end (); } const_succ_iterator succ_end() const { return Successors.end (); } unsigned succ_size() const { return Successors.size (); } + bool succ_empty() const { return Successors.empty(); } // Machine-CFG mutators /// addSuccessor - Add succ as a successor of this MachineBasicBlock. /// The Predecessors list of succ is automatically updated. /// - void addSuccessor (MachineBasicBlock *succ) { - Successors.push_back (succ); - succ->addPredecessor (this); + void addSuccessor(MachineBasicBlock *succ) { + Successors.push_back(succ); + succ->addPredecessor(this); } - /// removeSuccessor - Remove succ from the successors list of this + /// removeSuccessor - Remove successor from the successors list of this /// MachineBasicBlock. The Predecessors list of succ is automatically updated. /// - void removeSuccessor (MachineBasicBlock *succ) { - succ->removePredecessor (this); - std::vector<MachineBasicBlock *>::iterator goner = - std::find (Successors.begin(), Successors.end (), succ); - Successors.erase (goner); + void removeSuccessor(MachineBasicBlock *succ) { + succ->removePredecessor(this); + succ_iterator I = std::find(Successors.begin(), Successors.end(), succ); + assert(I != Successors.end() && "Not a current successor!"); + Successors.erase(I); + } + + /// removeSuccessor - Remove specified successor from the successors list of + /// this MachineBasicBlock. The Predecessors list of succ is automatically + /// updated. + /// + void removeSuccessor(succ_iterator I) { + assert(I != Successors.end() && "Not a current successor!"); + (*I)->removePredecessor(this); + Successors.erase(I); } /// getFirstTerminator - returns an iterator to the first terminator |