1
+ ; RUN: opt -passes=newgvn -S %s | FileCheck %s
2
+
3
+ ; Check that assignDFSNumbers() in NewGVN salvages the debug values of the
4
+ ; trivially dead instructions that are marked for deletion.
5
+
6
+ ; CHECK: #dbg_value(i8 %tmp, [[META11:![0-9]+]], !DIExpression(DW_OP_constu, 8, DW_OP_eq, DW_OP_stack_value), [[META26:![0-9]+]])
7
+ ; CHECK: [[META11]] = !DILocalVariable(name: "2"
8
+ ; CHECK: [[META26]] = !DILocation(line: 2
9
+
10
+ define void @test13 () !dbg !5 {
11
+ entry:
12
+ %tmp = load i8 , ptr null , align 1
13
+ %tmp2 = icmp eq i8 %tmp , 8 , !dbg !13
14
+ #dbg_value(i1 %tmp2 , !11 , !DIExpression (), !13 )
15
+ ret void
16
+ }
17
+
18
+ !llvm.dbg.cu = !{!0 }
19
+ !llvm.debugify = !{!2 , !3 }
20
+ !llvm.module.flags = !{!4 }
21
+
22
+ !0 = distinct !DICompileUnit (language: DW_LANG_C, file: !1 , producer: "debugify" , isOptimized: true , runtimeVersion: 0 , emissionKind: FullDebug)
23
+ !1 = !DIFile (filename: "/app/example.ll" , directory: "/" )
24
+ !2 = !{i32 3 }
25
+ !3 = !{i32 2 }
26
+ !4 = !{i32 2 , !"Debug Info Version" , i32 3 }
27
+ !5 = distinct !DISubprogram (name: "test13" , linkageName: "test13" , scope: null , file: !1 , line: 1 , type: !6 , scopeLine: 1 , spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0 , retainedNodes: !8 )
28
+ !6 = !DISubroutineType (types: !7 )
29
+ !7 = !{}
30
+ !8 = !{!11 }
31
+ !10 = !DIBasicType (name: "ty8" , size: 8 , encoding: DW_ATE_unsigned)
32
+ !11 = !DILocalVariable (name: "2" , scope: !5 , file: !1 , line: 2 , type: !10 )
33
+ !13 = !DILocation (line: 2 , column: 1 , scope: !5 )
0 commit comments