diff options
Diffstat (limited to 'lib/Transforms/Utils/BasicBlockUtils.cpp')
| -rw-r--r-- | lib/Transforms/Utils/BasicBlockUtils.cpp | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/Transforms/Utils/BasicBlockUtils.cpp b/lib/Transforms/Utils/BasicBlockUtils.cpp index acaea195e710..c705cc51094a 100644 --- a/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -447,7 +447,7 @@ BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB,        // If the values coming into the block are not the same, we need a PHI.        // Create the new PHI node, insert it into NewBB at the end of the block        PHINode *NewPHI = -        PHINode::Create(PN->getType(), PN->getName()+".ph", BI); +        PHINode::Create(PN->getType(), NumPreds, PN->getName()+".ph", BI);        if (AA) AA->copyValue(PN, NewPHI);        // Move all of the PHI values for 'Preds' to the new PHI. @@ -538,3 +538,15 @@ ReturnInst *llvm::FoldReturnIntoUncondBranch(ReturnInst *RI, BasicBlock *BB,    UncondBranch->eraseFromParent();    return cast<ReturnInst>(NewRet);  } + +/// 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; +  } +  return DebugLoc(); +}  | 
