394 lines · plain
1# helper.cpp -O1 -g2 -gdwarf-5 -S -o helper.s2# struct Foo1 {3# int x;4# int y;5# };6# inline __attribute__((always_inline))7# static int helper(Foo1 &f) {8# return f.x + 3;9# }10# int foo(int i) {11# Foo1 foo;12# foo.x = i;13# foo.y = 3;14# return helper(foo);15# }16 17 .text18 .file "helper.cpp"19 .globl _Z3fooi # -- Begin function _Z3fooi20 .p2align 4, 0x9021 .type _Z3fooi,@function22_Z3fooi: # @_Z3fooi23.Lfunc_begin0:24 .file 0 "/dwarf4CrossCULocList" "helper.cpp" md5 0xc9271b4999165863c559e42d691423d125 .cfi_startproc26# %bb.0: # %entry27 #DEBUG_VALUE: foo:i <- $edi28 #DEBUG_VALUE: foo:foo <- [DW_OP_LLVM_fragment 0 32] $edi29 # kill: def $edi killed $edi def $rdi30 #DEBUG_VALUE: foo:foo <- [DW_OP_LLVM_fragment 32 32] 331 .loc 0 7 14 prologue_end # helper.cpp:7:1432 leal 3(%rdi), %eax33.Ltmp0:34 .loc 0 13 3 # helper.cpp:13:335 retq36.Ltmp1:37.Lfunc_end0:38 .size _Z3fooi, .Lfunc_end0-_Z3fooi39 .cfi_endproc40 # -- End function41 .section .debug_loclists,"",@progbits42 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length43.Ldebug_list_header_start0:44 .short 5 # Version45 .byte 8 # Address size46 .byte 0 # Segment selector size47 .long 1 # Offset entry count48.Lloclists_table_base0:49 .long .Ldebug_loc0-.Lloclists_table_base050.Ldebug_loc0:51 .byte 4 # DW_LLE_offset_pair52 .uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset53 .uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset54 .byte 7 # Loc expr size55 .byte 85 # super-register DW_OP_reg556 .byte 147 # DW_OP_piece57 .byte 4 # 458 .byte 51 # DW_OP_lit359 .byte 159 # DW_OP_stack_value60 .byte 147 # DW_OP_piece61 .byte 4 # 462 .byte 0 # DW_LLE_end_of_list63.Ldebug_list_header_end0:64 .section .debug_abbrev,"",@progbits65 .byte 1 # Abbreviation Code66 .byte 17 # DW_TAG_compile_unit67 .byte 1 # DW_CHILDREN_yes68 .byte 37 # DW_AT_producer69 .byte 37 # DW_FORM_strx170 .byte 19 # DW_AT_language71 .byte 5 # DW_FORM_data272 .byte 3 # DW_AT_name73 .byte 37 # DW_FORM_strx174 .byte 114 # DW_AT_str_offsets_base75 .byte 23 # DW_FORM_sec_offset76 .byte 16 # DW_AT_stmt_list77 .byte 23 # DW_FORM_sec_offset78 .byte 27 # DW_AT_comp_dir79 .byte 37 # DW_FORM_strx180 .byte 17 # DW_AT_low_pc81 .byte 27 # DW_FORM_addrx82 .byte 18 # DW_AT_high_pc83 .byte 6 # DW_FORM_data484 .byte 115 # DW_AT_addr_base85 .byte 23 # DW_FORM_sec_offset86 .ascii "\214\001" # DW_AT_loclists_base87 .byte 23 # DW_FORM_sec_offset88 .byte 0 # EOM(1)89 .byte 0 # EOM(2)90 .byte 2 # Abbreviation Code91 .byte 46 # DW_TAG_subprogram92 .byte 1 # DW_CHILDREN_yes93 .byte 110 # DW_AT_linkage_name94 .byte 37 # DW_FORM_strx195 .byte 3 # DW_AT_name96 .byte 37 # DW_FORM_strx197 .byte 58 # DW_AT_decl_file98 .byte 11 # DW_FORM_data199 .byte 59 # DW_AT_decl_line100 .byte 11 # DW_FORM_data1101 .byte 73 # DW_AT_type102 .byte 19 # DW_FORM_ref4103 .byte 32 # DW_AT_inline104 .byte 33 # DW_FORM_implicit_const105 .byte 1106 .byte 0 # EOM(1)107 .byte 0 # EOM(2)108 .byte 3 # Abbreviation Code109 .byte 5 # DW_TAG_formal_parameter110 .byte 0 # DW_CHILDREN_no111 .byte 3 # DW_AT_name112 .byte 37 # DW_FORM_strx1113 .byte 58 # DW_AT_decl_file114 .byte 11 # DW_FORM_data1115 .byte 59 # DW_AT_decl_line116 .byte 11 # DW_FORM_data1117 .byte 73 # DW_AT_type118 .byte 19 # DW_FORM_ref4119 .byte 0 # EOM(1)120 .byte 0 # EOM(2)121 .byte 4 # Abbreviation Code122 .byte 36 # DW_TAG_base_type123 .byte 0 # DW_CHILDREN_no124 .byte 3 # DW_AT_name125 .byte 37 # DW_FORM_strx1126 .byte 62 # DW_AT_encoding127 .byte 11 # DW_FORM_data1128 .byte 11 # DW_AT_byte_size129 .byte 11 # DW_FORM_data1130 .byte 0 # EOM(1)131 .byte 0 # EOM(2)132 .byte 5 # Abbreviation Code133 .byte 16 # DW_TAG_reference_type134 .byte 0 # DW_CHILDREN_no135 .byte 73 # DW_AT_type136 .byte 19 # DW_FORM_ref4137 .byte 0 # EOM(1)138 .byte 0 # EOM(2)139 .byte 6 # Abbreviation Code140 .byte 19 # DW_TAG_structure_type141 .byte 1 # DW_CHILDREN_yes142 .byte 54 # DW_AT_calling_convention143 .byte 11 # DW_FORM_data1144 .byte 3 # DW_AT_name145 .byte 37 # DW_FORM_strx1146 .byte 11 # DW_AT_byte_size147 .byte 11 # DW_FORM_data1148 .byte 58 # DW_AT_decl_file149 .byte 11 # DW_FORM_data1150 .byte 59 # DW_AT_decl_line151 .byte 11 # DW_FORM_data1152 .byte 0 # EOM(1)153 .byte 0 # EOM(2)154 .byte 7 # Abbreviation Code155 .byte 13 # DW_TAG_member156 .byte 0 # DW_CHILDREN_no157 .byte 3 # DW_AT_name158 .byte 37 # DW_FORM_strx1159 .byte 73 # DW_AT_type160 .byte 19 # DW_FORM_ref4161 .byte 58 # DW_AT_decl_file162 .byte 11 # DW_FORM_data1163 .byte 59 # DW_AT_decl_line164 .byte 11 # DW_FORM_data1165 .byte 56 # DW_AT_data_member_location166 .byte 11 # DW_FORM_data1167 .byte 0 # EOM(1)168 .byte 0 # EOM(2)169 .byte 8 # Abbreviation Code170 .byte 46 # DW_TAG_subprogram171 .byte 1 # DW_CHILDREN_yes172 .byte 17 # DW_AT_low_pc173 .byte 27 # DW_FORM_addrx174 .byte 18 # DW_AT_high_pc175 .byte 6 # DW_FORM_data4176 .byte 64 # DW_AT_frame_base177 .byte 24 # DW_FORM_exprloc178 .byte 122 # DW_AT_call_all_calls179 .byte 25 # DW_FORM_flag_present180 .byte 110 # DW_AT_linkage_name181 .byte 37 # DW_FORM_strx1182 .byte 3 # DW_AT_name183 .byte 37 # DW_FORM_strx1184 .byte 58 # DW_AT_decl_file185 .byte 11 # DW_FORM_data1186 .byte 59 # DW_AT_decl_line187 .byte 11 # DW_FORM_data1188 .byte 73 # DW_AT_type189 .byte 19 # DW_FORM_ref4190 .byte 63 # DW_AT_external191 .byte 25 # DW_FORM_flag_present192 .byte 0 # EOM(1)193 .byte 0 # EOM(2)194 .byte 9 # Abbreviation Code195 .byte 5 # DW_TAG_formal_parameter196 .byte 0 # DW_CHILDREN_no197 .byte 2 # DW_AT_location198 .byte 24 # DW_FORM_exprloc199 .byte 3 # DW_AT_name200 .byte 37 # DW_FORM_strx1201 .byte 58 # DW_AT_decl_file202 .byte 11 # DW_FORM_data1203 .byte 59 # DW_AT_decl_line204 .byte 11 # DW_FORM_data1205 .byte 73 # DW_AT_type206 .byte 19 # DW_FORM_ref4207 .byte 0 # EOM(1)208 .byte 0 # EOM(2)209 .byte 10 # Abbreviation Code210 .byte 52 # DW_TAG_variable211 .byte 0 # DW_CHILDREN_no212 .byte 2 # DW_AT_location213 .byte 34 # DW_FORM_loclistx214 .byte 3 # DW_AT_name215 .byte 37 # DW_FORM_strx1216 .byte 58 # DW_AT_decl_file217 .byte 11 # DW_FORM_data1218 .byte 59 # DW_AT_decl_line219 .byte 11 # DW_FORM_data1220 .byte 73 # DW_AT_type221 .byte 19 # DW_FORM_ref4222 .byte 0 # EOM(1)223 .byte 0 # EOM(2)224 .byte 11 # Abbreviation Code225 .byte 29 # DW_TAG_inlined_subroutine226 .byte 0 # DW_CHILDREN_no227 .byte 49 # DW_AT_abstract_origin228 .byte 19 # DW_FORM_ref4229 .byte 17 # DW_AT_low_pc230 .byte 27 # DW_FORM_addrx231 .byte 18 # DW_AT_high_pc232 .byte 6 # DW_FORM_data4233 .byte 88 # DW_AT_call_file234 .byte 11 # DW_FORM_data1235 .byte 89 # DW_AT_call_line236 .byte 11 # DW_FORM_data1237 .byte 87 # DW_AT_call_column238 .byte 11 # DW_FORM_data1239 .byte 0 # EOM(1)240 .byte 0 # EOM(2)241 .byte 0 # EOM(3)242 .section .debug_info,"",@progbits243.Lcu_begin0:244 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit245.Ldebug_info_start0:246 .short 5 # DWARF version number247 .byte 1 # DWARF Unit Type248 .byte 8 # Address Size (in bytes)249 .long .debug_abbrev # Offset Into Abbrev. Section250 .byte 1 # Abbrev [1] 0xc:0x81 DW_TAG_compile_unit251 .byte 0 # DW_AT_producer252 .short 33 # DW_AT_language253 .byte 1 # DW_AT_name254 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base255 .long .Lline_table_start0 # DW_AT_stmt_list256 .byte 2 # DW_AT_comp_dir257 .byte 0 # DW_AT_low_pc258 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc259 .long .Laddr_table_base0 # DW_AT_addr_base260 .long .Lloclists_table_base0 # DW_AT_loclists_base261 .byte 2 # Abbrev [2] 0x27:0x12 DW_TAG_subprogram262 .byte 3 # DW_AT_linkage_name263 .byte 4 # DW_AT_name264 .byte 0 # DW_AT_decl_file265 .byte 6 # DW_AT_decl_line266 .long 57 # DW_AT_type267 # DW_AT_inline268 .byte 3 # Abbrev [3] 0x30:0x8 DW_TAG_formal_parameter269 .byte 6 # DW_AT_name270 .byte 0 # DW_AT_decl_file271 .byte 6 # DW_AT_decl_line272 .long 61 # DW_AT_type273 .byte 0 # End Of Children Mark274 .byte 4 # Abbrev [4] 0x39:0x4 DW_TAG_base_type275 .byte 5 # DW_AT_name276 .byte 5 # DW_AT_encoding277 .byte 4 # DW_AT_byte_size278 .byte 5 # Abbrev [5] 0x3d:0x5 DW_TAG_reference_type279 .long 66 # DW_AT_type280 .byte 6 # Abbrev [6] 0x42:0x19 DW_TAG_structure_type281 .byte 5 # DW_AT_calling_convention282 .byte 9 # DW_AT_name283 .byte 8 # DW_AT_byte_size284 .byte 0 # DW_AT_decl_file285 .byte 1 # DW_AT_decl_line286 .byte 7 # Abbrev [7] 0x48:0x9 DW_TAG_member287 .byte 7 # DW_AT_name288 .long 57 # DW_AT_type289 .byte 0 # DW_AT_decl_file290 .byte 2 # DW_AT_decl_line291 .byte 0 # DW_AT_data_member_location292 .byte 7 # Abbrev [7] 0x51:0x9 DW_TAG_member293 .byte 8 # DW_AT_name294 .long 57 # DW_AT_type295 .byte 0 # DW_AT_decl_file296 .byte 3 # DW_AT_decl_line297 .byte 4 # DW_AT_data_member_location298 .byte 0 # End Of Children Mark299 .byte 8 # Abbrev [8] 0x5b:0x31 DW_TAG_subprogram300 .byte 0 # DW_AT_low_pc301 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc302 .byte 1 # DW_AT_frame_base303 .byte 87304 # DW_AT_call_all_calls305 .byte 10 # DW_AT_linkage_name306 .byte 11 # DW_AT_name307 .byte 0 # DW_AT_decl_file308 .byte 9 # DW_AT_decl_line309 .long 57 # DW_AT_type310 # DW_AT_external311 .byte 9 # Abbrev [9] 0x6b:0xa DW_TAG_formal_parameter312 .byte 1 # DW_AT_location313 .byte 85314 .byte 12 # DW_AT_name315 .byte 0 # DW_AT_decl_file316 .byte 9 # DW_AT_decl_line317 .long 57 # DW_AT_type318 .byte 10 # Abbrev [10] 0x75:0x9 DW_TAG_variable319 .byte 0 # DW_AT_location320 .byte 11 # DW_AT_name321 .byte 0 # DW_AT_decl_file322 .byte 10 # DW_AT_decl_line323 .long 66 # DW_AT_type324 .byte 11 # Abbrev [11] 0x7e:0xd DW_TAG_inlined_subroutine325 .long 39 # DW_AT_abstract_origin326 .byte 0 # DW_AT_low_pc327 .long .Ltmp0-.Lfunc_begin0 # DW_AT_high_pc328 .byte 0 # DW_AT_call_file329 .byte 13 # DW_AT_call_line330 .byte 10 # DW_AT_call_column331 .byte 0 # End Of Children Mark332 .byte 0 # End Of Children Mark333.Ldebug_info_end0:334 .section .debug_str_offsets,"",@progbits335 .long 56 # Length of String Offsets Set336 .short 5337 .short 0338.Lstr_offsets_base0:339 .section .debug_str,"MS",@progbits,1340.Linfo_string0:341 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 37d6c1cc7d4dd3a8a47ba62254bc88521bd50d66)" # string offset=0342.Linfo_string1:343 .asciz "helper.cpp" # string offset=101344.Linfo_string2:345 .asciz "/dwarf4CrossCULocList" # string offset=112346.Linfo_string3:347 .asciz "_ZL6helperR4Foo1" # string offset=171348.Linfo_string4:349 .asciz "helper" # string offset=188350.Linfo_string5:351 .asciz "int" # string offset=195352.Linfo_string6:353 .asciz "f" # string offset=199354.Linfo_string7:355 .asciz "x" # string offset=201356.Linfo_string8:357 .asciz "y" # string offset=203358.Linfo_string9:359 .asciz "Foo1" # string offset=205360.Linfo_string10:361 .asciz "_Z3fooi" # string offset=210362.Linfo_string11:363 .asciz "foo" # string offset=218364.Linfo_string12:365 .asciz "i" # string offset=222366 .section .debug_str_offsets,"",@progbits367 .long .Linfo_string0368 .long .Linfo_string1369 .long .Linfo_string2370 .long .Linfo_string3371 .long .Linfo_string4372 .long .Linfo_string5373 .long .Linfo_string6374 .long .Linfo_string7375 .long .Linfo_string8376 .long .Linfo_string9377 .long .Linfo_string10378 .long .Linfo_string11379 .long .Linfo_string12380 .section .debug_addr,"",@progbits381 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution382.Ldebug_addr_start0:383 .short 5 # DWARF version number384 .byte 8 # Address size385 .byte 0 # Segment selector size386.Laddr_table_base0:387 .quad .Lfunc_begin0388.Ldebug_addr_end0:389 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 37d6c1cc7d4dd3a8a47ba62254bc88521bd50d66)"390 .section ".note.GNU-stack","",@progbits391 .addrsig392 .section .debug_line,"",@progbits393.Lline_table_start0:394