forked from OSchip/llvm-project
Add a new MachineBasicBlock utility function, isLayoutSuccessor, that
can be used when deciding if a block can transfer control to another via a fall-through instead of a branch. llvm-svn: 56968
This commit is contained in:
parent
f40296bb49
commit
a78bae34a5
|
@ -234,6 +234,13 @@ public:
|
|||
/// block.
|
||||
bool isSuccessor(MachineBasicBlock *MBB) const;
|
||||
|
||||
/// isLayoutSuccessor - Return true if the specified MBB will be emitted
|
||||
/// immediately after this block, such that if this block exits by
|
||||
/// falling through, control will transfer to the specified MBB. Note
|
||||
/// that MBB need not be a successor at all, for example if this block
|
||||
/// ends with an unconditional branch to some other block.
|
||||
bool isLayoutSuccessor(MachineBasicBlock *MBB) const;
|
||||
|
||||
/// getFirstTerminator - returns an iterator to the first terminator
|
||||
/// instruction of this basic block. If a terminator does not exist,
|
||||
/// it returns end()
|
||||
|
|
|
@ -254,6 +254,11 @@ bool MachineBasicBlock::isSuccessor(MachineBasicBlock *MBB) const {
|
|||
return I != Successors.end();
|
||||
}
|
||||
|
||||
bool MachineBasicBlock::isLayoutSuccessor(MachineBasicBlock *MBB) const {
|
||||
MachineFunction::const_iterator I(this);
|
||||
return next(I) == MachineFunction::const_iterator(MBB);
|
||||
}
|
||||
|
||||
/// removeFromParent - This method unlinks 'this' from the containing function,
|
||||
/// and returns it, but does not delete it.
|
||||
MachineBasicBlock *MachineBasicBlock::removeFromParent() {
|
||||
|
|
Loading…
Reference in New Issue