aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/MachineBasicBlock.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-07-31 01:59:11 +0000
committerChris Lattner <sabre@nondot.org>2004-07-31 01:59:11 +0000
commitdc4a4922d32b470acd68498d41e3b8130cf1e74e (patch)
tree3338d9db10e2b96b59e011a834f3d715e61f7003 /include/llvm/CodeGen/MachineBasicBlock.h
parent0a88d2d8b96aa02449afb94761d67c3b59aade5c (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.h30
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