mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-23 14:25:07 +00:00
Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to
use it instead of duplicating its functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51499 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -126,8 +126,7 @@ void CodeExtractor::severSplitPHINodes(BasicBlock *&Header) {
|
||||
// containing PHI nodes merging values from outside of the region, and a
|
||||
// second that contains all of the code for the block and merges back any
|
||||
// incoming values from inside of the region.
|
||||
BasicBlock::iterator AfterPHIs = Header->begin();
|
||||
while (isa<PHINode>(AfterPHIs)) ++AfterPHIs;
|
||||
BasicBlock::iterator AfterPHIs = Header->getFirstNonPHI();
|
||||
BasicBlock *NewBB = Header->splitBasicBlock(AfterPHIs,
|
||||
Header->getName()+".ce");
|
||||
|
||||
|
@@ -225,9 +225,7 @@ void LCSSA::getLoopValuesUsedOutsideLoop(Loop *L,
|
||||
// immediately here. It will be processed in next iteration.
|
||||
BasicBlock::iterator InsertPoint;
|
||||
if (InvokeInst *II = dyn_cast<InvokeInst>(I)) {
|
||||
InsertPoint = II->getNormalDest()->begin();
|
||||
while (isa<PHINode>(InsertPoint))
|
||||
++InsertPoint;
|
||||
InsertPoint = II->getNormalDest()->getFirstNonPHI();
|
||||
} else {
|
||||
InsertPoint = I;
|
||||
InsertPoint++;
|
||||
|
@@ -282,8 +282,7 @@ void LowerInvoke::rewriteExpensiveInvoke(InvokeInst *II, unsigned InvokeNo,
|
||||
// location afterward.
|
||||
new StoreInst(InvokeNoC, InvokeNum, true, II); // volatile
|
||||
|
||||
BasicBlock::iterator NI = II->getNormalDest()->begin();
|
||||
while (isa<PHINode>(NI)) ++NI;
|
||||
BasicBlock::iterator NI = II->getNormalDest()->getFirstNonPHI();
|
||||
// nonvolatile.
|
||||
new StoreInst(Constant::getNullValue(Type::Int32Ty), InvokeNum, false, NI);
|
||||
|
||||
|
@@ -1493,8 +1493,7 @@ bool llvm::SimplifyCFG(BasicBlock *BB) {
|
||||
}
|
||||
} else if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator())) {
|
||||
if (BI->isUnconditional()) {
|
||||
BasicBlock::iterator BBI = BB->begin(); // Skip over phi nodes...
|
||||
while (isa<PHINode>(*BBI)) ++BBI;
|
||||
BasicBlock::iterator BBI = BB->getFirstNonPHI();
|
||||
|
||||
BasicBlock *Succ = BI->getSuccessor(0);
|
||||
if (BBI->isTerminator() && // Terminator is the only non-phi instruction!
|
||||
|
Reference in New Issue
Block a user