summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/DeadStoreElimination/debuginfo.ll13
-rw-r--r--llvm/test/Transforms/GVN/fence.ll7
-rw-r--r--llvm/test/Transforms/InstCombine/debuginfo-dce.ll6
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
}
OpenPOWER on IntegriCloud