OLD | NEW |
1 ; RUN: opt -S -strip-metadata %s | FileCheck %s --check-prefix=STRIPMETA | 1 ; RUN: opt -S -strip-metadata %s | FileCheck %s --check-prefix=STRIPMETA |
2 ; RUN: opt -S -strip-module-flags %s | FileCheck %s --check-prefix=STRIPMODF | 2 ; RUN: opt -S -strip-module-flags %s | FileCheck %s --check-prefix=STRIPMODF |
3 ; RUN: opt -S -strip-metadata -strip-module-flags -strip-debug %s | FileCheck %s
--check-prefix=STRIPALL | 3 ; RUN: opt -S -strip-metadata -strip-module-flags -strip-debug %s | FileCheck %s
--check-prefix=STRIPALL |
4 | 4 |
5 define i32 @foo(i32 %c) { | 5 define i32 @foo(i32 %c) { |
6 ; STRIPMETA: @foo | 6 ; STRIPMETA: @foo |
7 ; STRIPMETA-NEXT: call void @llvm.dbg{{.*}}, !dbg | 7 ; STRIPMETA-NEXT: call void @llvm.dbg{{.*}}, !dbg |
8 ; STRIPMETA-NEXT: ret{{.*}}, !dbg | 8 ; STRIPMETA-NEXT: ret{{.*}}, !dbg |
9 ; STRIPMODF: @foo | 9 ; STRIPMODF: @foo |
10 ; STRIPMODF-NEXT: call void @llvm.dbg{{.*}}, !dbg | 10 ; STRIPMODF-NEXT: call void @llvm.dbg{{.*}}, !dbg |
11 ; STRIPMODF-NEXT: ret{{.*}}, !dbg | 11 ; STRIPMODF-NEXT: ret{{.*}}, !dbg |
12 ; STRIPALL: @foo | 12 ; STRIPALL: @foo |
13 ; STRIPALL-NOT: !dbg | 13 ; STRIPALL-NOT: !dbg |
14 tail call void @llvm.dbg.value(metadata !{i32 %c}, i64 0, metadata !9), !dbg !
10 | 14 tail call void @llvm.dbg.value(metadata i32 %c, i64 0, metadata !9, metadata !
13), !dbg !14 |
15 ret i32 %c, !dbg !11 | 15 ret i32 %c, !dbg !15 |
16 } | 16 } |
17 | 17 |
18 ; STRIPMETA: @llvm.dbg.value | 18 ; STRIPMETA: @llvm.dbg.value |
19 ; STRIPMODF: @llvm.dbg.value | 19 ; STRIPMODF: @llvm.dbg.value |
20 ; STRIPALL: ret i32 | 20 ; STRIPALL: ret i32 |
21 ; STRIPALL-NOT: @llvm.dbg.value | 21 ; STRIPALL-NOT: @llvm.dbg.value |
22 declare void @llvm.dbg.value(metadata, i64, metadata) #1 | 22 declare void @llvm.dbg.value(metadata, i64, metadata, metadata) |
23 | 23 |
24 ; STRIPMETA-NOT: MadeUpMetadata | 24 ; STRIPMETA-NOT: MadeUpMetadata |
25 ; STRIPMODF-NOT: MadeUpMetadata | 25 ; STRIPMODF-NOT: MadeUpMetadata |
26 !MadeUpMetadata = !{} | 26 !MadeUpMetadata = !{} |
27 | 27 |
28 ; STRIPMETA: !llvm.dbg.cu | 28 ; STRIPMETA: !llvm.dbg.cu |
29 ; STRIPMODF: !llvm.dbg.cu | 29 ; STRIPMODF: !llvm.dbg.cu |
30 !llvm.dbg.cu = !{!0} | 30 !llvm.dbg.cu = !{!0} |
31 | 31 |
32 ; STRIPMETA: llvm.module.flags | 32 ; STRIPMETA: llvm.module.flags |
33 ; STRIPMODF-NOT: llvm.module.flags | 33 ; STRIPMODF-NOT: llvm.module.flags |
34 ; STRIPALL-NOT: llvm.module.flags | 34 ; STRIPALL-NOT: llvm.module.flags |
35 !llvm.module.flags = !{!12,!13} | 35 !llvm.module.flags = !{!10, !11, !24} |
36 | 36 |
37 ; STRIPMETA: !0 = | 37 ; STRIPMETA: !0 = |
38 ; STRIPMODF: !0 = | 38 ; STRIPMODF: !0 = |
39 !0 = metadata !{i32 786449, i32 0, i32 12, metadata !"test.c", metadata !"/tmp",
metadata !"clang version 3.3 (trunk 176732) (llvm/trunk 176733)", i1 true, i1 t
rue, metadata !"", i32 0, metadata !1, metadata !1, metadata !2, metadata !1, me
tadata !""} ; [ DW_TAG_compile_unit ] [/tmp/test.c] [DW_LANG_C99] | 39 |
40 !1 = metadata !{i32 0} | 40 |
41 !2 = metadata !{metadata !3} | 41 ; STRIPMETA: Debug Info Version |
42 !3 = metadata !{i32 786478, i32 0, metadata !4, metadata !"foo", metadata !"foo"
, metadata !"", metadata !4, i32 1, metadata !5, i1 false, i1 true, i32 0, i32 0
, null, i32 256, i1 true, i32 (i32)* @foo, null, null, metadata !8, i32 1} ; [ D
W_TAG_subprogram ] [line 1] [def] [foo] | 42 ; STRIPMODF-NOT: Debug Info Version |
43 !4 = metadata !{i32 786473, metadata !"test.c", metadata !"/tmp", null} ; [ DW_T
AG_file_type ] | 43 ; STRIPALL-NOT: Debug Info Version |
44 !5 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64
0, i32 0, null, metadata !6, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] [line 0
, size 0, align 0, offset 0] [from ] | 44 !11 = !{i32 2, !"Debug Info Version", i32 3} |
45 !6 = metadata !{metadata !7, metadata !7} | 45 |
46 !7 = metadata !{i32 786468, null, metadata !"int", null, i32 0, i64 32, i64 32,
i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, of
fset 0, enc DW_ATE_signed] | |
47 !8 = metadata !{metadata !9} | |
48 !9 = metadata !{i32 786689, metadata !3, metadata !"c", metadata !4, i32 1677721
7, metadata !7, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [c] [line 1] | |
49 !10 = metadata !{i32 1, i32 0, metadata !3, null} | |
50 !11 = metadata !{i32 2, i32 0, metadata !3, null} | |
51 ; STRIPMETA: Linker Options | 46 ; STRIPMETA: Linker Options |
52 ; STRIPMODF-NOT: Linker Options | 47 ; STRIPMODF-NOT: Linker Options |
53 ; STRIPALL-NOT: Linker Options | 48 ; STRIPALL-NOT: Linker Options |
54 !12 = metadata !{ i32 6, metadata !"Linker Options", | 49 !24 = !{i32 6, !"Linker Options", !{!{!"-lz"}, !{!"-framework", !"Cocoa"}, !{!"-
lmath"}}} |
55 metadata !{ | 50 |
56 metadata !{ metadata !"-lz" }, | 51 |
57 metadata !{ metadata !"-framework", metadata !"Cocoa" } } } | 52 !llvm.ident = !{!12} |
58 ; STRIPMETA: Debug Info Version | 53 |
59 ; STRIPMODF-NOT: Debug Info Version | 54 !0 = !MDCompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.
7.0 (trunk 235150) (llvm/trunk 235152)", isOptimized: true, runtimeVersion: 0, e
missionKind: 1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, impo
rts: !2) |
60 ; STRIPALL-NOT: Debug Info Version | 55 !1 = !MDFile(filename: "foo.c", directory: "/s/llvm/cmakebuild") |
61 !13 = metadata !{i32 1, metadata !"Debug Info Version", i32 2} | 56 !2 = !{} |
| 57 !3 = !{!4} |
| 58 !4 = !MDSubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !5, isLocal:
false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized:
true, function: i32 (i32)* @foo, variables: !8) |
| 59 !5 = !MDSubroutineType(types: !6) |
| 60 !6 = !{!7, !7} |
| 61 !7 = !MDBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) |
| 62 !8 = !{!9} |
| 63 !9 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "c", arg: 1, scope: !4, fi
le: !1, line: 1, type: !7) |
| 64 !10 = !{i32 2, !"Dwarf Version", i32 4} |
| 65 !12 = !{!"clang version 3.7.0 (trunk 235150) (llvm/trunk 235152)"} |
| 66 !13 = !MDExpression() |
| 67 !14 = !MDLocation(line: 1, column: 13, scope: !4) |
| 68 !15 = !MDLocation(line: 2, column: 3, scope: !4) |
| 69 |
OLD | NEW |