353 lines · plain
1# clang++ -O2 -g -gdwarf-4 -gsplit-dwarf2# int z = 0;3# int d = 0;4# int helper(int z_, int d_) {5# z += z_;6# d += d_;7# return z * d;8# }9 10 .text11 .file "helper.cpp"12 .file 1 "." "helper.cpp"13 .globl _Z6helperii # -- Begin function _Z6helperii14 .p2align 4, 0x9015 .type _Z6helperii,@function16_Z6helperii: # @_Z6helperii17.Lfunc_begin0:18 .loc 1 3 0 # helper.cpp:3:019 .cfi_startproc20# %bb.0: # %entry21 #DEBUG_VALUE: helper:z_ <- $edi22 #DEBUG_VALUE: helper:d_ <- $esi23 movl %esi, %eax24.Ltmp0:25 .loc 1 4 4 prologue_end # helper.cpp:4:426 addl z(%rip), %edi27.Ltmp1:28 #DEBUG_VALUE: helper:z_ <- [DW_OP_LLVM_entry_value 1] $edi29 .loc 1 5 4 # helper.cpp:5:430 addl d(%rip), %eax31 .loc 1 4 4 # helper.cpp:4:432 movl %edi, z(%rip)33 .loc 1 5 4 # helper.cpp:5:434 movl %eax, d(%rip)35 .loc 1 6 11 # helper.cpp:6:1136 imull %edi, %eax37 .loc 1 6 2 is_stmt 0 # helper.cpp:6:238 retq39.Ltmp2:40.Lfunc_end0:41 .size _Z6helperii, .Lfunc_end0-_Z6helperii42 .cfi_endproc43 # -- End function44 .type z,@object # @z45 .bss46 .globl z47 .p2align 2, 0x048z:49 .long 0 # 0x050 .size z, 451 52 .type d,@object # @d53 .globl d54 .p2align 2, 0x055d:56 .long 0 # 0x057 .size d, 458 59 .section .debug_loc.dwo,"e",@progbits60.Ldebug_loc0:61 .byte 362 .byte 263 .long .Ltmp1-.Lfunc_begin064 .short 1 # Loc expr size65 .byte 85 # super-register DW_OP_reg566 .byte 367 .byte 368 .long .Lfunc_end0-.Ltmp169 .short 4 # Loc expr size70 .byte 243 # DW_OP_GNU_entry_value71 .byte 1 # 172 .byte 85 # super-register DW_OP_reg573 .byte 159 # DW_OP_stack_value74 .byte 075 .section .debug_abbrev,"",@progbits76 .byte 1 # Abbreviation Code77 .byte 17 # DW_TAG_compile_unit78 .byte 0 # DW_CHILDREN_no79 .byte 16 # DW_AT_stmt_list80 .byte 23 # DW_FORM_sec_offset81 .byte 27 # DW_AT_comp_dir82 .byte 14 # DW_FORM_strp83 .ascii "\264B" # DW_AT_GNU_pubnames84 .byte 25 # DW_FORM_flag_present85 .ascii "\260B" # DW_AT_GNU_dwo_name86 .byte 14 # DW_FORM_strp87 .ascii "\261B" # DW_AT_GNU_dwo_id88 .byte 7 # DW_FORM_data889 .byte 17 # DW_AT_low_pc90 .byte 1 # DW_FORM_addr91 .byte 18 # DW_AT_high_pc92 .byte 6 # DW_FORM_data493 .ascii "\263B" # DW_AT_GNU_addr_base94 .byte 23 # DW_FORM_sec_offset95 .byte 0 # EOM(1)96 .byte 0 # EOM(2)97 .byte 0 # EOM(3)98 .section .debug_info,"",@progbits99.Lcu_begin0:100 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit101.Ldebug_info_start0:102 .short 4 # DWARF version number103 .long .debug_abbrev # Offset Into Abbrev. Section104 .byte 8 # Address Size (in bytes)105 .byte 1 # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit106 .long .Lline_table_start0 # DW_AT_stmt_list107 .long .Lskel_string0 # DW_AT_comp_dir108 # DW_AT_GNU_pubnames109 .long .Lskel_string1 # DW_AT_GNU_dwo_name110 .quad -7229095317601456558 # DW_AT_GNU_dwo_id111 .quad .Lfunc_begin0 # DW_AT_low_pc112 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc113 .long .Laddr_table_base0 # DW_AT_GNU_addr_base114.Ldebug_info_end0:115 .section .debug_str,"MS",@progbits,1116.Lskel_string0:117 .asciz "." # string offset=0118.Lskel_string1:119 .asciz "helper.dwo" # string offset=47120 .section .debug_str.dwo,"eMS",@progbits,1121.Linfo_string0:122 .asciz "z" # string offset=0123.Linfo_string1:124 .asciz "int" # string offset=2125.Linfo_string2:126 .asciz "d" # string offset=6127.Linfo_string3:128 .asciz "_Z6helperii" # string offset=8129.Linfo_string4:130 .asciz "helper" # string offset=20131.Linfo_string5:132 .asciz "z_" # string offset=27133.Linfo_string6:134 .asciz "d_" # string offset=30135.Linfo_string7:136 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" # string offset=33137.Linfo_string8:138 .asciz "helper.cpp" # string offset=134139.Linfo_string9:140 .asciz "helper.dwo" # string offset=145141 .section .debug_str_offsets.dwo,"e",@progbits142 .long 0143 .long 2144 .long 6145 .long 8146 .long 20147 .long 27148 .long 30149 .long 33150 .long 134151 .long 145152 .section .debug_info.dwo,"e",@progbits153 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit154.Ldebug_info_dwo_start0:155 .short 4 # DWARF version number156 .long 0 # Offset Into Abbrev. Section157 .byte 8 # Address Size (in bytes)158 .byte 1 # Abbrev [1] 0xb:0x50 DW_TAG_compile_unit159 .byte 7 # DW_AT_producer160 .short 33 # DW_AT_language161 .byte 8 # DW_AT_name162 .byte 9 # DW_AT_GNU_dwo_name163 .quad -7229095317601456558 # DW_AT_GNU_dwo_id164 .byte 2 # Abbrev [2] 0x19:0xb DW_TAG_variable165 .byte 0 # DW_AT_name166 .long 36 # DW_AT_type167 # DW_AT_external168 .byte 1 # DW_AT_decl_file169 .byte 1 # DW_AT_decl_line170 .byte 2 # DW_AT_location171 .byte 251172 .byte 0173 .byte 3 # Abbrev [3] 0x24:0x4 DW_TAG_base_type174 .byte 1 # DW_AT_name175 .byte 5 # DW_AT_encoding176 .byte 4 # DW_AT_byte_size177 .byte 2 # Abbrev [2] 0x28:0xb DW_TAG_variable178 .byte 2 # DW_AT_name179 .long 36 # DW_AT_type180 # DW_AT_external181 .byte 1 # DW_AT_decl_file182 .byte 2 # DW_AT_decl_line183 .byte 2 # DW_AT_location184 .byte 251185 .byte 1186 .byte 4 # Abbrev [4] 0x33:0x27 DW_TAG_subprogram187 .byte 2 # DW_AT_low_pc188 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc189 .byte 1 # DW_AT_frame_base190 .byte 87191 # DW_AT_GNU_all_call_sites192 .byte 3 # DW_AT_linkage_name193 .byte 4 # DW_AT_name194 .byte 1 # DW_AT_decl_file195 .byte 3 # DW_AT_decl_line196 .long 36 # DW_AT_type197 # DW_AT_external198 .byte 5 # Abbrev [5] 0x43:0xc DW_TAG_formal_parameter199 .long .Ldebug_loc0-.debug_loc.dwo # DW_AT_location200 .byte 5 # DW_AT_name201 .byte 1 # DW_AT_decl_file202 .byte 3 # DW_AT_decl_line203 .long 36 # DW_AT_type204 .byte 6 # Abbrev [6] 0x4f:0xa DW_TAG_formal_parameter205 .byte 1 # DW_AT_location206 .byte 84207 .byte 6 # DW_AT_name208 .byte 1 # DW_AT_decl_file209 .byte 3 # DW_AT_decl_line210 .long 36 # DW_AT_type211 .byte 0 # End Of Children Mark212 .byte 0 # End Of Children Mark213.Ldebug_info_dwo_end0:214 .section .debug_abbrev.dwo,"e",@progbits215 .byte 1 # Abbreviation Code216 .byte 17 # DW_TAG_compile_unit217 .byte 1 # DW_CHILDREN_yes218 .byte 37 # DW_AT_producer219 .ascii "\202>" # DW_FORM_GNU_str_index220 .byte 19 # DW_AT_language221 .byte 5 # DW_FORM_data2222 .byte 3 # DW_AT_name223 .ascii "\202>" # DW_FORM_GNU_str_index224 .ascii "\260B" # DW_AT_GNU_dwo_name225 .ascii "\202>" # DW_FORM_GNU_str_index226 .ascii "\261B" # DW_AT_GNU_dwo_id227 .byte 7 # DW_FORM_data8228 .byte 0 # EOM(1)229 .byte 0 # EOM(2)230 .byte 2 # Abbreviation Code231 .byte 52 # DW_TAG_variable232 .byte 0 # DW_CHILDREN_no233 .byte 3 # DW_AT_name234 .ascii "\202>" # DW_FORM_GNU_str_index235 .byte 73 # DW_AT_type236 .byte 19 # DW_FORM_ref4237 .byte 63 # DW_AT_external238 .byte 25 # DW_FORM_flag_present239 .byte 58 # DW_AT_decl_file240 .byte 11 # DW_FORM_data1241 .byte 59 # DW_AT_decl_line242 .byte 11 # DW_FORM_data1243 .byte 2 # DW_AT_location244 .byte 24 # DW_FORM_exprloc245 .byte 0 # EOM(1)246 .byte 0 # EOM(2)247 .byte 3 # Abbreviation Code248 .byte 36 # DW_TAG_base_type249 .byte 0 # DW_CHILDREN_no250 .byte 3 # DW_AT_name251 .ascii "\202>" # DW_FORM_GNU_str_index252 .byte 62 # DW_AT_encoding253 .byte 11 # DW_FORM_data1254 .byte 11 # DW_AT_byte_size255 .byte 11 # DW_FORM_data1256 .byte 0 # EOM(1)257 .byte 0 # EOM(2)258 .byte 4 # Abbreviation Code259 .byte 46 # DW_TAG_subprogram260 .byte 1 # DW_CHILDREN_yes261 .byte 17 # DW_AT_low_pc262 .ascii "\201>" # DW_FORM_GNU_addr_index263 .byte 18 # DW_AT_high_pc264 .byte 6 # DW_FORM_data4265 .byte 64 # DW_AT_frame_base266 .byte 24 # DW_FORM_exprloc267 .ascii "\227B" # DW_AT_GNU_all_call_sites268 .byte 25 # DW_FORM_flag_present269 .byte 110 # DW_AT_linkage_name270 .ascii "\202>" # DW_FORM_GNU_str_index271 .byte 3 # DW_AT_name272 .ascii "\202>" # DW_FORM_GNU_str_index273 .byte 58 # DW_AT_decl_file274 .byte 11 # DW_FORM_data1275 .byte 59 # DW_AT_decl_line276 .byte 11 # DW_FORM_data1277 .byte 73 # DW_AT_type278 .byte 19 # DW_FORM_ref4279 .byte 63 # DW_AT_external280 .byte 25 # DW_FORM_flag_present281 .byte 0 # EOM(1)282 .byte 0 # EOM(2)283 .byte 5 # Abbreviation Code284 .byte 5 # DW_TAG_formal_parameter285 .byte 0 # DW_CHILDREN_no286 .byte 2 # DW_AT_location287 .byte 23 # DW_FORM_sec_offset288 .byte 3 # DW_AT_name289 .ascii "\202>" # DW_FORM_GNU_str_index290 .byte 58 # DW_AT_decl_file291 .byte 11 # DW_FORM_data1292 .byte 59 # DW_AT_decl_line293 .byte 11 # DW_FORM_data1294 .byte 73 # DW_AT_type295 .byte 19 # DW_FORM_ref4296 .byte 0 # EOM(1)297 .byte 0 # EOM(2)298 .byte 6 # Abbreviation Code299 .byte 5 # DW_TAG_formal_parameter300 .byte 0 # DW_CHILDREN_no301 .byte 2 # DW_AT_location302 .byte 24 # DW_FORM_exprloc303 .byte 3 # DW_AT_name304 .ascii "\202>" # DW_FORM_GNU_str_index305 .byte 58 # DW_AT_decl_file306 .byte 11 # DW_FORM_data1307 .byte 59 # DW_AT_decl_line308 .byte 11 # DW_FORM_data1309 .byte 73 # DW_AT_type310 .byte 19 # DW_FORM_ref4311 .byte 0 # EOM(1)312 .byte 0 # EOM(2)313 .byte 0 # EOM(3)314 .section .debug_addr,"",@progbits315.Laddr_table_base0:316 .quad z317 .quad d318 .quad .Lfunc_begin0319 .quad .Ltmp1320 .section .debug_gnu_pubnames,"",@progbits321 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info322.LpubNames_start0:323 .short 2 # DWARF Version324 .long .Lcu_begin0 # Offset of Compilation Unit Info325 .long 48 # Compilation Unit Length326 .long 25 # DIE offset327 .byte 32 # Attributes: VARIABLE, EXTERNAL328 .asciz "z" # External Name329 .long 40 # DIE offset330 .byte 32 # Attributes: VARIABLE, EXTERNAL331 .asciz "d" # External Name332 .long 51 # DIE offset333 .byte 48 # Attributes: FUNCTION, EXTERNAL334 .asciz "helper" # External Name335 .long 0 # End Mark336.LpubNames_end0:337 .section .debug_gnu_pubtypes,"",@progbits338 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info339.LpubTypes_start0:340 .short 2 # DWARF Version341 .long .Lcu_begin0 # Offset of Compilation Unit Info342 .long 48 # Compilation Unit Length343 .long 36 # DIE offset344 .byte 144 # Attributes: TYPE, STATIC345 .asciz "int" # External Name346 .long 0 # End Mark347.LpubTypes_end0:348 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)"349 .section ".note.GNU-stack","",@progbits350 .addrsig351 .section .debug_line,"",@progbits352.Lline_table_start0:353