Home | History | Annotate | Download | only in Sparc
      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}
     72