Revert "[InstCombine] Drop debug loc in TryToSinkInstruction (reland)"

This reverts commit 9649c2095f. See
discussion on the llvm-commits thread: if it's OK to preserve the
location when sinking a call, it's probably OK to always preserve the
location.
This commit is contained in:
Vedant Kumar 2020-07-13 15:17:03 -07:00
parent 528a1c56d9
commit 3d52b1e81b
2 changed files with 0 additions and 52 deletions

View File

@ -3356,12 +3356,6 @@ static bool TryToSinkInstruction(Instruction *I, BasicBlock *DestBlock) {
I->moveBefore(&*InsertPos);
++NumSunkInst;
// Drop the debug loc of non-inlinable instructions. This prevents
// single-stepping from going backwards. See HowToUpdateDebugInfo.rst for
// the full rationale.
if (!isa<CallBase>(I))
I->setDebugLoc(DebugLoc());
// Also sink all related debug uses from the source basic block. Otherwise we
// get debug use before the def. Attempt to salvage debug uses first, to
// maximise the range variables have location for. If we cannot salvage, then

View File

@ -1,46 +0,0 @@
; RUN: opt -debugify -debugify-level=locations -instcombine -S < %s | FileCheck %s
; CHECK-LABEL: @test1(
; CHECK: [[phi:%.*]] = phi i32
; CHECK-NEXT: [[add:%.*]] = add i32 {{.*}}, 1{{$}}
; CHECK-NEXT: add i32 [[phi]], [[add]], !dbg
define i32 @test1(i32 %0, i1 %1) {
%3 = add i32 %0, 1
br i1 %1, label %4, label %5
4: ; preds = %2
br label %6
5: ; preds = %2
br label %6
6: ; preds = %5, %4
%7 = phi i32 [ 0, %4 ], [ 1, %5 ]
%8 = add i32 %7, %3
ret i32 %8
}
; Function Attrs: nounwind readnone
declare i32 @external(i32) #0
; CHECK-LABEL: @test2(
; CHECK: [[phi:%.*]] = phi i32
; CHECK-NEXT: [[add:%.*]] = call i32 @external(i32 {{.*}}), !dbg
; CHECK-NEXT: add i32 [[phi]], [[add]], !dbg
define i32 @test2(i32 %0, i1 %1) {
%3 = call i32 @external(i32 %0)
br i1 %1, label %4, label %5
4: ; preds = %2
br label %6
5: ; preds = %2
br label %6
6: ; preds = %5, %4
%7 = phi i32 [ 0, %4 ], [ 1, %5 ]
%8 = add i32 %7, %3
ret i32 %8
}
attributes #0 = { nounwind readnone }