1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00

Add SkipPHIsAndLabels from PHIElimination to MachineBasicBlock. It is needed

elsewhere.

llvm-svn: 117763
This commit is contained in:
Jakob Stoklund Olesen 2010-10-30 01:26:14 +00:00
parent b751dffc9f
commit 0ab92619d0
2 changed files with 12 additions and 0 deletions

View File

@ -290,6 +290,11 @@ public:
/// Returns end() is there's no non-PHI instruction.
iterator getFirstNonPHI();
/// SkipPHIsAndLabels - Return the first instruction in MBB after I that is
/// not a PHI or a label. This is the correct point to insert copies at the
/// beginning of a basic block.
iterator SkipPHIsAndLabels(iterator I);
/// getFirstTerminator - returns an iterator to the first terminator
/// instruction of this basic block. If a terminator does not exist,
/// it returns end()

View File

@ -147,6 +147,13 @@ MachineBasicBlock::iterator MachineBasicBlock::getFirstNonPHI() {
return I;
}
MachineBasicBlock::iterator
MachineBasicBlock::SkipPHIsAndLabels(MachineBasicBlock::iterator I) {
while (I != end() && (I->isPHI() || I->isLabel() || I->isDebugValue()))
++I;
return I;
}
MachineBasicBlock::iterator MachineBasicBlock::getFirstTerminator() {
iterator I = end();
while (I != begin() && (--I)->getDesc().isTerminator())