1 # __attribute__((always_inline))
2 # int doStuff(int val) {
7 # __attribute__((always_inline))
8 # int doStuffSame(int val) {
15 # int main(int argc, const char** argv) {
16 # return doStuff(argc) + doStuffSame(argc);
18 # Manually modified to set range to 0.
22 .section .text._Z7doStuffi,"ax",@progbits
23 .globl _Z7doStuffi # -- Begin function _Z7doStuffi
25 .type _Z7doStuffi,@function
26 _Z7doStuffi
: # @_Z7doStuffi
28 .file 0 "." "main.cpp" md5 0x5391f0751c21da59df94bf9d3771518e
29 .loc 0 2 0 # main.cpp:2:0
33 .cfi_def_cfa_offset 16
36 .cfi_def_cfa_register %rbp
39 .loc 0 3 7 prologue_end # main.cpp:3:7
42 .loc 0 3 7 is_stmt 0 # main.cpp:3:7
46 .loc 0 4 5 is_stmt 1 # main.cpp:4:5
52 .loc 0 5 10 # main.cpp:5:10
54 .loc 0 5 3 epilogue_begin is_stmt 0 # main.cpp:5:3
60 .size _Z7doStuffi, .Lfunc_end0-_Z7doStuffi
63 .section .text._Z11doStuffSamei,"ax",@progbits
64 .globl _Z11doStuffSamei # -- Begin function _Z11doStuffSamei
66 .type _Z11doStuffSamei,@function
67 _Z11doStuffSamei
: # @_Z11doStuffSamei
69 .loc 0 8 0 is_stmt 1 # main.cpp:8:0
73 .cfi_def_cfa_offset 16
76 .cfi_def_cfa_register %rbp
79 .loc 0 9 11 prologue_end # main.cpp:9:11
82 .loc 0 9 11 is_stmt 0 # main.cpp:9:11
86 .loc 0 10 13 is_stmt 1 # main.cpp:10:13
92 .loc 0 11 16 # main.cpp:11:16
94 .loc 0 11 9 epilogue_begin is_stmt 0 # main.cpp:11:9
100 .size _Z11doStuffSamei, .Lfunc_end1-_Z11doStuffSamei
103 .section .text.main,"ax",@progbits
104 .globl main # -- Begin function main
109 .loc 0 15 0 is_stmt 1 # main.cpp:15:0
113 .cfi_def_cfa_offset 16
114 .cfi_offset %rbp, -16
116 .cfi_def_cfa_register %rbp
121 .loc 0 16 21 prologue_end # main.cpp:16:21
125 .loc 0 3 7 # main.cpp:3:7
128 .loc 0 3 7 is_stmt 0 # main.cpp:3:7
130 # %bb.1: # %if.then.i
132 .loc 0 4 5 is_stmt 1 # main.cpp:4:5
137 .LBB2_2: # %_Z7doStuffi.exit
138 .loc 0 5 10 # main.cpp:5:10
140 movl
%eax
, -28(%rbp
) # 4-byte Spill
142 .loc 0 16 41 # main.cpp:16:41
146 .loc 0 9 11 # main.cpp:9:11
149 .loc 0 9 11 is_stmt 0 # main.cpp:9:11
151 # %bb.3: # %if.then.i4
153 .loc 0 10 13 is_stmt 1 # main.cpp:10:13
158 .LBB2_4: # %_Z11doStuffSamei.exit
159 .loc 0 0 13 is_stmt 0 # main.cpp:0:13
160 movl
-28(%rbp
), %eax
# 4-byte Reload
161 .loc 0 16 27 is_stmt 1 # main.cpp:16:27
163 .loc 0 16 5 epilogue_begin is_stmt 0 # main.cpp:16:5
169 .size main, .Lfunc_end2-main
172 .section .debug_abbrev,"",@progbits
173 .byte 1 # Abbreviation Code
174 .byte 74 # DW_TAG_skeleton_unit
175 .byte 0 # DW_CHILDREN_no
176 .byte 16 # DW_AT_stmt_list
177 .byte 23 # DW_FORM_sec_offset
178 .byte 114 # DW_AT_str_offsets_base
179 .byte 23 # DW_FORM_sec_offset
180 .byte 27 # DW_AT_comp_dir
181 .byte 37 # DW_FORM_strx1
182 .ascii "\264B" # DW_AT_GNU_pubnames
183 .byte 25 # DW_FORM_flag_present
184 .byte 118 # DW_AT_dwo_name
185 .byte 37 # DW_FORM_strx1
186 .byte 17 # DW_AT_low_pc
187 .byte 1 # DW_FORM_addr
188 .byte 85 # DW_AT_ranges
189 .byte 35 # DW_FORM_rnglistx
190 .byte 115 # DW_AT_addr_base
191 .byte 23 # DW_FORM_sec_offset
192 .byte 116 # DW_AT_rnglists_base
193 .byte 23 # DW_FORM_sec_offset
197 .section .debug_info,"",@progbits
199 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
201 .short 5 # DWARF version number
202 .byte 4 # DWARF Unit Type
203 .byte 8 # Address Size (in bytes)
204 .long .debug_abbrev # Offset Into Abbrev. Section
205 .quad 1388808602086005033
206 .byte 1 # Abbrev [1] 0x14:0x1c DW_TAG_skeleton_unit
207 .long .Lline_table_start0 # DW_AT_stmt_list
208 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
209 .byte 0 # DW_AT_comp_dir
211 .byte 1 # DW_AT_dwo_name
212 .quad 0 # DW_AT_low_pc
213 .byte 0 # DW_AT_ranges
214 .long .Laddr_table_base0 # DW_AT_addr_base
215 .long .Lrnglists_table_base0 # DW_AT_rnglists_base
217 .section .debug_rnglists,"",@progbits
218 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
219 .Ldebug_list_header_start0:
221 .byte 8 # Address size
222 .byte 0 # Segment selector size
223 .long 1 # Offset entry count
224 .Lrnglists_table_base0:
225 .long .Ldebug_ranges2-.Lrnglists_table_base0
227 .byte 3 # DW_RLE_startx_length
228 .byte 0 # start index
229 .uleb128 .Lfunc_end0-.Lfunc_begin0 # length
230 .byte 3 # DW_RLE_startx_length
231 .byte 1 # start index
232 .uleb128 .Lfunc_end1-.Lfunc_begin1 # length
233 .byte 3 # DW_RLE_startx_length
234 .byte 2 # start index
235 .uleb128 .Lfunc_end2-.Lfunc_begin2 # length
236 .byte 0 # DW_RLE_end_of_list
237 .Ldebug_list_header_end0:
238 .section .debug_str_offsets,"",@progbits
239 .long 12 # Length of String Offsets Set
243 .section .debug_str,"MS",@progbits,1
245 .asciz "." # string offset=0
247 .asciz "main.dwo" # string offset=38
248 .section .debug_str_offsets,"",@progbits
251 .section .debug_str_offsets.dwo,"e",@progbits
252 .long 56 # Length of String Offsets Set
255 .section .debug_str.dwo,"eMS",@progbits,1
257 .asciz "_Z7doStuffi" # string offset=0
259 .asciz "doStuff" # string offset=12
261 .asciz "int" # string offset=20
263 .asciz "val" # string offset=24
265 .asciz "_Z11doStuffSamei" # string offset=28
267 .asciz "doStuffSame" # string offset=45
269 .asciz "main" # string offset=57
271 .asciz "argc" # string offset=62
273 .asciz "argv" # string offset=67
275 .asciz "char" # string offset=72
277 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 63dbe7e808d07bdf25bad85301980bc323b0cd64)" # string offset=77
279 .asciz "main.cpp" # string offset=178
281 .asciz "main.dwo" # string offset=187
282 .section .debug_str_offsets.dwo,"e",@progbits
296 .section .debug_info.dwo,"e",@progbits
297 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
298 .Ldebug_info_dwo_start0:
299 .short 5 # DWARF version number
300 .byte 5 # DWARF Unit Type
301 .byte 8 # Address Size (in bytes)
302 .long 0 # Offset Into Abbrev. Section
303 .quad 1388808602086005033
304 .byte 1 # Abbrev [1] 0x14:0xb6 DW_TAG_compile_unit
305 .byte 10 # DW_AT_producer
306 .short 33 # DW_AT_language
307 .byte 11 # DW_AT_name
308 .byte 12 # DW_AT_dwo_name
309 .byte 2 # Abbrev [2] 0x1a:0x15 DW_TAG_subprogram
310 .byte 0 # DW_AT_low_pc
311 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
312 .byte 1 # DW_AT_frame_base
314 .long 68 # DW_AT_abstract_origin
315 .byte 3 # Abbrev [3] 0x26:0x8 DW_TAG_formal_parameter
316 .byte 2 # DW_AT_location
319 .long 77 # DW_AT_abstract_origin
320 .byte 0 # End Of Children Mark
321 .byte 2 # Abbrev [2] 0x2f:0x15 DW_TAG_subprogram
322 .byte 1 # DW_AT_low_pc
323 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
324 .byte 1 # DW_AT_frame_base
326 .long 90 # DW_AT_abstract_origin
327 .byte 3 # Abbrev [3] 0x3b:0x8 DW_TAG_formal_parameter
328 .byte 2 # DW_AT_location
331 .long 99 # DW_AT_abstract_origin
332 .byte 0 # End Of Children Mark
333 .byte 4 # Abbrev [4] 0x44:0x12 DW_TAG_subprogram
334 .byte 0 # DW_AT_linkage_name
336 .byte 0 # DW_AT_decl_file
337 .byte 2 # DW_AT_decl_line
338 .long 86 # DW_AT_type
341 .byte 5 # Abbrev [5] 0x4d:0x8 DW_TAG_formal_parameter
343 .byte 0 # DW_AT_decl_file
344 .byte 2 # DW_AT_decl_line
345 .long 86 # DW_AT_type
346 .byte 0 # End Of Children Mark
347 .byte 6 # Abbrev [6] 0x56:0x4 DW_TAG_base_type
349 .byte 5 # DW_AT_encoding
350 .byte 4 # DW_AT_byte_size
351 .byte 4 # Abbrev [4] 0x5a:0x12 DW_TAG_subprogram
352 .byte 4 # DW_AT_linkage_name
354 .byte 0 # DW_AT_decl_file
355 .byte 8 # DW_AT_decl_line
356 .long 86 # DW_AT_type
359 .byte 5 # Abbrev [5] 0x63:0x8 DW_TAG_formal_parameter
361 .byte 0 # DW_AT_decl_file
362 .byte 8 # DW_AT_decl_line
363 .long 86 # DW_AT_type
364 .byte 0 # End Of Children Mark
365 .byte 7 # Abbrev [7] 0x6c:0x4a DW_TAG_subprogram
366 .byte 2 # DW_AT_low_pc
367 .long .Lfunc_end2-.Lfunc_begin2 # DW_AT_high_pc
368 .byte 1 # DW_AT_frame_base
371 .byte 0 # DW_AT_decl_file
372 .byte 15 # DW_AT_decl_line
373 .long 86 # DW_AT_type
375 .byte 8 # Abbrev [8] 0x7b:0xb DW_TAG_formal_parameter
376 .byte 2 # DW_AT_location
380 .byte 0 # DW_AT_decl_file
381 .byte 15 # DW_AT_decl_line
382 .long 86 # DW_AT_type
383 .byte 8 # Abbrev [8] 0x86:0xb DW_TAG_formal_parameter
384 .byte 2 # DW_AT_location
388 .byte 0 # DW_AT_decl_file
389 .byte 15 # DW_AT_decl_line
390 .long 182 # DW_AT_type
391 .byte 9 # Abbrev [9] 0x91:0x12 DW_TAG_inlined_subroutine
392 .long 68 # DW_AT_abstract_origin
393 .byte 0 # DW_AT_ranges
394 .byte 0 # DW_AT_call_file
395 .byte 16 # DW_AT_call_line
396 .byte 13 # DW_AT_call_column
397 .byte 3 # Abbrev [3] 0x9a:0x8 DW_TAG_formal_parameter
398 .byte 2 # DW_AT_location
401 .long 77 # DW_AT_abstract_origin
402 .byte 0 # End Of Children Mark
403 .byte 9 # Abbrev [9] 0xa3:0x12 DW_TAG_inlined_subroutine
404 .long 90 # DW_AT_abstract_origin
405 .byte 1 # DW_AT_ranges
406 .byte 0 # DW_AT_call_file
407 .byte 16 # DW_AT_call_line
408 .byte 29 # DW_AT_call_column
409 .byte 3 # Abbrev [3] 0xac:0x8 DW_TAG_formal_parameter
410 .byte 2 # DW_AT_location
413 .long 99 # DW_AT_abstract_origin
414 .byte 0 # End Of Children Mark
415 .byte 0 # End Of Children Mark
416 .byte 10 # Abbrev [10] 0xb6:0x5 DW_TAG_pointer_type
417 .long 187 # DW_AT_type
418 .byte 10 # Abbrev [10] 0xbb:0x5 DW_TAG_pointer_type
419 .long 192 # DW_AT_type
420 .byte 11 # Abbrev [11] 0xc0:0x5 DW_TAG_const_type
421 .long 197 # DW_AT_type
422 .byte 6 # Abbrev [6] 0xc5:0x4 DW_TAG_base_type
424 .byte 6 # DW_AT_encoding
425 .byte 1 # DW_AT_byte_size
426 .byte 0 # End Of Children Mark
427 .Ldebug_info_dwo_end0:
428 .section .debug_abbrev.dwo,"e",@progbits
429 .byte 1 # Abbreviation Code
430 .byte 17 # DW_TAG_compile_unit
431 .byte 1 # DW_CHILDREN_yes
432 .byte 37 # DW_AT_producer
433 .byte 37 # DW_FORM_strx1
434 .byte 19 # DW_AT_language
435 .byte 5 # DW_FORM_data2
437 .byte 37 # DW_FORM_strx1
438 .byte 118 # DW_AT_dwo_name
439 .byte 37 # DW_FORM_strx1
442 .byte 2 # Abbreviation Code
443 .byte 46 # DW_TAG_subprogram
444 .byte 1 # DW_CHILDREN_yes
445 .byte 17 # DW_AT_low_pc
446 .byte 27 # DW_FORM_addrx
447 .byte 18 # DW_AT_high_pc
448 .byte 6 # DW_FORM_data4
449 .byte 64 # DW_AT_frame_base
450 .byte 24 # DW_FORM_exprloc
451 .byte 49 # DW_AT_abstract_origin
452 .byte 19 # DW_FORM_ref4
455 .byte 3 # Abbreviation Code
456 .byte 5 # DW_TAG_formal_parameter
457 .byte 0 # DW_CHILDREN_no
458 .byte 2 # DW_AT_location
459 .byte 24 # DW_FORM_exprloc
460 .byte 49 # DW_AT_abstract_origin
461 .byte 19 # DW_FORM_ref4
464 .byte 4 # Abbreviation Code
465 .byte 46 # DW_TAG_subprogram
466 .byte 1 # DW_CHILDREN_yes
467 .byte 110 # DW_AT_linkage_name
468 .byte 37 # DW_FORM_strx1
470 .byte 37 # DW_FORM_strx1
471 .byte 58 # DW_AT_decl_file
472 .byte 11 # DW_FORM_data1
473 .byte 59 # DW_AT_decl_line
474 .byte 11 # DW_FORM_data1
475 .byte 73 # DW_AT_type
476 .byte 19 # DW_FORM_ref4
477 .byte 63 # DW_AT_external
478 .byte 25 # DW_FORM_flag_present
479 .byte 32 # DW_AT_inline
480 .byte 33 # DW_FORM_implicit_const
484 .byte 5 # Abbreviation Code
485 .byte 5 # DW_TAG_formal_parameter
486 .byte 0 # DW_CHILDREN_no
488 .byte 37 # DW_FORM_strx1
489 .byte 58 # DW_AT_decl_file
490 .byte 11 # DW_FORM_data1
491 .byte 59 # DW_AT_decl_line
492 .byte 11 # DW_FORM_data1
493 .byte 73 # DW_AT_type
494 .byte 19 # DW_FORM_ref4
497 .byte 6 # Abbreviation Code
498 .byte 36 # DW_TAG_base_type
499 .byte 0 # DW_CHILDREN_no
501 .byte 37 # DW_FORM_strx1
502 .byte 62 # DW_AT_encoding
503 .byte 11 # DW_FORM_data1
504 .byte 11 # DW_AT_byte_size
505 .byte 11 # DW_FORM_data1
508 .byte 7 # Abbreviation Code
509 .byte 46 # DW_TAG_subprogram
510 .byte 1 # DW_CHILDREN_yes
511 .byte 17 # DW_AT_low_pc
512 .byte 27 # DW_FORM_addrx
513 .byte 18 # DW_AT_high_pc
514 .byte 6 # DW_FORM_data4
515 .byte 64 # DW_AT_frame_base
516 .byte 24 # DW_FORM_exprloc
518 .byte 37 # DW_FORM_strx1
519 .byte 58 # DW_AT_decl_file
520 .byte 11 # DW_FORM_data1
521 .byte 59 # DW_AT_decl_line
522 .byte 11 # DW_FORM_data1
523 .byte 73 # DW_AT_type
524 .byte 19 # DW_FORM_ref4
525 .byte 63 # DW_AT_external
526 .byte 25 # DW_FORM_flag_present
529 .byte 8 # Abbreviation Code
530 .byte 5 # DW_TAG_formal_parameter
531 .byte 0 # DW_CHILDREN_no
532 .byte 2 # DW_AT_location
533 .byte 24 # DW_FORM_exprloc
535 .byte 37 # DW_FORM_strx1
536 .byte 58 # DW_AT_decl_file
537 .byte 11 # DW_FORM_data1
538 .byte 59 # DW_AT_decl_line
539 .byte 11 # DW_FORM_data1
540 .byte 73 # DW_AT_type
541 .byte 19 # DW_FORM_ref4
544 .byte 9 # Abbreviation Code
545 .byte 29 # DW_TAG_inlined_subroutine
546 .byte 1 # DW_CHILDREN_yes
547 .byte 49 # DW_AT_abstract_origin
548 .byte 19 # DW_FORM_ref4
549 .byte 85 # DW_AT_ranges
550 .byte 35 # DW_FORM_rnglistx
551 .byte 88 # DW_AT_call_file
552 .byte 11 # DW_FORM_data1
553 .byte 89 # DW_AT_call_line
554 .byte 11 # DW_FORM_data1
555 .byte 87 # DW_AT_call_column
556 .byte 11 # DW_FORM_data1
559 .byte 10 # Abbreviation Code
560 .byte 15 # DW_TAG_pointer_type
561 .byte 0 # DW_CHILDREN_no
562 .byte 73 # DW_AT_type
563 .byte 19 # DW_FORM_ref4
566 .byte 11 # Abbreviation Code
567 .byte 38 # DW_TAG_const_type
568 .byte 0 # DW_CHILDREN_no
569 .byte 73 # DW_AT_type
570 .byte 19 # DW_FORM_ref4
574 .section .debug_rnglists.dwo,"e",@progbits
575 .long .Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
576 .Ldebug_list_header_start1:
578 .byte 8 # Address size
579 .byte 0 # Segment selector size
580 .long 2 # Offset entry count
581 .Lrnglists_dwo_table_base0:
582 .long .Ldebug_ranges0-.Lrnglists_dwo_table_base0
583 .long .Ldebug_ranges1-.Lrnglists_dwo_table_base0
585 .byte 1 # DW_RLE_base_addressx
586 .byte 2 # base address index
587 .byte 4 # DW_RLE_offset_pair
588 .uleb128 0 # starting offset Manually modified
589 .uleb128 .Ltmp15-.Lfunc_begin2 # ending offset
590 .byte 0 # DW_RLE_end_of_list
592 .byte 1 # DW_RLE_base_addressx
593 .byte 2 # base address index
594 .byte 4 # DW_RLE_offset_pair
595 .uleb128 0 # starting offset Manually modified
596 .uleb128 .Ltmp19-.Lfunc_begin2 # ending offset
597 .byte 0 # DW_RLE_end_of_list
598 .Ldebug_list_header_end1:
599 .section .debug_addr,"",@progbits
600 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
602 .short 5 # DWARF version number
603 .byte 8 # Address size
604 .byte 0 # Segment selector size
608 .quad 0 # Manually modified
610 .section .debug_gnu_pubnames,"",@progbits
611 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
613 .short 2 # DWARF Version
614 .long .Lcu_begin0 # Offset of Compilation Unit Info
615 .long 48 # Compilation Unit Length
616 .long 68 # DIE offset
617 .byte 48 # Attributes: FUNCTION, EXTERNAL
618 .asciz "doStuff" # External Name
619 .long 90 # DIE offset
620 .byte 48 # Attributes: FUNCTION, EXTERNAL
621 .asciz "doStuffSame" # External Name
622 .long 108 # DIE offset
623 .byte 48 # Attributes: FUNCTION, EXTERNAL
624 .asciz "main" # External Name
627 .section .debug_gnu_pubtypes,"",@progbits
628 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
630 .short 2 # DWARF Version
631 .long .Lcu_begin0 # Offset of Compilation Unit Info
632 .long 48 # Compilation Unit Length
633 .long 86 # DIE offset
634 .byte 144 # Attributes: TYPE, STATIC
635 .asciz "int" # External Name
636 .long 197 # DIE offset
637 .byte 144 # Attributes: TYPE, STATIC
638 .asciz "char" # External Name
641 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 63dbe7e808d07bdf25bad85301980bc323b0cd64)"
642 .section ".note.GNU-stack","",@progbits
644 .section .debug_line,"",@progbits