1 # __attribute__((always_inline))
2 # int doStuff2(int val) {
6 # __attribute__((always_inline))
7 # int doStuff2Same(int val) {
13 # return doStuff2Same(val) + doStuff2(val);
15 # clang++ -ffunction-sections -g2 -gdwarf-5 -gsplit-dwarf
18 .section .text._Z8doStuff2i,"ax",@progbits
19 .globl _Z8doStuff2i # -- Begin function _Z8doStuff2i
21 .type _Z8doStuff2i,@function
22 _Z8doStuff2i
: # @_Z8doStuff2i
24 .file 0 "." "helper.cpp" md5 0xf7f6e64a58e78e3af8b3db5e5cae6221
25 .loc 0 2 0 # helper.cpp:2:0
29 .cfi_def_cfa_offset 16
32 .cfi_def_cfa_register %rbp
35 .loc 0 3 7 prologue_end # helper.cpp:3:7
37 .loc 0 4 10 # helper.cpp:4:10
39 .loc 0 4 14 is_stmt 0 # helper.cpp:4:14
41 .loc 0 4 3 epilogue_begin # helper.cpp:4:3
47 .size _Z8doStuff2i, .Lfunc_end0-_Z8doStuff2i
50 .section .text._Z12doStuff2Samei,"ax",@progbits
51 .globl _Z12doStuff2Samei # -- Begin function _Z12doStuff2Samei
53 .type _Z12doStuff2Samei,@function
54 _Z12doStuff2Samei
: # @_Z12doStuff2Samei
56 .loc 0 7 0 is_stmt 1 # helper.cpp:7:0
60 .cfi_def_cfa_offset 16
63 .cfi_def_cfa_register %rbp
66 .loc 0 8 7 prologue_end # helper.cpp:8:7
68 .loc 0 9 12 # helper.cpp:9:12
70 .loc 0 9 16 is_stmt 0 # helper.cpp:9:16
72 .loc 0 9 5 epilogue_begin # helper.cpp:9:5
78 .size _Z12doStuff2Samei, .Lfunc_end1-_Z12doStuff2Samei
81 .section .text._Z3fooi,"ax",@progbits
82 .globl _Z3fooi # -- Begin function _Z3fooi
84 .type _Z3fooi,@function
87 .loc 0 12 0 is_stmt 1 # helper.cpp:12:0
91 .cfi_def_cfa_offset 16
94 .cfi_def_cfa_register %rbp
97 .loc 0 13 23 prologue_end # helper.cpp:13:23
101 .loc 0 8 7 # helper.cpp:8:7
103 .loc 0 9 12 # helper.cpp:9:12
105 .loc 0 9 16 is_stmt 0 # helper.cpp:9:16
108 .loc 0 13 39 is_stmt 1 # helper.cpp:13:39
112 .loc 0 3 7 # helper.cpp:3:7
114 .loc 0 4 10 # helper.cpp:4:10
116 .loc 0 4 14 is_stmt 0 # helper.cpp:4:14
119 .loc 0 13 28 is_stmt 1 # helper.cpp:13:28
121 .loc 0 13 3 epilogue_begin is_stmt 0 # helper.cpp:13:3
127 .size _Z3fooi, .Lfunc_end2-_Z3fooi
130 .section .debug_abbrev,"",@progbits
131 .byte 1 # Abbreviation Code
132 .byte 74 # DW_TAG_skeleton_unit
133 .byte 0 # DW_CHILDREN_no
134 .byte 16 # DW_AT_stmt_list
135 .byte 23 # DW_FORM_sec_offset
136 .byte 114 # DW_AT_str_offsets_base
137 .byte 23 # DW_FORM_sec_offset
138 .byte 27 # DW_AT_comp_dir
139 .byte 37 # DW_FORM_strx1
140 .ascii "\264B" # DW_AT_GNU_pubnames
141 .byte 25 # DW_FORM_flag_present
142 .byte 118 # DW_AT_dwo_name
143 .byte 37 # DW_FORM_strx1
144 .byte 17 # DW_AT_low_pc
145 .byte 1 # DW_FORM_addr
146 .byte 85 # DW_AT_ranges
147 .byte 35 # DW_FORM_rnglistx
148 .byte 115 # DW_AT_addr_base
149 .byte 23 # DW_FORM_sec_offset
150 .byte 116 # DW_AT_rnglists_base
151 .byte 23 # DW_FORM_sec_offset
155 .section .debug_info,"",@progbits
157 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
159 .short 5 # DWARF version number
160 .byte 4 # DWARF Unit Type
161 .byte 8 # Address Size (in bytes)
162 .long .debug_abbrev # Offset Into Abbrev. Section
163 .quad -7414121603437528769
164 .byte 1 # Abbrev [1] 0x14:0x1c DW_TAG_skeleton_unit
165 .long .Lline_table_start0 # DW_AT_stmt_list
166 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
167 .byte 0 # DW_AT_comp_dir
169 .byte 1 # DW_AT_dwo_name
170 .quad 0 # DW_AT_low_pc
171 .byte 0 # DW_AT_ranges
172 .long .Laddr_table_base0 # DW_AT_addr_base
173 .long .Lrnglists_table_base0 # DW_AT_rnglists_base
175 .section .debug_rnglists,"",@progbits
176 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
177 .Ldebug_list_header_start0:
179 .byte 8 # Address size
180 .byte 0 # Segment selector size
181 .long 1 # Offset entry count
182 .Lrnglists_table_base0:
183 .long .Ldebug_ranges2-.Lrnglists_table_base0
185 .byte 3 # DW_RLE_startx_length
186 .byte 0 # start index
187 .uleb128 .Lfunc_end0-.Lfunc_begin0 # length
188 .byte 3 # DW_RLE_startx_length
189 .byte 1 # start index
190 .uleb128 .Lfunc_end1-.Lfunc_begin1 # length
191 .byte 3 # DW_RLE_startx_length
192 .byte 2 # start index
193 .uleb128 .Lfunc_end2-.Lfunc_begin2 # length
194 .byte 0 # DW_RLE_end_of_list
195 .Ldebug_list_header_end0:
196 .section .debug_str_offsets,"",@progbits
197 .long 12 # Length of String Offsets Set
201 .section .debug_str,"MS",@progbits,1
203 .asciz "." # string offset=0
205 .asciz "helper.dwo" # string offset=45
206 .section .debug_str_offsets,"",@progbits
209 .section .debug_str_offsets.dwo,"e",@progbits
210 .long 48 # Length of String Offsets Set
213 .section .debug_str.dwo,"eMS",@progbits,1
215 .asciz "_Z12doStuff2Samei" # string offset=0
217 .asciz "doStuff2Same" # string offset=18
219 .asciz "int" # string offset=31
221 .asciz "val" # string offset=35
223 .asciz "foo" # string offset=39
225 .asciz "_Z8doStuff2i" # string offset=43
227 .asciz "doStuff2" # string offset=56
229 .asciz "_Z3fooi" # string offset=65
231 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 63dbe7e808d07bdf25bad85301980bc323b0cd64)" # string offset=73
233 .asciz "helper.cpp" # string offset=174
235 .asciz "helper.dwo" # string offset=185
236 .section .debug_str_offsets.dwo,"e",@progbits
248 .section .debug_info.dwo,"e",@progbits
249 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
250 .Ldebug_info_dwo_start0:
251 .short 5 # DWARF version number
252 .byte 5 # DWARF Unit Type
253 .byte 8 # Address Size (in bytes)
254 .long 0 # Offset Into Abbrev. Section
255 .quad -7414121603437528769
256 .byte 1 # Abbrev [1] 0x14:0xc9 DW_TAG_compile_unit
257 .byte 8 # DW_AT_producer
258 .short 33 # DW_AT_language
260 .byte 10 # DW_AT_dwo_name
261 .byte 2 # Abbrev [2] 0x1a:0x1d DW_TAG_subprogram
262 .byte 0 # DW_AT_low_pc
263 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
264 .byte 1 # DW_AT_frame_base
266 .long 114 # DW_AT_abstract_origin
267 .byte 3 # Abbrev [3] 0x26:0x8 DW_TAG_formal_parameter
268 .byte 2 # DW_AT_location
271 .long 123 # DW_AT_abstract_origin
272 .byte 4 # Abbrev [4] 0x2e:0x8 DW_TAG_variable
273 .byte 2 # DW_AT_location
276 .long 131 # DW_AT_abstract_origin
277 .byte 0 # End Of Children Mark
278 .byte 2 # Abbrev [2] 0x37:0x1d DW_TAG_subprogram
279 .byte 1 # DW_AT_low_pc
280 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
281 .byte 1 # DW_AT_frame_base
283 .long 84 # DW_AT_abstract_origin
284 .byte 3 # Abbrev [3] 0x43:0x8 DW_TAG_formal_parameter
285 .byte 2 # DW_AT_location
288 .long 93 # DW_AT_abstract_origin
289 .byte 4 # Abbrev [4] 0x4b:0x8 DW_TAG_variable
290 .byte 2 # DW_AT_location
293 .long 101 # DW_AT_abstract_origin
294 .byte 0 # End Of Children Mark
295 .byte 5 # Abbrev [5] 0x54:0x1a DW_TAG_subprogram
296 .byte 0 # DW_AT_linkage_name
298 .byte 0 # DW_AT_decl_file
299 .byte 7 # DW_AT_decl_line
300 .long 110 # DW_AT_type
303 .byte 6 # Abbrev [6] 0x5d:0x8 DW_TAG_formal_parameter
305 .byte 0 # DW_AT_decl_file
306 .byte 7 # DW_AT_decl_line
307 .long 110 # DW_AT_type
308 .byte 7 # Abbrev [7] 0x65:0x8 DW_TAG_variable
310 .byte 0 # DW_AT_decl_file
311 .byte 8 # DW_AT_decl_line
312 .long 110 # DW_AT_type
313 .byte 0 # End Of Children Mark
314 .byte 8 # Abbrev [8] 0x6e:0x4 DW_TAG_base_type
316 .byte 5 # DW_AT_encoding
317 .byte 4 # DW_AT_byte_size
318 .byte 5 # Abbrev [5] 0x72:0x1a DW_TAG_subprogram
319 .byte 5 # DW_AT_linkage_name
321 .byte 0 # DW_AT_decl_file
322 .byte 2 # DW_AT_decl_line
323 .long 110 # DW_AT_type
326 .byte 6 # Abbrev [6] 0x7b:0x8 DW_TAG_formal_parameter
328 .byte 0 # DW_AT_decl_file
329 .byte 2 # DW_AT_decl_line
330 .long 110 # DW_AT_type
331 .byte 7 # Abbrev [7] 0x83:0x8 DW_TAG_variable
333 .byte 0 # DW_AT_decl_file
334 .byte 3 # DW_AT_decl_line
335 .long 110 # DW_AT_type
336 .byte 0 # End Of Children Mark
337 .byte 9 # Abbrev [9] 0x8c:0x50 DW_TAG_subprogram
338 .byte 2 # DW_AT_low_pc
339 .long .Lfunc_end2-.Lfunc_begin2 # DW_AT_high_pc
340 .byte 1 # DW_AT_frame_base
342 .byte 7 # DW_AT_linkage_name
344 .byte 0 # DW_AT_decl_file
345 .byte 12 # DW_AT_decl_line
346 .long 110 # DW_AT_type
348 .byte 10 # Abbrev [10] 0x9c:0xb DW_TAG_formal_parameter
349 .byte 2 # DW_AT_location
353 .byte 0 # DW_AT_decl_file
354 .byte 12 # DW_AT_decl_line
355 .long 110 # DW_AT_type
356 .byte 11 # Abbrev [11] 0xa7:0x1a DW_TAG_inlined_subroutine
357 .long 84 # DW_AT_abstract_origin
358 .byte 0 # DW_AT_ranges
359 .byte 0 # DW_AT_call_file
360 .byte 13 # DW_AT_call_line
361 .byte 10 # DW_AT_call_column
362 .byte 3 # Abbrev [3] 0xb0:0x8 DW_TAG_formal_parameter
363 .byte 2 # DW_AT_location
366 .long 93 # DW_AT_abstract_origin
367 .byte 4 # Abbrev [4] 0xb8:0x8 DW_TAG_variable
368 .byte 2 # DW_AT_location
371 .long 101 # DW_AT_abstract_origin
372 .byte 0 # End Of Children Mark
373 .byte 11 # Abbrev [11] 0xc1:0x1a DW_TAG_inlined_subroutine
374 .long 114 # DW_AT_abstract_origin
375 .byte 1 # DW_AT_ranges
376 .byte 0 # DW_AT_call_file
377 .byte 13 # DW_AT_call_line
378 .byte 30 # DW_AT_call_column
379 .byte 3 # Abbrev [3] 0xca:0x8 DW_TAG_formal_parameter
380 .byte 2 # DW_AT_location
383 .long 123 # DW_AT_abstract_origin
384 .byte 4 # Abbrev [4] 0xd2:0x8 DW_TAG_variable
385 .byte 2 # DW_AT_location
388 .long 131 # DW_AT_abstract_origin
389 .byte 0 # End Of Children Mark
390 .byte 0 # End Of Children Mark
391 .byte 0 # End Of Children Mark
392 .Ldebug_info_dwo_end0:
393 .section .debug_abbrev.dwo,"e",@progbits
394 .byte 1 # Abbreviation Code
395 .byte 17 # DW_TAG_compile_unit
396 .byte 1 # DW_CHILDREN_yes
397 .byte 37 # DW_AT_producer
398 .byte 37 # DW_FORM_strx1
399 .byte 19 # DW_AT_language
400 .byte 5 # DW_FORM_data2
402 .byte 37 # DW_FORM_strx1
403 .byte 118 # DW_AT_dwo_name
404 .byte 37 # DW_FORM_strx1
407 .byte 2 # Abbreviation Code
408 .byte 46 # DW_TAG_subprogram
409 .byte 1 # DW_CHILDREN_yes
410 .byte 17 # DW_AT_low_pc
411 .byte 27 # DW_FORM_addrx
412 .byte 18 # DW_AT_high_pc
413 .byte 6 # DW_FORM_data4
414 .byte 64 # DW_AT_frame_base
415 .byte 24 # DW_FORM_exprloc
416 .byte 49 # DW_AT_abstract_origin
417 .byte 19 # DW_FORM_ref4
420 .byte 3 # Abbreviation Code
421 .byte 5 # DW_TAG_formal_parameter
422 .byte 0 # DW_CHILDREN_no
423 .byte 2 # DW_AT_location
424 .byte 24 # DW_FORM_exprloc
425 .byte 49 # DW_AT_abstract_origin
426 .byte 19 # DW_FORM_ref4
429 .byte 4 # Abbreviation Code
430 .byte 52 # DW_TAG_variable
431 .byte 0 # DW_CHILDREN_no
432 .byte 2 # DW_AT_location
433 .byte 24 # DW_FORM_exprloc
434 .byte 49 # DW_AT_abstract_origin
435 .byte 19 # DW_FORM_ref4
438 .byte 5 # Abbreviation Code
439 .byte 46 # DW_TAG_subprogram
440 .byte 1 # DW_CHILDREN_yes
441 .byte 110 # DW_AT_linkage_name
442 .byte 37 # DW_FORM_strx1
444 .byte 37 # DW_FORM_strx1
445 .byte 58 # DW_AT_decl_file
446 .byte 11 # DW_FORM_data1
447 .byte 59 # DW_AT_decl_line
448 .byte 11 # DW_FORM_data1
449 .byte 73 # DW_AT_type
450 .byte 19 # DW_FORM_ref4
451 .byte 63 # DW_AT_external
452 .byte 25 # DW_FORM_flag_present
453 .byte 32 # DW_AT_inline
454 .byte 33 # DW_FORM_implicit_const
458 .byte 6 # Abbreviation Code
459 .byte 5 # DW_TAG_formal_parameter
460 .byte 0 # DW_CHILDREN_no
462 .byte 37 # DW_FORM_strx1
463 .byte 58 # DW_AT_decl_file
464 .byte 11 # DW_FORM_data1
465 .byte 59 # DW_AT_decl_line
466 .byte 11 # DW_FORM_data1
467 .byte 73 # DW_AT_type
468 .byte 19 # DW_FORM_ref4
471 .byte 7 # Abbreviation Code
472 .byte 52 # DW_TAG_variable
473 .byte 0 # DW_CHILDREN_no
475 .byte 37 # DW_FORM_strx1
476 .byte 58 # DW_AT_decl_file
477 .byte 11 # DW_FORM_data1
478 .byte 59 # DW_AT_decl_line
479 .byte 11 # DW_FORM_data1
480 .byte 73 # DW_AT_type
481 .byte 19 # DW_FORM_ref4
484 .byte 8 # Abbreviation Code
485 .byte 36 # DW_TAG_base_type
486 .byte 0 # DW_CHILDREN_no
488 .byte 37 # DW_FORM_strx1
489 .byte 62 # DW_AT_encoding
490 .byte 11 # DW_FORM_data1
491 .byte 11 # DW_AT_byte_size
492 .byte 11 # DW_FORM_data1
495 .byte 9 # Abbreviation Code
496 .byte 46 # DW_TAG_subprogram
497 .byte 1 # DW_CHILDREN_yes
498 .byte 17 # DW_AT_low_pc
499 .byte 27 # DW_FORM_addrx
500 .byte 18 # DW_AT_high_pc
501 .byte 6 # DW_FORM_data4
502 .byte 64 # DW_AT_frame_base
503 .byte 24 # DW_FORM_exprloc
504 .byte 110 # DW_AT_linkage_name
505 .byte 37 # DW_FORM_strx1
507 .byte 37 # DW_FORM_strx1
508 .byte 58 # DW_AT_decl_file
509 .byte 11 # DW_FORM_data1
510 .byte 59 # DW_AT_decl_line
511 .byte 11 # DW_FORM_data1
512 .byte 73 # DW_AT_type
513 .byte 19 # DW_FORM_ref4
514 .byte 63 # DW_AT_external
515 .byte 25 # DW_FORM_flag_present
518 .byte 10 # Abbreviation Code
519 .byte 5 # DW_TAG_formal_parameter
520 .byte 0 # DW_CHILDREN_no
521 .byte 2 # DW_AT_location
522 .byte 24 # DW_FORM_exprloc
524 .byte 37 # DW_FORM_strx1
525 .byte 58 # DW_AT_decl_file
526 .byte 11 # DW_FORM_data1
527 .byte 59 # DW_AT_decl_line
528 .byte 11 # DW_FORM_data1
529 .byte 73 # DW_AT_type
530 .byte 19 # DW_FORM_ref4
533 .byte 11 # Abbreviation Code
534 .byte 29 # DW_TAG_inlined_subroutine
535 .byte 1 # DW_CHILDREN_yes
536 .byte 49 # DW_AT_abstract_origin
537 .byte 19 # DW_FORM_ref4
538 .byte 85 # DW_AT_ranges
539 .byte 35 # DW_FORM_rnglistx
540 .byte 88 # DW_AT_call_file
541 .byte 11 # DW_FORM_data1
542 .byte 89 # DW_AT_call_line
543 .byte 11 # DW_FORM_data1
544 .byte 87 # DW_AT_call_column
545 .byte 11 # DW_FORM_data1
549 .section .debug_rnglists.dwo,"e",@progbits
550 .long .Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
551 .Ldebug_list_header_start1:
553 .byte 8 # Address size
554 .byte 0 # Segment selector size
555 .long 2 # Offset entry count
556 .Lrnglists_dwo_table_base0:
557 .long .Ldebug_ranges0-.Lrnglists_dwo_table_base0
558 .long .Ldebug_ranges1-.Lrnglists_dwo_table_base0
560 .byte 1 # DW_RLE_base_addressx
561 .byte 2 # base address index
562 .byte 4 # DW_RLE_offset_pair
563 .uleb128 .Ltmp5-.Lfunc_begin2 # starting offset
564 .uleb128 .Ltmp6-.Lfunc_begin2 # ending offset
565 .byte 0 # DW_RLE_end_of_list
567 .byte 1 # DW_RLE_base_addressx
568 .byte 2 # base address index
569 .byte 4 # DW_RLE_offset_pair
570 .uleb128 .Ltmp7-.Lfunc_begin2 # starting offset
571 .uleb128 .Ltmp8-.Lfunc_begin2 # ending offset
572 .byte 0 # DW_RLE_end_of_list
573 .Ldebug_list_header_end1:
574 .section .debug_addr,"",@progbits
575 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
577 .short 5 # DWARF version number
578 .byte 8 # Address size
579 .byte 0 # Segment selector size
585 .section .debug_gnu_pubnames,"",@progbits
586 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
588 .short 2 # DWARF Version
589 .long .Lcu_begin0 # Offset of Compilation Unit Info
590 .long 48 # Compilation Unit Length
591 .long 84 # DIE offset
592 .byte 48 # Attributes: FUNCTION, EXTERNAL
593 .asciz "doStuff2Same" # External Name
594 .long 114 # DIE offset
595 .byte 48 # Attributes: FUNCTION, EXTERNAL
596 .asciz "doStuff2" # External Name
597 .long 140 # DIE offset
598 .byte 48 # Attributes: FUNCTION, EXTERNAL
599 .asciz "foo" # External Name
602 .section .debug_gnu_pubtypes,"",@progbits
603 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
605 .short 2 # DWARF Version
606 .long .Lcu_begin0 # Offset of Compilation Unit Info
607 .long 48 # Compilation Unit Length
608 .long 110 # DIE offset
609 .byte 144 # Attributes: TYPE, STATIC
610 .asciz "int" # External Name
613 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 63dbe7e808d07bdf25bad85301980bc323b0cd64)"
614 .section ".note.GNU-stack","",@progbits
616 .section .debug_line,"",@progbits