| ; RUN: llc %s --filetype=obj -o %t.bc | |
| ; RUN: llvm-objcopy --dump-section=DXIL=%t.dxil %t.bc | |
| ; RUN: llvm-dis %t.dxil -o - | FileCheck %s --check-prefix=DXIL-DIS | |
| ;; Check that all the debug info is properly stripped from DXIL part | |
| ; DXIL-DIS: define void @foo | |
| ; DXIL-DIS-NOT: #dbg | |
| ; DXIL-DIS-NOT: !llvm.dbg.cu | |
| ; DXIL-DIS-NOT: !dx.source | |
| ; DXIL-DIS-NOT: !DICompileUnit | |
| ; DXIL-DIS-NOT: !DIFile | |
| ; DXIL-DIS-NOT: !"Dwarf Version" | |
| ; DXIL-DIS-NOT: !"Debug Info Version" | |
| ; DXIL-DIS-NOT: "foo.hlsl" | |
| ; DXIL-DIS-NOT: !DISubprogram | |
| ; DXIL-DIS-NOT: !DISubroutineType | |
| ; DXIL-DIS-NOT: !DILabel | |
| ; DXIL-DIS-NOT: !DIBasicType | |
| ; DXIL-DIS-NOT: !DILocation | |
| ; DXIL-DIS-NOT: !DILocalVariable | |
| ; DXIL-DIS-NOT: !DIGlobalVariable | |
| target triple = "dxil-pc-shadermodel6.3-library" | |
| @g = global i32 0, align 4, !dbg !21 | |
| define void @foo(i32 %i) !dbg !4 { | |
| entry: | |
| %a = alloca i32, align 4 | |
| #dbg_declare(ptr %a, !17, !DIExpression(), !18) | |
| #dbg_assign(ptr %a, !17, !DIExpression(), !19, ptr poison, !DIExpression(), !18) | |
| #dbg_value(i32 %i, !9, !DIExpression(), !11) | |
| br label %label | |
| label: | |
| #dbg_label(!8, !12) | |
| ret void | |
| } | |
| !llvm.dbg.cu = !{!0} | |
| !llvm.module.flags = !{!2, !3} | |
| !dx.source.contents = !{!13} | |
| !dx.source.defines = !{!14} | |
| !dx.source.mainFileName = !{!15} | |
| !dx.source.args = !{!16} | |
| !0 = distinct !DICompileUnit(language: DW_LANG_C11, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !20) | |
| !1 = !DIFile(filename: "foo.hlsl", directory: "") | |
| !2 = !{i32 7, !"Dwarf Version", i32 5} | |
| !3 = !{i32 2, !"Debug Info Version", i32 3} | |
| !4 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !5, scopeLine: 1, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !7) | |
| !5 = !DISubroutineType(types: !6) | |
| !6 = !{null} | |
| !7 = !{!8} | |
| !8 = !DILabel(scope: !4, name: "label", file: !1, line: 2, column: 1) | |
| !9 = !DILocalVariable(name: "i", arg: 1, scope: !4, file: !1, line: 4, type: !10) | |
| !10 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) | |
| !11 = !DILocation(line: 1, column: 1, scope: !4) | |
| !12 = !DILocation(line: 33, column: 1, scope: !4) | |
| !13 = !{!"foo.hlsl", !"static int g; export void foo(int i) { int a; return; }"} | |
| !14 = !{} | |
| !15 = !{!"foo.hlsl"} | |
| !16 = !{!"--driver-mode=dxc", !"-g", !"-T", !"lib_6_3", !"foo.hlsl"} | |
| !17 = !DILocalVariable(name: "a", arg: 2, scope: !4, file: !1, line: 1, type: !10) | |
| !18 = !DILocation(line: 1, column: 30, scope: !4) | |
| !19 = distinct !DIAssignID() | |
| !20 = !{!21} | |
| !21 = !DIGlobalVariableExpression(var: !22, expr: !DIExpression()) | |
| !22 = distinct !DIGlobalVariable(name: "g", scope: !0, file: !1, line: 1, type: !10, isLocal: false, isDefinition: true) |