diff options
Diffstat (limited to 'contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp')
| -rw-r--r-- | contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp index 798376e95543..53471de6154c 100644 --- a/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -211,6 +211,11 @@ void llvm::ReplaceInstWithInst(BasicBlock::InstListType &BIL,    assert(I->getParent() == nullptr &&           "ReplaceInstWithInst: Instruction already inserted into basic block!"); +  // Copy debug location to newly added instruction, if it wasn't already set +  // by the caller. +  if (!I->getDebugLoc()) +    I->setDebugLoc(BI->getDebugLoc()); +    // Insert the new instruction into the basic block...    BasicBlock::iterator New = BIL.insert(BI, I); @@ -716,7 +721,6 @@ TerminatorInst *llvm::SplitBlockAndInsertIfThen(Value *Cond,    CheckTerm->setDebugLoc(SplitBefore->getDebugLoc());    BranchInst *HeadNewTerm =      BranchInst::Create(/*ifTrue*/ThenBlock, /*ifFalse*/Tail, Cond); -  HeadNewTerm->setDebugLoc(SplitBefore->getDebugLoc());    HeadNewTerm->setMetadata(LLVMContext::MD_prof, BranchWeights);    ReplaceInstWithInst(HeadOldTerm, HeadNewTerm); @@ -766,7 +770,6 @@ void llvm::SplitBlockAndInsertIfThenElse(Value *Cond, Instruction *SplitBefore,    (*ElseTerm)->setDebugLoc(SplitBefore->getDebugLoc());    BranchInst *HeadNewTerm =      BranchInst::Create(/*ifTrue*/ThenBlock, /*ifFalse*/ElseBlock, Cond); -  HeadNewTerm->setDebugLoc(SplitBefore->getDebugLoc());    HeadNewTerm->setMetadata(LLVMContext::MD_prof, BranchWeights);    ReplaceInstWithInst(HeadOldTerm, HeadNewTerm);  }  | 
