Scanning entire basic block may be too expensive in terms of compile time. Instead, just use whatever location info first non-phi instruction has.

llvm-svn: 130729
This commit is contained in:
Devang Patel 2011-05-02 21:57:00 +00:00
parent b501b99c6e
commit bb35e8ba88
1 changed files with 4 additions and 6 deletions

View File

@ -542,11 +542,9 @@ ReturnInst *llvm::FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB,
/// GetFirstDebugLocInBasicBlock - Return first valid DebugLoc entry in a
/// given basic block.
DebugLoc llvm::GetFirstDebugLocInBasicBlock(const BasicBlock *BB) {
for (BasicBlock::const_iterator BI = BB->begin(), BE = BB->end();
BI != BE; ++BI) {
DebugLoc DL = BI->getDebugLoc();
if (!DL.isUnknown())
return DL;
}
if (const Instruction *I = BB->getFirstNonPHI())
return I->getDebugLoc();
// Scanning entire block may be too expensive, if the first instruction
// does not have valid location info.
return DebugLoc();
}