[llvm] r181205 - [SystemZ] Add DebugInfo test cases

Ulrich Weigand ulrich.weigand at de.ibm.com
Mon May 6 09:18:29 PDT 2013


Author: uweigand
Date: Mon May  6 11:18:29 2013
New Revision: 181205

URL: http://llvm.org/viewvc/llvm-project?rev=181205&view=rev
Log:

[SystemZ] Add DebugInfo test cases

This adds all DebugInfo tests for the SystemZ target.

This version of the patch incorporates feedback from reviews by
Eric Christopher and Rafael Espindola.  Thanks to all reviewers!

Patch by Richard Sandiford.


Added:
    llvm/trunk/test/DebugInfo/SystemZ/
    llvm/trunk/test/DebugInfo/SystemZ/eh_frame.s
    llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.ll
    llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.s
    llvm/trunk/test/DebugInfo/SystemZ/lit.local.cfg
    llvm/trunk/test/DebugInfo/SystemZ/variable-loc.ll
    llvm/trunk/test/DebugInfo/SystemZ/variable-loc.s

Added: llvm/trunk/test/DebugInfo/SystemZ/eh_frame.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/SystemZ/eh_frame.s?rev=181205&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/SystemZ/eh_frame.s (added)
+++ llvm/trunk/test/DebugInfo/SystemZ/eh_frame.s Mon May  6 11:18:29 2013
@@ -0,0 +1,54 @@
+# RUN: llvm-mc -triple=s390x-linux-gnu -filetype=obj %s -o %t
+# RUN: llvm-objdump -s %t | FileCheck %s
+
+	.text
+	.globl	check_largest_class
+	.align	4
+	.type	check_largest_class, at function
+check_largest_class:
+	.cfi_startproc
+	stmg	%r13, %r15, 104(%r15)
+	.cfi_offset %r13, -56
+	.cfi_offset %r14, -48
+	.cfi_offset %r15, -40
+	aghi	%r15, -160
+	.cfi_def_cfa_offset 320
+	lmg	%r13, %r15, 264(%r15)
+	br	%r14
+	.size	check_largest_class, .-check_largest_class
+	.cfi_endproc
+
+# The readelf rendering is:
+#
+# Contents of the .eh_frame section:
+#
+# 00000000 0000001c 00000000 CIE
+#   Version:               1
+#   Augmentation:          "zR"
+#   Code alignment factor: 1
+#   Data alignment factor: -8
+#   Return address column: 14
+#   Augmentation data:     1b
+#
+#   DW_CFA_def_cfa: r15 ofs 160
+#   DW_CFA_nop
+#   DW_CFA_nop
+#   DW_CFA_nop
+#
+# 00000020 0000001c 00000024 FDE cie=00000000 pc=00000000..00000012
+#   DW_CFA_advance_loc: 6 to 00000006
+#   DW_CFA_offset: r13 at cfa-56
+#   DW_CFA_offset: r14 at cfa-48
+#   DW_CFA_offset: r15 at cfa-40
+#   DW_CFA_advance_loc: 4 to 0000000a
+#   DW_CFA_def_cfa_offset: 320
+#   DW_CFA_nop
+#   DW_CFA_nop
+#   DW_CFA_nop
+#   DW_CFA_nop
+#
+# CHECK: Contents of section .eh_frame:
+# CHECK-NEXT: 0000 00000014 00000000 017a5200 01780e01  .........zR..x..
+# CHECK-NEXT: 0010 1b0c0fa0 01000000 0000001c 0000001c  ................
+# CHECK-NEXT: 0020 00000000 00000012 00468d07 8e068f05  .........F......
+# CHECK-NEXT: 0030 440ec002 00000000                    D.......

Added: llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.ll?rev=181205&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.ll (added)
+++ llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.ll Mon May  6 11:18:29 2013
@@ -0,0 +1,43 @@
+; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu | FileCheck -check-prefix=CHECK-FUNC %s
+; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu | FileCheck -check-prefix=CHECK-ET %s
+; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu | FileCheck -check-prefix=CHECK-REF %s
+
+declare i32 @__gxx_personality_v0(...)
+
+declare void @bar()
+
+define i64 @foo(i64 %lhs, i64 %rhs) {
+  invoke void @bar() to label %end unwind label %clean
+end:
+ ret i64 0
+
+clean:
+  %tst = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) cleanup
+  ret i64 42
+}
+
+; CHECK-FUNC: foo:
+; CHECK-FUNC: .cfi_startproc
+; CHECK-FUNC: .cfi_personality 155, DW.ref.__gxx_personality_v0
+; CHECK-FUNC: .cfi_lsda 27, .Lexception0
+; CHECK-FUNC: stmg	%r14, %r15, 112(%r15)
+; CHECK-FUNC: .cfi_offset %r14, -48
+; CHECK-FUNC: .cfi_offset %r15, -40
+; CHECK-FUNC: aghi	%r15, -160
+; CHECK-FUNC: .cfi_def_cfa_offset 320
+; ...main function...
+; CHECK-FUNC: .cfi_endproc
+;
+; CHECK-ET: .section	.gcc_except_table,"a", at progbits
+; CHECK-ET-NEXT: .align	4
+; CHECK-ET-NEXT: GCC_except_table0:
+; CHECK-ET-NEXT: .Lexception0:
+;
+; CHECK-REF: .hidden	DW.ref.__gxx_personality_v0
+; CHECK-REF: .weak	DW.ref.__gxx_personality_v0
+; CHECK-REF: .section	.data.DW.ref.__gxx_personality_v0,"aGw", at progbits,DW.ref.__gxx_personality_v0,comdat
+; CHECK-REF-NEXT: .align	8
+; CHECK-REF-NEXT: .type	DW.ref.__gxx_personality_v0, at object
+; CHECK-REF-NEXT: .size	DW.ref.__gxx_personality_v0, 8
+; CHECK-REF-NEXT: DW.ref.__gxx_personality_v0:
+; CHECK-REF-NEXT: .quad	__gxx_personality_v0

Added: llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.s?rev=181205&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.s (added)
+++ llvm/trunk/test/DebugInfo/SystemZ/eh_frame_personality.s Mon May  6 11:18:29 2013
@@ -0,0 +1,67 @@
+# RUN: llvm-mc -triple=s390x-linux-gnu -filetype=obj %s -o %t
+# RUN: llvm-objdump -s %t | FileCheck %s
+
+	.text
+	.globl	foo
+	.align	4
+	.type	foo, at function
+foo:                                    # @foo
+	.cfi_startproc
+	.cfi_personality 155, DW.ref.__gxx_personality_v0
+	.cfi_lsda 27, .Lexception0
+	stmg	%r14, %r15, 112(%r15)
+	.cfi_offset %r14, -48
+	.cfi_offset %r15, -40
+	aghi	%r15, -160
+	.cfi_def_cfa_offset 320
+	lmg	%r14, %r15, 272(%r15)
+	br	%r14
+	.size	foo, .-foo
+	.cfi_endproc
+
+	.section	.gcc_except_table,"a", at progbits
+	.align	4
+.Lexception0:
+
+	.hidden	DW.ref.__gxx_personality_v0
+	.weak	DW.ref.__gxx_personality_v0
+	.section	.data.DW.ref.__gxx_personality_v0,"aGw", at progbits,DW.ref.__gxx_personality_v0,comdat
+	.align	8
+	.type	DW.ref.__gxx_personality_v0, at object
+	.size	DW.ref.__gxx_personality_v0, 8
+DW.ref.__gxx_personality_v0:
+	.quad	__gxx_personality_v0
+
+# The readelf rendering is:
+#
+# Contents of the .eh_frame section:
+#
+# 00000000 0000001c 00000000 CIE
+#   Version:               1
+#   Augmentation:          "zPLR"
+#   Code alignment factor: 1
+#   Data alignment factor: -8
+#   Return address column: 14
+#   Augmentation data:     9b ff ff ff ed 1b 1b
+#
+#   DW_CFA_def_cfa: r15 ofs 160
+#   DW_CFA_nop
+#   DW_CFA_nop
+#   DW_CFA_nop
+#
+# 00000020 0000001c 00000024 FDE cie=00000000 pc=00000000..00000012
+#   Augmentation data:     ff ff ff cf
+#
+#   DW_CFA_advance_loc: 6 to 00000006
+#   DW_CFA_offset: r14 at cfa-48
+#   DW_CFA_offset: r15 at cfa-40
+#   DW_CFA_advance_loc: 4 to 0000000a
+#   DW_CFA_def_cfa_offset: 320
+#   DW_CFA_nop
+#   DW_CFA_nop
+#
+# CHECK: Contents of section .eh_frame:
+# CHECK-NEXT: 0000 0000001c 00000000 017a504c 52000178  .........zPLR..x
+# CHECK-NEXT: 0010 0e079b00 0000001b 1b0c0fa0 01000000  ................
+# CHECK-NEXT: 0020 0000001c 00000024 00000000 00000012  .......$........
+# CHECK-NEXT: 0030 04000000 00468e06 8f05440e c0020000  .....F....D.....

Added: llvm/trunk/test/DebugInfo/SystemZ/lit.local.cfg
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/SystemZ/lit.local.cfg?rev=181205&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/SystemZ/lit.local.cfg (added)
+++ llvm/trunk/test/DebugInfo/SystemZ/lit.local.cfg Mon May  6 11:18:29 2013
@@ -0,0 +1,6 @@
+config.suffixes = ['.ll', '.s']
+
+targets = set(config.root.targets_to_build.split())
+if not 'SystemZ' in targets:
+    config.unsupported = True
+

Added: llvm/trunk/test/DebugInfo/SystemZ/variable-loc.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/SystemZ/variable-loc.ll?rev=181205&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/SystemZ/variable-loc.ll (added)
+++ llvm/trunk/test/DebugInfo/SystemZ/variable-loc.ll Mon May  6 11:18:29 2013
@@ -0,0 +1,85 @@
+; RUN: llc -mtriple=s390x-linux-gnu -disable-fp-elim < %s | FileCheck %s
+;
+; This is a regression test making sure the location of variables is correct in
+; debugging information, even if they're addressed via the frame pointer.
+; A copy of the AArch64 test, commandeered for SystemZ.
+;
+; First make sure main_arr is where we expect it: %r11 + 164
+;
+; CHECK: main:
+; CHECK: aghi    %r15, -568
+; CHECK: la      [[MAIN_ARR:%r[0-9]+]], 164(%r11)
+; CHECK: lgr     %r2, [[MAIN_ARR]]
+; CHECK: brasl   %r14, populate_array at PLT
+;
+; Now check that the debugging information reflects this:
+; CHECK: DW_TAG_variable
+; CHECK-NEXT: .long .Linfo_string7
+;
+; Rather hard-coded, but 145 => DW_OP_fbreg and the .ascii is the sleb128
+; encoding of 164:
+; CHECK: DW_AT_location
+; CHECK-NEXT: .byte 145
+; CHECK-NEXT: .ascii "\244\001"
+;
+; CHECK: .Linfo_string7:
+; CHECK-NEXT: main_arr
+
+
+ at .str = private unnamed_addr constant [13 x i8] c"Total is %d\0A\00", align 2
+
+declare void @populate_array(i32*, i32) nounwind
+
+declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
+
+declare i32 @sum_array(i32*, i32) nounwind
+
+define i32 @main() nounwind {
+entry:
+  %retval = alloca i32, align 4
+  %main_arr = alloca [100 x i32], align 4
+  %val = alloca i32, align 4
+  store i32 0, i32* %retval
+  call void @llvm.dbg.declare(metadata !{[100 x i32]* %main_arr}, metadata !17), !dbg !22
+  call void @llvm.dbg.declare(metadata !{i32* %val}, metadata !23), !dbg !24
+  %arraydecay = getelementptr inbounds [100 x i32]* %main_arr, i32 0, i32 0, !dbg !25
+  call void @populate_array(i32* %arraydecay, i32 100), !dbg !25
+  %arraydecay1 = getelementptr inbounds [100 x i32]* %main_arr, i32 0, i32 0, !dbg !26
+  %call = call i32 @sum_array(i32* %arraydecay1, i32 100), !dbg !26
+  store i32 %call, i32* %val, align 4, !dbg !26
+  %0 = load i32* %val, align 4, !dbg !27
+  %call2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0), i32 %0), !dbg !27
+  ret i32 0, !dbg !28
+}
+
+declare i32 @printf(i8*, ...)
+
+!llvm.dbg.cu = !{!0}
+
+!0 = metadata !{i32 786449, metadata !29, i32 12, metadata !"clang version 3.2 ", i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1,  metadata !1, metadata !""} ; [ DW_TAG_compile_unit ] [/home/timnor01/a64-trunk/build/simple.c] [DW_LANG_C99]
+!1 = metadata !{i32 0}
+!3 = metadata !{metadata !5, metadata !11, metadata !14}
+!5 = metadata !{i32 786478, metadata !6, metadata !"populate_array", metadata !"populate_array", metadata !"", metadata !6, i32 4, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, void (i32*, i32)* @populate_array, null, null, metadata !1, i32 4} ; [ DW_TAG_subprogram ] [line 4] [def] [populate_array]
+!6 = metadata !{i32 786473, metadata !29} ; [ DW_TAG_file_type ]
+!7 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
+!8 = metadata !{null, metadata !9, metadata !10}
+!9 = metadata !{i32 786447, null, null, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 0, metadata !10} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from int]
+!10 = 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]
+!11 = metadata !{i32 786478, metadata !6, metadata !"sum_array", metadata !"sum_array", metadata !"", metadata !6, i32 9, metadata !12, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32*, i32)* @sum_array, null, null, metadata !1, i32 9} ; [ DW_TAG_subprogram ] [line 9] [def] [sum_array]
+!12 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !13, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
+!13 = metadata !{metadata !10, metadata !9, metadata !10}
+!14 = metadata !{i32 786478, metadata !6, metadata !"main", metadata !"main", metadata !"", metadata !6, i32 18, metadata !15, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @main, null, null, metadata !1, i32 18} ; [ DW_TAG_subprogram ] [line 18] [def] [main]
+!15 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !16, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
+!16 = metadata !{metadata !10}
+!17 = metadata !{i32 786688, metadata !18, metadata !"main_arr", metadata !6, i32 19, metadata !19, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [main_arr] [line 19]
+!18 = metadata !{i32 786443, metadata !6, metadata !14, i32 18, i32 16, i32 4} ; [ DW_TAG_lexical_block ] [/home/timnor01/a64-trunk/build/simple.c]
+!19 = metadata !{i32 786433, null, null, metadata !"", i32 0, i64 3200, i64 32, i32 0, i32 0, metadata !10, metadata !20, i32 0, i32 0} ; [ DW_TAG_array_type ] [line 0, size 3200, align 32, offset 0] [from int]
+!20 = metadata !{i32 786465, i64 0, i64 99}       ; [ DW_TAG_subrange_type ] [0, 99]
+!22 = metadata !{i32 19, i32 7, metadata !18, null}
+!23 = metadata !{i32 786688, metadata !18, metadata !"val", metadata !6, i32 20, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [val] [line 20]
+!24 = metadata !{i32 20, i32 7, metadata !18, null}
+!25 = metadata !{i32 22, i32 3, metadata !18, null}
+!26 = metadata !{i32 23, i32 9, metadata !18, null}
+!27 = metadata !{i32 24, i32 3, metadata !18, null}
+!28 = metadata !{i32 26, i32 3, metadata !18, null}
+!29 = metadata !{metadata !"simple.c", metadata !"/home/timnor01/a64-trunk/build"}

Added: llvm/trunk/test/DebugInfo/SystemZ/variable-loc.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/SystemZ/variable-loc.s?rev=181205&view=auto
==============================================================================
--- llvm/trunk/test/DebugInfo/SystemZ/variable-loc.s (added)
+++ llvm/trunk/test/DebugInfo/SystemZ/variable-loc.s Mon May  6 11:18:29 2013
@@ -0,0 +1,340 @@
+# RUN: llvm-mc < %s -triple=s390x-linux-gnu -filetype=obj | llvm-dwarfdump - | FileCheck %s
+#
+# We use both R_390_32 and R_390_64 to encode the dwarf information.
+# Test that they are used correctly.  This uses the assembly output
+# for variable-loc.ll
+#
+# A couple of R_390_32s, both at 0 and elsewhere:
+#
+# CHECK: DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 3.2 ")
+# CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000013] = "simple.c")
+#
+# A couple of R_390_64s similarly:
+#
+# CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+# CHECK: DW_AT_high_pc [DW_FORM_addr] (0x0000000000000050)
+
+
+	.file	"test/DebugInfo/SystemZ/variable-loc.ll"
+	.section	.debug_info,"", at progbits
+.Lsection_info:
+	.section	.debug_abbrev,"", at progbits
+.Lsection_abbrev:
+	.section	.debug_aranges,"", at progbits
+	.section	.debug_macinfo,"", at progbits
+	.section	.debug_line,"", at progbits
+.Lsection_line:
+	.section	.debug_loc,"", at progbits
+	.section	.debug_pubtypes,"", at progbits
+	.section	.debug_str,"MS", at progbits,1
+.Linfo_string:
+	.section	.debug_ranges,"", at progbits
+.Ldebug_range:
+	.section	.debug_loc,"", at progbits
+.Lsection_debug_loc:
+	.text
+.Ltext_begin:
+	.data
+	.file	1 "simple.c"
+	.file	2 "<stdin>"
+	.text
+	.globl	main
+	.align	4
+	.type	main, at function
+main:                                   # @main
+	.cfi_startproc
+.Lfunc_begin0:
+	.loc	2 18 0                  # :18:0
+# BB#0:                                 # %entry
+	stmg	%r12, %r15, 96(%r15)
+.Ltmp2:
+	.cfi_offset %r12, -64
+.Ltmp3:
+	.cfi_offset %r13, -56
+.Ltmp4:
+	.cfi_offset %r14, -48
+.Ltmp5:
+	.cfi_offset %r15, -40
+	aghi	%r15, -568
+.Ltmp6:
+	.cfi_def_cfa_offset 728
+	mvhi	564(%r15), 0
+	la	%r13, 164(%r15)
+	lhi	%r12, 100
+	.loc	2 22 3 prologue_end     # :22:3
+.Ltmp7:
+	lgr	%r2, %r13
+	lr	%r3, %r12
+	brasl	%r14, populate_array at PLT
+	.loc	2 23 9                  # :23:9
+	lgr	%r2, %r13
+	lr	%r3, %r12
+	brasl	%r14, sum_array at PLT
+	lr	%r0, %r2
+	st	%r0, 160(%r15)
+	.loc	2 24 3                  # :24:3
+	larl	%r2, .L.str
+	lr	%r3, %r0
+	brasl	%r14, printf at PLT
+	lhi	%r2, 0
+	.loc	2 26 3                  # :26:3
+	lmg	%r12, %r15, 664(%r15)
+	br	%r14
+.Ltmp8:
+.Ltmp9:
+	.size	main, .Ltmp9-main
+.Lfunc_end0:
+	.cfi_endproc
+
+	.type	.L.str, at object          # @.str
+	.section	.rodata.str1.2,"aMS", at progbits,1
+	.align	2
+.L.str:
+	.asciz	 "Total is %d\n"
+	.size	.L.str, 13
+
+	.cfi_sections .debug_frame
+	.text
+.Ltext_end:
+	.data
+.Ldata_end:
+	.text
+.Lsection_end1:
+	.section	.debug_info,"", at progbits
+.L.debug_info_begin0:
+	.long	155                     # Length of Compilation Unit Info
+	.short	2                       # DWARF version number
+	.long	.L.debug_abbrev_begin   # Offset Into Abbrev. Section
+	.byte	8                       # Address Size (in bytes)
+	.byte	1                       # Abbrev [1] 0xb:0x94 DW_TAG_compile_unit
+	.long	.Linfo_string0          # DW_AT_producer
+	.short	12                      # DW_AT_language
+	.long	.Linfo_string1          # DW_AT_name
+	.quad	0                       # DW_AT_low_pc
+	.long	.Lsection_line          # DW_AT_stmt_list
+	.long	.Linfo_string2          # DW_AT_comp_dir
+	.byte	2                       # Abbrev [2] 0x26:0x7 DW_TAG_subprogram
+	.long	.Linfo_string3          # DW_AT_name
+	.byte	2                       # DW_AT_decl_file
+	.byte	4                       # DW_AT_decl_line
+                                        # DW_AT_prototyped
+                                        # DW_AT_external
+	.byte	3                       # Abbrev [3] 0x2d:0xb DW_TAG_subprogram
+	.long	.Linfo_string4          # DW_AT_name
+	.byte	2                       # DW_AT_decl_file
+	.byte	9                       # DW_AT_decl_line
+                                        # DW_AT_prototyped
+	.long	56                      # DW_AT_type
+                                        # DW_AT_external
+	.byte	4                       # Abbrev [4] 0x38:0x7 DW_TAG_base_type
+	.long	.Linfo_string5          # DW_AT_name
+	.byte	5                       # DW_AT_encoding
+	.byte	4                       # DW_AT_byte_size
+	.byte	5                       # Abbrev [5] 0x3f:0xb DW_TAG_subprogram
+	.long	.Linfo_string6          # DW_AT_name
+	.byte	2                       # DW_AT_decl_file
+	.byte	18                      # DW_AT_decl_line
+                                        # DW_AT_prototyped
+	.long	56                      # DW_AT_type
+                                        # DW_AT_external
+                                        # DW_AT_declaration
+	.byte	6                       # Abbrev [6] 0x4a:0x7 DW_TAG_base_type
+	.long	.Linfo_string5          # DW_AT_name
+	.byte	4                       # DW_AT_byte_size
+	.byte	5                       # DW_AT_encoding
+	.byte	7                       # Abbrev [7] 0x51:0x5 DW_TAG_array_type
+	.long	56                      # DW_AT_type
+	.byte	8                       # Abbrev [8] 0x56:0x48 DW_TAG_subprogram
+	.long	63                      # DW_AT_specification
+	.quad	.Lfunc_begin0           # DW_AT_low_pc
+	.quad	.Lfunc_end0             # DW_AT_high_pc
+	.byte	1                       # DW_AT_frame_base
+	.byte	95
+                                        # DW_AT_APPLE_omit_frame_ptr
+	.byte	9                       # Abbrev [9] 0x6d:0x30 DW_TAG_lexical_block
+	.quad	.Ltmp7                  # DW_AT_low_pc
+	.quad	.Ltmp8                  # DW_AT_high_pc
+	.byte	10                      # Abbrev [10] 0x7e:0xf DW_TAG_variable
+	.long	.Linfo_string7          # DW_AT_name
+	.byte	2                       # DW_AT_decl_file
+	.byte	19                      # DW_AT_decl_line
+	.long	81                      # DW_AT_type
+	.byte	3                       # DW_AT_location
+	.byte	145
+	.ascii	 "\244\001"
+	.byte	10                      # Abbrev [10] 0x8d:0xf DW_TAG_variable
+	.long	.Linfo_string8          # DW_AT_name
+	.byte	2                       # DW_AT_decl_file
+	.byte	20                      # DW_AT_decl_line
+	.long	56                      # DW_AT_type
+	.byte	3                       # DW_AT_location
+	.byte	145
+	.ascii	 "\240\001"
+	.byte	0                       # End Of Children Mark
+	.byte	0                       # End Of Children Mark
+	.byte	0                       # End Of Children Mark
+.L.debug_info_end0:
+	.section	.debug_abbrev,"", at progbits
+.L.debug_abbrev_begin:
+	.byte	1                       # Abbreviation Code
+	.byte	17                      # DW_TAG_compile_unit
+	.byte	1                       # DW_CHILDREN_yes
+	.byte	37                      # DW_AT_producer
+	.byte	14                      # DW_FORM_strp
+	.byte	19                      # DW_AT_language
+	.byte	5                       # DW_FORM_data2
+	.byte	3                       # DW_AT_name
+	.byte	14                      # DW_FORM_strp
+	.byte	17                      # DW_AT_low_pc
+	.byte	1                       # DW_FORM_addr
+	.byte	16                      # DW_AT_stmt_list
+	.byte	6                       # DW_FORM_data4
+	.byte	27                      # DW_AT_comp_dir
+	.byte	14                      # DW_FORM_strp
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	2                       # Abbreviation Code
+	.byte	46                      # DW_TAG_subprogram
+	.byte	0                       # DW_CHILDREN_no
+	.byte	3                       # DW_AT_name
+	.byte	14                      # DW_FORM_strp
+	.byte	58                      # DW_AT_decl_file
+	.byte	11                      # DW_FORM_data1
+	.byte	59                      # DW_AT_decl_line
+	.byte	11                      # DW_FORM_data1
+	.byte	39                      # DW_AT_prototyped
+	.byte	25                      # DW_FORM_flag_present
+	.byte	63                      # DW_AT_external
+	.byte	25                      # DW_FORM_flag_present
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	3                       # Abbreviation Code
+	.byte	46                      # DW_TAG_subprogram
+	.byte	0                       # DW_CHILDREN_no
+	.byte	3                       # DW_AT_name
+	.byte	14                      # DW_FORM_strp
+	.byte	58                      # DW_AT_decl_file
+	.byte	11                      # DW_FORM_data1
+	.byte	59                      # DW_AT_decl_line
+	.byte	11                      # DW_FORM_data1
+	.byte	39                      # DW_AT_prototyped
+	.byte	25                      # DW_FORM_flag_present
+	.byte	73                      # DW_AT_type
+	.byte	19                      # DW_FORM_ref4
+	.byte	63                      # DW_AT_external
+	.byte	25                      # DW_FORM_flag_present
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	4                       # Abbreviation Code
+	.byte	36                      # DW_TAG_base_type
+	.byte	0                       # DW_CHILDREN_no
+	.byte	3                       # DW_AT_name
+	.byte	14                      # DW_FORM_strp
+	.byte	62                      # DW_AT_encoding
+	.byte	11                      # DW_FORM_data1
+	.byte	11                      # DW_AT_byte_size
+	.byte	11                      # DW_FORM_data1
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	5                       # Abbreviation Code
+	.byte	46                      # DW_TAG_subprogram
+	.byte	0                       # DW_CHILDREN_no
+	.byte	3                       # DW_AT_name
+	.byte	14                      # DW_FORM_strp
+	.byte	58                      # DW_AT_decl_file
+	.byte	11                      # DW_FORM_data1
+	.byte	59                      # DW_AT_decl_line
+	.byte	11                      # DW_FORM_data1
+	.byte	39                      # DW_AT_prototyped
+	.byte	25                      # DW_FORM_flag_present
+	.byte	73                      # DW_AT_type
+	.byte	19                      # DW_FORM_ref4
+	.byte	63                      # DW_AT_external
+	.byte	25                      # DW_FORM_flag_present
+	.byte	60                      # DW_AT_declaration
+	.byte	25                      # DW_FORM_flag_present
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	6                       # Abbreviation Code
+	.byte	36                      # DW_TAG_base_type
+	.byte	0                       # DW_CHILDREN_no
+	.byte	3                       # DW_AT_name
+	.byte	14                      # DW_FORM_strp
+	.byte	11                      # DW_AT_byte_size
+	.byte	11                      # DW_FORM_data1
+	.byte	62                      # DW_AT_encoding
+	.byte	11                      # DW_FORM_data1
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	7                       # Abbreviation Code
+	.byte	1                       # DW_TAG_array_type
+	.byte	0                       # DW_CHILDREN_no
+	.byte	73                      # DW_AT_type
+	.byte	19                      # DW_FORM_ref4
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	8                       # Abbreviation Code
+	.byte	46                      # DW_TAG_subprogram
+	.byte	1                       # DW_CHILDREN_yes
+	.byte	71                      # DW_AT_specification
+	.byte	19                      # DW_FORM_ref4
+	.byte	17                      # DW_AT_low_pc
+	.byte	1                       # DW_FORM_addr
+	.byte	18                      # DW_AT_high_pc
+	.byte	1                       # DW_FORM_addr
+	.byte	64                      # DW_AT_frame_base
+	.byte	10                      # DW_FORM_block1
+	.ascii	 "\347\177"             # DW_AT_APPLE_omit_frame_ptr
+	.byte	25                      # DW_FORM_flag_present
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	9                       # Abbreviation Code
+	.byte	11                      # DW_TAG_lexical_block
+	.byte	1                       # DW_CHILDREN_yes
+	.byte	17                      # DW_AT_low_pc
+	.byte	1                       # DW_FORM_addr
+	.byte	18                      # DW_AT_high_pc
+	.byte	1                       # DW_FORM_addr
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	10                      # Abbreviation Code
+	.byte	52                      # DW_TAG_variable
+	.byte	0                       # DW_CHILDREN_no
+	.byte	3                       # DW_AT_name
+	.byte	14                      # DW_FORM_strp
+	.byte	58                      # DW_AT_decl_file
+	.byte	11                      # DW_FORM_data1
+	.byte	59                      # DW_AT_decl_line
+	.byte	11                      # DW_FORM_data1
+	.byte	73                      # DW_AT_type
+	.byte	19                      # DW_FORM_ref4
+	.byte	2                       # DW_AT_location
+	.byte	10                      # DW_FORM_block1
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	0                       # EOM(3)
+.L.debug_abbrev_end:
+	.section	.debug_aranges,"", at progbits
+	.section	.debug_ranges,"", at progbits
+	.section	.debug_macinfo,"", at progbits
+	.section	.debug_str,"MS", at progbits,1
+.Linfo_string0:
+	.asciz	 "clang version 3.2 "
+.Linfo_string1:
+	.asciz	 "simple.c"
+.Linfo_string2:
+	.asciz	 "/home/timnor01/a64-trunk/build"
+.Linfo_string3:
+	.asciz	 "populate_array"
+.Linfo_string4:
+	.asciz	 "sum_array"
+.Linfo_string5:
+	.asciz	 "int"
+.Linfo_string6:
+	.asciz	 "main"
+.Linfo_string7:
+	.asciz	 "main_arr"
+.Linfo_string8:
+	.asciz	 "val"
+
+	.section	".note.GNU-stack","", at progbits





More information about the llvm-commits mailing list