diff options
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r-- | llvm/test/Transforms/DeadStoreElimination/debuginfo.ll | 13 | ||||
-rw-r--r-- | llvm/test/Transforms/GVN/fence.ll | 7 | ||||
-rw-r--r-- | llvm/test/Transforms/InstCombine/debuginfo-dce.ll | 6 |
3 files changed, 10 insertions, 16 deletions
diff --git a/llvm/test/Transforms/DeadStoreElimination/debuginfo.ll b/llvm/test/Transforms/DeadStoreElimination/debuginfo.ll index 2d9b4fe3ee8..b14c779288a 100644 --- a/llvm/test/Transforms/DeadStoreElimination/debuginfo.ll +++ b/llvm/test/Transforms/DeadStoreElimination/debuginfo.ll @@ -6,23 +6,21 @@ declare noalias i8* @malloc(i32) declare void @test_f() -define i32* @test_salvage() { +define i32* @test_salvage(i32 %arg) { ; Check that all four original local variables have their values preserved. -; CHECK-LABEL: @test_salvage() +; CHECK-LABEL: @test_salvage( ; CHECK-NEXT: malloc ; CHECK-NEXT: @llvm.dbg.value(metadata i8* %p, metadata ![[p:.*]], metadata !DIExpression()) ; CHECK-NEXT: bitcast ; CHECK-NEXT: @llvm.dbg.value(metadata i32* %P, metadata ![[P:.*]], metadata !DIExpression()) -; CHECK-NEXT: @llvm.dbg.value(metadata i32* %P, metadata ![[DEAD:.*]], metadata !DIExpression(DW_OP_deref)) -; CHECK-NEXT: call void @llvm.dbg.value(metadata i32* %P, metadata ![[DEAD2:.*]], metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 1, DW_OP_stack_value)) +; CHECK-NEXT: @llvm.dbg.value(metadata i32 %arg, metadata ![[DEAD:.*]], metadata !DIExpression(DW_OP_plus_uconst, 1, DW_OP_stack_value)) ; CHECK-NEXT: call void @test_f() ; CHECK-NEXT: store i32 0, i32* %P %p = tail call i8* @malloc(i32 4) %P = bitcast i8* %p to i32* - %DEAD = load i32, i32* %P - %DEAD2 = add i32 %DEAD, 1 - store i32 %DEAD2, i32* %P + %DEAD = add i32 %arg, 1 + store i32 %DEAD, i32* %P call void @test_f() store i32 0, i32* %P ret i32* %P @@ -31,4 +29,3 @@ define i32* @test_salvage() { ; CHECK: ![[p]] = !DILocalVariable(name: "1" ; CHECK: ![[P]] = !DILocalVariable(name: "2" ; CHECK: ![[DEAD]] = !DILocalVariable(name: "3" -; CHECK: ![[DEAD2]] = !DILocalVariable(name: "4" diff --git a/llvm/test/Transforms/GVN/fence.ll b/llvm/test/Transforms/GVN/fence.ll index ab8e2bbe72b..f39fb951865 100644 --- a/llvm/test/Transforms/GVN/fence.ll +++ b/llvm/test/Transforms/GVN/fence.ll @@ -1,4 +1,4 @@ -; RUN: opt -S -debugify -basicaa -gvn < %s | FileCheck %s +; RUN: opt -S -basicaa -gvn < %s | FileCheck %s @a = external constant i32 ; We can value forward across the fence since we can (semantically) @@ -18,10 +18,8 @@ define i32 @test(i32* %addr.i) { ; Same as above define i32 @test2(i32* %addr.i) { ; CHECK-LABEL: @test2 -; CHECK-NEXT: call void @llvm.dbg.value(metadata i32* %addr.i, metadata [[var_a:![0-9]+]], metadata !DIExpression(DW_OP_deref)) ; CHECK-NEXT: fence ; CHECK-NOT: load -; CHECK-NEXT: call void @llvm.dbg.value(metadata i32* %addr.i, metadata [[var_a2:![0-9]+]], metadata !DIExpression(DW_OP_deref)) ; CHECK: ret %a = load i32, i32* %addr.i, align 4 fence release @@ -88,6 +86,3 @@ define i32 @test4(i32* %addr) { ; } ; Given we chose to forward across the release fence, we clearly can't forward ; across the acquire fence as well. - -; CHECK: [[var_a]] = !DILocalVariable -; CHECK-NEXT: [[var_a2]] = !DILocalVariable diff --git a/llvm/test/Transforms/InstCombine/debuginfo-dce.ll b/llvm/test/Transforms/InstCombine/debuginfo-dce.ll index d23cc1e9952..200ea26cdaf 100644 --- a/llvm/test/Transforms/InstCombine/debuginfo-dce.ll +++ b/llvm/test/Transforms/InstCombine/debuginfo-dce.ll @@ -23,6 +23,9 @@ target triple = "x86_64-apple-macosx10.12.0" %struct.entry = type { %struct.entry* } +; This salvage can't currently occur safely (PR40628), however if/when that's +; ever fixed, then this is definitely a piece of test coverage that should +; be maintained. define void @salvage_load(%struct.entry** %queue) local_unnamed_addr #0 !dbg !14 { entry: %im_not_dead = alloca %struct.entry* @@ -31,8 +34,7 @@ entry: call void @llvm.dbg.value(metadata %struct.entry* %1, metadata !18, metadata !20), !dbg !19 ; CHECK: define void @salvage_load ; CHECK-NEXT: entry: -; CHECK-NEXT: call void @llvm.dbg.value(metadata %struct.entry** %queue, -; CHECK-SAME: metadata !DIExpression(DW_OP_deref, DW_OP_plus_uconst, 0)) +; CHECK-NOT: dbg.value store %struct.entry* %1, %struct.entry** %im_not_dead, align 8 ret void, !dbg !21 } |