mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-05 10:17:37 +00:00
Add a getFirstNonPHI utility function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107778 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b8c86a010c
commit
d463a74464
@ -282,6 +282,13 @@ public:
|
||||
/// branch to do so (e.g., a table jump). True is a conservative answer.
|
||||
bool canFallThrough();
|
||||
|
||||
/// Returns a pointer to the first instructon in this block that is not a
|
||||
/// PHINode instruction. When adding instruction to the beginning of the
|
||||
/// basic block, they should be added before the returned value, not before
|
||||
/// the first instruction, which might be PHI.
|
||||
/// Returns end() is there's no non-PHI instruction.
|
||||
iterator getFirstNonPHI();
|
||||
|
||||
/// getFirstTerminator - returns an iterator to the first terminator
|
||||
/// instruction of this basic block. If a terminator does not exist,
|
||||
/// it returns end()
|
||||
|
@ -139,6 +139,13 @@ void ilist_traits<MachineInstr>::deleteNode(MachineInstr* MI) {
|
||||
Parent->getParent()->DeleteMachineInstr(MI);
|
||||
}
|
||||
|
||||
MachineBasicBlock::iterator MachineBasicBlock::getFirstNonPHI() {
|
||||
iterator I = begin();
|
||||
while (I != end() && I->isPHI())
|
||||
++I;
|
||||
return I;
|
||||
}
|
||||
|
||||
MachineBasicBlock::iterator MachineBasicBlock::getFirstTerminator() {
|
||||
iterator I = end();
|
||||
while (I != begin() && (--I)->getDesc().isTerminator())
|
||||
|
Loading…
Reference in New Issue
Block a user