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:
Dan Gohman
2008-05-23 21:05:58 +00:00
parent ee335e35ac
commit 02dea8b39f
16 changed files with 38 additions and 62 deletions

View File

@ -265,14 +265,11 @@ void GlobalRandomCounterOpt::PrepFunction(Function* F) {
new StoreInst(l, Counter, bib);
BasicBlock* bb = cast<InvokeInst>(bib)->getNormalDest();
BasicBlock::iterator i = bb->begin();
while (isa<PHINode>(i))
++i;
BasicBlock::iterator i = bb->getFirstNonPHI();
l = new LoadInst(Counter, "counter", i);
bb = cast<InvokeInst>(bib)->getUnwindDest();
i = bb->begin();
while (isa<PHINode>(i)) ++i;
i = bb->getFirstNonPHI();
l = new LoadInst(Counter, "counter", i);
new StoreInst(l, AI, i);
} else if (isa<UnwindInst>(&*bib) || isa<ReturnInst>(&*bib)) {
@ -343,8 +340,8 @@ bool RSProfilers_std::isProfiling(Value* v) {
void RSProfilers_std::IncrementCounterInBlock(BasicBlock *BB, unsigned CounterNum,
GlobalValue *CounterArray) {
// Insert the increment after any alloca or PHI instructions...
BasicBlock::iterator InsertPos = BB->begin();
while (isa<AllocaInst>(InsertPos) || isa<PHINode>(InsertPos))
BasicBlock::iterator InsertPos = BB->getFirstNonPHI();
while (isa<AllocaInst>(InsertPos))
++InsertPos;
// Create the getelementptr constant expression