mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 22:50:47 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56968 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e4a5ea3130
commit
6ade6f55a8
@ -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
Block a user