Revert "DI: Fold constant arguments into a single MDString"
[oota-llvm.git] / test / DebugInfo / Sparc / gnu-window-save.ll
1 ; RUN: llc -filetype=obj -O0 < %s -mtriple sparc64-unknown-linux-gnu | llvm-dwarfdump - | FileCheck %s --check-prefix=SPARC64
2 ; RUN: llc -filetype=obj -O0 < %s -mtriple sparc-unknown-linux-gnu   | llvm-dwarfdump - | FileCheck %s --check-prefix=SPARC32
3
4 ; Check for DW_CFA_GNU_Window_save in debug_frame. Also, Ensure that relocations
5 ; are performed correctly in debug_info.
6
7 ; SPARC64: file format ELF64-sparc
8
9 ; SPARC64: .debug_info
10 ; SPARC64:      DW_TAG_compile_unit
11 ; SPARC64:        DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9,A-F,a-f]+}}] = "hello.c")
12 ; SPARC64:      DW_TAG_subprogram
13 ; SPARC64:        DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9,A-F,a-f]+}}] = "main")
14 ; SPARC64:      DW_TAG_base_type
15 ; SPARC64:        DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9,A-F,a-f]+}}] = "int")
16
17 ; SPARC64: .debug_frame
18 ; SPARC64:      DW_CFA_def_cfa_register
19 ; SPARC64-NEXT: DW_CFA_GNU_window_save
20 ; SPARC64-NEXT: DW_CFA_register
21
22
23 ; SPARC32: file format ELF32-sparc
24
25 ; SPARC32: .debug_info
26 ; SPARC32:      DW_TAG_compile_unit
27 ; SPARC32:        DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9,A-F,a-f]+}}] = "hello.c")
28 ; SPARC32:      DW_TAG_subprogram
29 ; SPARC32:        DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9,A-F,a-f]+}}] = "main")
30 ; SPARC32:      DW_TAG_base_type
31 ; SPARC32:        DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9,A-F,a-f]+}}] = "int")
32
33 ; SPARC32: .debug_frame
34 ; SPARC32:      DW_CFA_def_cfa_register
35 ; SPARC32-NEXT: DW_CFA_GNU_window_save
36 ; SPARC32-NEXT: DW_CFA_register
37
38 @.str = private unnamed_addr constant [14 x i8] c"hello, world\0A\00", align 1
39
40 ; Function Attrs: nounwind
41 define signext i32 @main() #0 {
42 entry:
43   %retval = alloca i32, align 4
44   store i32 0, i32* %retval
45   %call = call signext i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([14 x i8]* @.str, i32 0, i32 0)), !dbg !12
46   ret i32 0, !dbg !13
47 }
48
49 declare signext i32 @printf(i8*, ...) #1
50
51 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
52 attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
53
54 !llvm.dbg.cu = !{!0}
55 !llvm.module.flags = !{!9, !10}
56 !llvm.ident = !{!11}
57
58 !0 = metadata !{i32 786449, metadata !1, i32 12, metadata !"clang version 3.5 (http://llvm.org/git/clang.git 6a0714fee07fb7c4e32d3972b4fe2ce2f5678cf4) (llvm/ 672e88e934757f76d5c5e5258be41e7615094844)", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2, metadata !""} ; [ DW_TAG_compile_unit ] [/home/venkatra/work/benchmarks/test/hello/hello.c] [DW_LANG_C99]
59 !1 = metadata !{metadata !"hello.c", metadata !"/home/venkatra/work/benchmarks/test/hello"}
60 !2 = metadata !{}
61 !3 = metadata !{metadata !4}
62 !4 = metadata !{i32 786478, metadata !1, metadata !5, metadata !"main", metadata !"main", metadata !"", i32 3, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @main, null, null, metadata !2, i32 4} ; [ DW_TAG_subprogram ] [line 3] [def] [scope 4] [main]
63 !5 = metadata !{i32 786473, metadata !1}          ; [ DW_TAG_file_type ] [/home/venkatra/work/benchmarks/test/hello/hello.c]
64 !6 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
65 !7 = metadata !{metadata !8}
66 !8 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
67 !9 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
68 !10 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
69 !11 = metadata !{metadata !"clang version 3.5 (http://llvm.org/git/clang.git 6a0714fee07fb7c4e32d3972b4fe2ce2f5678cf4) (llvm/ 672e88e934757f76d5c5e5258be41e7615094844)"}
70 !12 = metadata !{i32 5, i32 0, metadata !4, null}
71 !13 = metadata !{i32 6, i32 0, metadata !4, null}