forked from OSchip/llvm-project
[TRE][DebugInfo] Preserve Debug Location in new branch instruction
There are two branch instructions created so the new test covers them both. Differential Revision: https://reviews.llvm.org/D50263 llvm-svn: 338917
This commit is contained in:
parent
bde9cf942b
commit
4dfe279e00
|
@ -566,7 +566,8 @@ static bool eliminateRecursiveTailCall(CallInst *CI, ReturnInst *Ret,
|
|||
BasicBlock *NewEntry = BasicBlock::Create(F->getContext(), "", F, OldEntry);
|
||||
NewEntry->takeName(OldEntry);
|
||||
OldEntry->setName("tailrecurse");
|
||||
BranchInst::Create(OldEntry, NewEntry);
|
||||
BranchInst *BI = BranchInst::Create(OldEntry, NewEntry);
|
||||
BI->setDebugLoc(CI->getDebugLoc());
|
||||
|
||||
// If this tail call is marked 'tail' and if there are any allocas in the
|
||||
// entry block, move them up to the new entry block.
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
; RUN: opt < %s -debugify -tailcallelim -S | FileCheck %s
|
||||
|
||||
define void @foo() {
|
||||
entry:
|
||||
; CHECK-LABEL: entry:
|
||||
; CHECK: br label %tailrecurse, !dbg ![[DbgLoc:[0-9]+]]
|
||||
|
||||
call void @foo() ;; line 1
|
||||
ret void
|
||||
|
||||
; CHECK-LABEL: tailrecurse:
|
||||
; CHECK: br label %tailrecurse, !dbg ![[DbgLoc]]
|
||||
}
|
||||
|
||||
;; Make sure tailrecurse has the call instruction's DL
|
||||
; CHECK: ![[DbgLoc]] = !DILocation(line: 1
|
Loading…
Reference in New Issue