|
| 1 | +; Compare source info emission with and without --dx-source-in-debug-module flag. |
| 2 | + |
| 3 | +; RUN: llc %s --filetype=obj -o %t.dxbc |
| 4 | +; RUN: llvm-objcopy --dump-section=DXIL=%t.dxil.bc %t.dxbc |
| 5 | +; RUN: llvm-dis %t.dxil.bc -o - | FileCheck %s --check-prefix=ILDB-DIS |
| 6 | + |
| 7 | +; RUN: llc %s --filetype=obj -o %t.dxbc --dx-source-in-debug-module |
| 8 | +; RUN: llvm-objcopy --dump-section=DXIL=%t.dxil.bc %t.dxbc |
| 9 | +; RUN: llvm-dis %t.dxil.bc -o - | FileCheck %s --check-prefix=ILDB-SOURCE-DIS |
| 10 | + |
| 11 | +; Without the flag, dx.source should be replaced with dummy metadata. |
| 12 | +; ILDB-DIS: !dx.source.contents = !{![[CONTENTS:[0-9]+]]} |
| 13 | +; ILDB-DIS: !dx.source.defines = !{![[EMPTY_ARR:[0-9]+]]} |
| 14 | +; ILDB-DIS: !dx.source.mainFileName = !{![[MAIN:[0-9]+]]} |
| 15 | +; ILDB-DIS: !dx.source.args = !{![[EMPTY_ARR]]} |
| 16 | +; ILDB-DIS: ![[CONTENTS]] = !{!"", !""} |
| 17 | +; ILDB-DIS: ![[EMPTY_ARR]] = !{} |
| 18 | +; ILDB-DIS: ![[MAIN]] = !{!""} |
| 19 | + |
| 20 | +; With the flag, dx.source should be be preserved. |
| 21 | +; ILDB-SOURCE-DIS: !dx.source.args = !{![[ARGS:[0-9]+]]} |
| 22 | +; ILDB-SOURCE-DIS: !dx.source.contents = !{![[FILE1:[0-9]+]], ![[FILE2:[0-9]+]], ![[FILE3:[0-9]+]]} |
| 23 | +; ILDB-SOURCE-DIS: !dx.source.mainFileName = !{![[MAIN:[0-9]+]]} |
| 24 | +; ILDB-SOURCE-DIS: !dx.source.defines = !{![[DEFINES:[0-9]+]]} |
| 25 | +; ILDB-SOURCE-DIS: ![[FILE1]] = !{!"C:\\dx-source-metadata.hlsl", |
| 26 | +; ILDB-SOURCE-DIS: ![[FILE2]] = !{!"C:\\a.hlsl" |
| 27 | +; ILDB-SOURCE-DIS: ![[FILE3]] = !{!"C:\\b.hlsl" |
| 28 | +; ILDB-SOURCE-DIS: ![[MAIN]] = !{!"C:\\dx-source-metadata.hlsl"} |
| 29 | +; ILDB-SOURCE-DIS: ![[DEFINES]] = !{!"USER_DEF0=42", !"USER_DEF1=43"} |
| 30 | + |
| 31 | +target triple = "dxilv1.3-pc-shadermodel6.3-library" |
| 32 | + |
| 33 | +define float @_Z3fooff(float %a, float %b) { |
| 34 | +entry: |
| 35 | + %add = fadd float %a, %b |
| 36 | + ret float %add |
| 37 | +} |
| 38 | + |
| 39 | +!llvm.dbg.cu = !{!4} |
| 40 | +!llvm.module.flags = !{!6, !7} |
| 41 | + |
| 42 | +!dx.source.args = !{!0} |
| 43 | +!dx.source.contents = !{!1, !2, !3} |
| 44 | +!dx.source.mainFileName = !{!8} |
| 45 | +!dx.source.defines = !{!9} |
| 46 | + |
| 47 | +!0 = !{!"-g", !"-Tlib_6_3", !"-DUSER_DEF0=42", !"-DUSER_DEF1=43", !"C:\\\\dx-source-metadata.hlsl"} |
| 48 | +!1 = !{!"C:\\dx-source-metadata.hlsl", !"#include \22a.hlsl\22\0A#include \22b.hlsl\22\0A\0Afloat foo(float a, float b) {\0A return a + b;\0A}\0A"} |
| 49 | +!2 = !{!"C:\\a.hlsl", !"#include \22b.hlsl\22\0A"} |
| 50 | +!3 = !{!"C:\\b.hlsl", !"#include <c.hlsl>\0A"} |
| 51 | +!4 = distinct !DICompileUnit(language: DW_LANG_C99, file: !5, emissionKind: FullDebug) |
| 52 | +!5 = !DIFile(filename: "dx-source-metadata.hlsl", directory: "C:\\") |
| 53 | +!6 = !{i32 2, !"Dwarf Version", i32 4} |
| 54 | +!7 = !{i32 2, !"Debug Info Version", i32 3} |
| 55 | +!8 = !{!"C:\\dx-source-metadata.hlsl"} |
| 56 | +!9 = !{!"USER_DEF0=42", !"USER_DEF1=43"} |
0 commit comments