forked from OSchip/llvm-project
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:
parent
528a1c56d9
commit
3d52b1e81b
|
@ -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
|
||||
|
|
|
@ -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 }
|
Loading…
Reference in New Issue