Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / bolt / test / X86 / Inputs / dwarf4-df-call-site-change-low-pc-main.s
blob36cb91b4d276a5c6ff3ff29214a011b87084aae7
1 # clang++ -O2 -g -gdwarf-4 -gsplit-dwarf
2 # void use(int * x, int * y) {
3 # *x += 4;
4 # *y -= 2;
5 # }
7 # int helper(int z_, int d_);
8 # int x = 0;
9 # int y = 1;
10 # int main(int argc, char *argv[]) {
11 # x = argc;
12 # y = argc + 3;
13 # //use(&x, &y);
14 # return helper(x, y);
15 # }
17 .text
18 .file "main.cpp"
19 .file 1 "." "main.cpp"
20 .globl _Z3usePiS_ # -- Begin function _Z3usePiS_
21 .p2align 4, 0x90
22 .type _Z3usePiS_,@function
23 _Z3usePiS_: # @_Z3usePiS_
24 .Lfunc_begin0:
25 .cfi_startproc
26 # %bb.0: # %entry
27 #DEBUG_VALUE: use:x <- $rdi
28 #DEBUG_VALUE: use:y <- $rsi
29 .loc 1 2 5 prologue_end # main.cpp:2:5
30 addl $4, (%rdi)
31 .loc 1 3 5 # main.cpp:3:5
32 addl $-2, (%rsi)
33 .loc 1 4 1 # main.cpp:4:1
34 retq
35 .Ltmp0:
36 .Lfunc_end0:
37 .size _Z3usePiS_, .Lfunc_end0-_Z3usePiS_
38 .cfi_endproc
39 # -- End function
40 .globl main # -- Begin function main
41 .p2align 4, 0x90
42 .type main,@function
43 main: # @main
44 .Lfunc_begin1:
45 .cfi_startproc
46 # %bb.0: # %entry
47 #DEBUG_VALUE: main:argc <- $edi
48 #DEBUG_VALUE: main:argv <- $rsi
49 # kill: def $edi killed $edi def $rdi
50 .loc 1 10 6 prologue_end # main.cpp:10:6
51 movl %edi, x(%rip)
52 .loc 1 11 13 # main.cpp:11:13
53 leal 3(%rdi), %esi
54 .Ltmp1:
55 #DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi
56 .loc 1 11 6 is_stmt 0 # main.cpp:11:6
57 movl %esi, y(%rip)
58 # kill: def $edi killed $edi killed $rdi
59 .Ltmp2:
60 .loc 1 13 11 is_stmt 1 # main.cpp:13:11
61 jmp _Z6helperii@PLT # TAILCALL
62 .Ltmp3:
63 .Lfunc_end1:
64 .size main, .Lfunc_end1-main
65 .cfi_endproc
66 # -- End function
67 .type x,@object # @x
68 .bss
69 .globl x
70 .p2align 2, 0x0
72 .long 0 # 0x0
73 .size x, 4
75 .type y,@object # @y
76 .data
77 .globl y
78 .p2align 2, 0x0
80 .long 1 # 0x1
81 .size y, 4
83 .section .debug_loc.dwo,"e",@progbits
84 .Ldebug_loc0:
85 .byte 3
86 .byte 3
87 .long .Ltmp1-.Lfunc_begin1
88 .short 1 # Loc expr size
89 .byte 84 # DW_OP_reg4
90 .byte 3
91 .byte 5
92 .long .Lfunc_end1-.Ltmp1
93 .short 4 # Loc expr size
94 .byte 243 # DW_OP_GNU_entry_value
95 .byte 1 # 1
96 .byte 84 # DW_OP_reg4
97 .byte 159 # DW_OP_stack_value
98 .byte 0
99 .section .debug_abbrev,"",@progbits
100 .byte 1 # Abbreviation Code
101 .byte 17 # DW_TAG_compile_unit
102 .byte 0 # DW_CHILDREN_no
103 .byte 16 # DW_AT_stmt_list
104 .byte 23 # DW_FORM_sec_offset
105 .byte 27 # DW_AT_comp_dir
106 .byte 14 # DW_FORM_strp
107 .ascii "\264B" # DW_AT_GNU_pubnames
108 .byte 25 # DW_FORM_flag_present
109 .ascii "\260B" # DW_AT_GNU_dwo_name
110 .byte 14 # DW_FORM_strp
111 .ascii "\261B" # DW_AT_GNU_dwo_id
112 .byte 7 # DW_FORM_data8
113 .byte 17 # DW_AT_low_pc
114 .byte 1 # DW_FORM_addr
115 .byte 18 # DW_AT_high_pc
116 .byte 6 # DW_FORM_data4
117 .ascii "\263B" # DW_AT_GNU_addr_base
118 .byte 23 # DW_FORM_sec_offset
119 .byte 0 # EOM(1)
120 .byte 0 # EOM(2)
121 .byte 0 # EOM(3)
122 .section .debug_info,"",@progbits
123 .Lcu_begin0:
124 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
125 .Ldebug_info_start0:
126 .short 4 # DWARF version number
127 .long .debug_abbrev # Offset Into Abbrev. Section
128 .byte 8 # Address Size (in bytes)
129 .byte 1 # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
130 .long .Lline_table_start0 # DW_AT_stmt_list
131 .long .Lskel_string0 # DW_AT_comp_dir
132 # DW_AT_GNU_pubnames
133 .long .Lskel_string1 # DW_AT_GNU_dwo_name
134 .quad -3308548803209949056 # DW_AT_GNU_dwo_id
135 .quad .Lfunc_begin0 # DW_AT_low_pc
136 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc
137 .long .Laddr_table_base0 # DW_AT_GNU_addr_base
138 .Ldebug_info_end0:
139 .section .debug_str,"MS",@progbits,1
140 .Lskel_string0:
141 .asciz "." # string offset=0
142 .Lskel_string1:
143 .asciz "main.dwo" # string offset=47
144 .section .debug_str.dwo,"eMS",@progbits,1
145 .Linfo_string0:
146 .asciz "x" # string offset=0
147 .Linfo_string1:
148 .asciz "int" # string offset=2
149 .Linfo_string2:
150 .asciz "y" # string offset=6
151 .Linfo_string3:
152 .asciz "_Z6helperii" # string offset=8
153 .Linfo_string4:
154 .asciz "helper" # string offset=20
155 .Linfo_string5:
156 .asciz "_Z3usePiS_" # string offset=27
157 .Linfo_string6:
158 .asciz "use" # string offset=38
159 .Linfo_string7:
160 .asciz "main" # string offset=42
161 .Linfo_string8:
162 .asciz "argc" # string offset=47
163 .Linfo_string9:
164 .asciz "argv" # string offset=52
165 .Linfo_string10:
166 .asciz "char" # string offset=57
167 .Linfo_string11:
168 .asciz "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" # string offset=62
169 .Linfo_string12:
170 .asciz "main.cpp" # string offset=163
171 .Linfo_string13:
172 .asciz "main.dwo" # string offset=172
173 .section .debug_str_offsets.dwo,"e",@progbits
174 .long 0
175 .long 2
176 .long 6
177 .long 8
178 .long 20
179 .long 27
180 .long 38
181 .long 42
182 .long 47
183 .long 52
184 .long 57
185 .long 62
186 .long 163
187 .long 172
188 .section .debug_info.dwo,"e",@progbits
189 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
190 .Ldebug_info_dwo_start0:
191 .short 4 # DWARF version number
192 .long 0 # Offset Into Abbrev. Section
193 .byte 8 # Address Size (in bytes)
194 .byte 1 # Abbrev [1] 0xb:0x9d DW_TAG_compile_unit
195 .byte 11 # DW_AT_producer
196 .short 33 # DW_AT_language
197 .byte 12 # DW_AT_name
198 .byte 13 # DW_AT_GNU_dwo_name
199 .quad -3308548803209949056 # DW_AT_GNU_dwo_id
200 .byte 2 # Abbrev [2] 0x19:0xb DW_TAG_variable
201 .byte 0 # DW_AT_name
202 .long 36 # DW_AT_type
203 # DW_AT_external
204 .byte 1 # DW_AT_decl_file
205 .byte 7 # DW_AT_decl_line
206 .byte 2 # DW_AT_location
207 .byte 251
208 .byte 0
209 .byte 3 # Abbrev [3] 0x24:0x4 DW_TAG_base_type
210 .byte 1 # DW_AT_name
211 .byte 5 # DW_AT_encoding
212 .byte 4 # DW_AT_byte_size
213 .byte 2 # Abbrev [2] 0x28:0xb DW_TAG_variable
214 .byte 2 # DW_AT_name
215 .long 36 # DW_AT_type
216 # DW_AT_external
217 .byte 1 # DW_AT_decl_file
218 .byte 8 # DW_AT_decl_line
219 .byte 2 # DW_AT_location
220 .byte 251
221 .byte 1
222 .byte 4 # Abbrev [4] 0x33:0x21 DW_TAG_subprogram
223 .byte 2 # DW_AT_low_pc
224 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
225 .byte 1 # DW_AT_frame_base
226 .byte 87
227 # DW_AT_GNU_all_call_sites
228 .byte 5 # DW_AT_linkage_name
229 .byte 6 # DW_AT_name
230 .byte 1 # DW_AT_decl_file
231 .byte 1 # DW_AT_decl_line
232 # DW_AT_external
233 .byte 5 # Abbrev [5] 0x3f:0xa DW_TAG_formal_parameter
234 .byte 1 # DW_AT_location
235 .byte 85
236 .byte 0 # DW_AT_name
237 .byte 1 # DW_AT_decl_file
238 .byte 1 # DW_AT_decl_line
239 .long 148 # DW_AT_type
240 .byte 5 # Abbrev [5] 0x49:0xa DW_TAG_formal_parameter
241 .byte 1 # DW_AT_location
242 .byte 84
243 .byte 2 # DW_AT_name
244 .byte 1 # DW_AT_decl_file
245 .byte 1 # DW_AT_decl_line
246 .long 148 # DW_AT_type
247 .byte 0 # End Of Children Mark
248 .byte 6 # Abbrev [6] 0x54:0x2c DW_TAG_subprogram
249 .byte 3 # DW_AT_low_pc
250 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
251 .byte 1 # DW_AT_frame_base
252 .byte 87
253 # DW_AT_GNU_all_call_sites
254 .byte 7 # DW_AT_name
255 .byte 1 # DW_AT_decl_file
256 .byte 9 # DW_AT_decl_line
257 .long 36 # DW_AT_type
258 # DW_AT_external
259 .byte 5 # Abbrev [5] 0x63:0xa DW_TAG_formal_parameter
260 .byte 1 # DW_AT_location
261 .byte 85
262 .byte 8 # DW_AT_name
263 .byte 1 # DW_AT_decl_file
264 .byte 9 # DW_AT_decl_line
265 .long 36 # DW_AT_type
266 .byte 7 # Abbrev [7] 0x6d:0xc DW_TAG_formal_parameter
267 .long .Ldebug_loc0-.debug_loc.dwo # DW_AT_location
268 .byte 9 # DW_AT_name
269 .byte 1 # DW_AT_decl_file
270 .byte 9 # DW_AT_decl_line
271 .long 153 # DW_AT_type
272 .byte 8 # Abbrev [8] 0x79:0x6 DW_TAG_GNU_call_site
273 .long 128 # DW_AT_abstract_origin
274 # DW_AT_GNU_tail_call
275 .byte 4 # DW_AT_low_pc
276 .byte 0 # End Of Children Mark
277 .byte 9 # Abbrev [9] 0x80:0x14 DW_TAG_subprogram
278 .byte 3 # DW_AT_linkage_name
279 .byte 4 # DW_AT_name
280 .byte 1 # DW_AT_decl_file
281 .byte 6 # DW_AT_decl_line
282 .long 36 # DW_AT_type
283 # DW_AT_declaration
284 # DW_AT_external
285 .byte 10 # Abbrev [10] 0x89:0x5 DW_TAG_formal_parameter
286 .long 36 # DW_AT_type
287 .byte 10 # Abbrev [10] 0x8e:0x5 DW_TAG_formal_parameter
288 .long 36 # DW_AT_type
289 .byte 0 # End Of Children Mark
290 .byte 11 # Abbrev [11] 0x94:0x5 DW_TAG_pointer_type
291 .long 36 # DW_AT_type
292 .byte 11 # Abbrev [11] 0x99:0x5 DW_TAG_pointer_type
293 .long 158 # DW_AT_type
294 .byte 11 # Abbrev [11] 0x9e:0x5 DW_TAG_pointer_type
295 .long 163 # DW_AT_type
296 .byte 3 # Abbrev [3] 0xa3:0x4 DW_TAG_base_type
297 .byte 10 # DW_AT_name
298 .byte 6 # DW_AT_encoding
299 .byte 1 # DW_AT_byte_size
300 .byte 0 # End Of Children Mark
301 .Ldebug_info_dwo_end0:
302 .section .debug_abbrev.dwo,"e",@progbits
303 .byte 1 # Abbreviation Code
304 .byte 17 # DW_TAG_compile_unit
305 .byte 1 # DW_CHILDREN_yes
306 .byte 37 # DW_AT_producer
307 .ascii "\202>" # DW_FORM_GNU_str_index
308 .byte 19 # DW_AT_language
309 .byte 5 # DW_FORM_data2
310 .byte 3 # DW_AT_name
311 .ascii "\202>" # DW_FORM_GNU_str_index
312 .ascii "\260B" # DW_AT_GNU_dwo_name
313 .ascii "\202>" # DW_FORM_GNU_str_index
314 .ascii "\261B" # DW_AT_GNU_dwo_id
315 .byte 7 # DW_FORM_data8
316 .byte 0 # EOM(1)
317 .byte 0 # EOM(2)
318 .byte 2 # Abbreviation Code
319 .byte 52 # DW_TAG_variable
320 .byte 0 # DW_CHILDREN_no
321 .byte 3 # DW_AT_name
322 .ascii "\202>" # DW_FORM_GNU_str_index
323 .byte 73 # DW_AT_type
324 .byte 19 # DW_FORM_ref4
325 .byte 63 # DW_AT_external
326 .byte 25 # DW_FORM_flag_present
327 .byte 58 # DW_AT_decl_file
328 .byte 11 # DW_FORM_data1
329 .byte 59 # DW_AT_decl_line
330 .byte 11 # DW_FORM_data1
331 .byte 2 # DW_AT_location
332 .byte 24 # DW_FORM_exprloc
333 .byte 0 # EOM(1)
334 .byte 0 # EOM(2)
335 .byte 3 # Abbreviation Code
336 .byte 36 # DW_TAG_base_type
337 .byte 0 # DW_CHILDREN_no
338 .byte 3 # DW_AT_name
339 .ascii "\202>" # DW_FORM_GNU_str_index
340 .byte 62 # DW_AT_encoding
341 .byte 11 # DW_FORM_data1
342 .byte 11 # DW_AT_byte_size
343 .byte 11 # DW_FORM_data1
344 .byte 0 # EOM(1)
345 .byte 0 # EOM(2)
346 .byte 4 # Abbreviation Code
347 .byte 46 # DW_TAG_subprogram
348 .byte 1 # DW_CHILDREN_yes
349 .byte 17 # DW_AT_low_pc
350 .ascii "\201>" # DW_FORM_GNU_addr_index
351 .byte 18 # DW_AT_high_pc
352 .byte 6 # DW_FORM_data4
353 .byte 64 # DW_AT_frame_base
354 .byte 24 # DW_FORM_exprloc
355 .ascii "\227B" # DW_AT_GNU_all_call_sites
356 .byte 25 # DW_FORM_flag_present
357 .byte 110 # DW_AT_linkage_name
358 .ascii "\202>" # DW_FORM_GNU_str_index
359 .byte 3 # DW_AT_name
360 .ascii "\202>" # DW_FORM_GNU_str_index
361 .byte 58 # DW_AT_decl_file
362 .byte 11 # DW_FORM_data1
363 .byte 59 # DW_AT_decl_line
364 .byte 11 # DW_FORM_data1
365 .byte 63 # DW_AT_external
366 .byte 25 # DW_FORM_flag_present
367 .byte 0 # EOM(1)
368 .byte 0 # EOM(2)
369 .byte 5 # Abbreviation Code
370 .byte 5 # DW_TAG_formal_parameter
371 .byte 0 # DW_CHILDREN_no
372 .byte 2 # DW_AT_location
373 .byte 24 # DW_FORM_exprloc
374 .byte 3 # DW_AT_name
375 .ascii "\202>" # DW_FORM_GNU_str_index
376 .byte 58 # DW_AT_decl_file
377 .byte 11 # DW_FORM_data1
378 .byte 59 # DW_AT_decl_line
379 .byte 11 # DW_FORM_data1
380 .byte 73 # DW_AT_type
381 .byte 19 # DW_FORM_ref4
382 .byte 0 # EOM(1)
383 .byte 0 # EOM(2)
384 .byte 6 # Abbreviation Code
385 .byte 46 # DW_TAG_subprogram
386 .byte 1 # DW_CHILDREN_yes
387 .byte 17 # DW_AT_low_pc
388 .ascii "\201>" # DW_FORM_GNU_addr_index
389 .byte 18 # DW_AT_high_pc
390 .byte 6 # DW_FORM_data4
391 .byte 64 # DW_AT_frame_base
392 .byte 24 # DW_FORM_exprloc
393 .ascii "\227B" # DW_AT_GNU_all_call_sites
394 .byte 25 # DW_FORM_flag_present
395 .byte 3 # DW_AT_name
396 .ascii "\202>" # DW_FORM_GNU_str_index
397 .byte 58 # DW_AT_decl_file
398 .byte 11 # DW_FORM_data1
399 .byte 59 # DW_AT_decl_line
400 .byte 11 # DW_FORM_data1
401 .byte 73 # DW_AT_type
402 .byte 19 # DW_FORM_ref4
403 .byte 63 # DW_AT_external
404 .byte 25 # DW_FORM_flag_present
405 .byte 0 # EOM(1)
406 .byte 0 # EOM(2)
407 .byte 7 # Abbreviation Code
408 .byte 5 # DW_TAG_formal_parameter
409 .byte 0 # DW_CHILDREN_no
410 .byte 2 # DW_AT_location
411 .byte 23 # DW_FORM_sec_offset
412 .byte 3 # DW_AT_name
413 .ascii "\202>" # DW_FORM_GNU_str_index
414 .byte 58 # DW_AT_decl_file
415 .byte 11 # DW_FORM_data1
416 .byte 59 # DW_AT_decl_line
417 .byte 11 # DW_FORM_data1
418 .byte 73 # DW_AT_type
419 .byte 19 # DW_FORM_ref4
420 .byte 0 # EOM(1)
421 .byte 0 # EOM(2)
422 .byte 8 # Abbreviation Code
423 .ascii "\211\202\001" # DW_TAG_GNU_call_site
424 .byte 0 # DW_CHILDREN_no
425 .byte 49 # DW_AT_abstract_origin
426 .byte 19 # DW_FORM_ref4
427 .ascii "\225B" # DW_AT_GNU_tail_call
428 .byte 25 # DW_FORM_flag_present
429 .byte 17 # DW_AT_low_pc
430 .ascii "\201>" # DW_FORM_GNU_addr_index
431 .byte 0 # EOM(1)
432 .byte 0 # EOM(2)
433 .byte 9 # Abbreviation Code
434 .byte 46 # DW_TAG_subprogram
435 .byte 1 # DW_CHILDREN_yes
436 .byte 110 # DW_AT_linkage_name
437 .ascii "\202>" # DW_FORM_GNU_str_index
438 .byte 3 # DW_AT_name
439 .ascii "\202>" # DW_FORM_GNU_str_index
440 .byte 58 # DW_AT_decl_file
441 .byte 11 # DW_FORM_data1
442 .byte 59 # DW_AT_decl_line
443 .byte 11 # DW_FORM_data1
444 .byte 73 # DW_AT_type
445 .byte 19 # DW_FORM_ref4
446 .byte 60 # DW_AT_declaration
447 .byte 25 # DW_FORM_flag_present
448 .byte 63 # DW_AT_external
449 .byte 25 # DW_FORM_flag_present
450 .byte 0 # EOM(1)
451 .byte 0 # EOM(2)
452 .byte 10 # Abbreviation Code
453 .byte 5 # DW_TAG_formal_parameter
454 .byte 0 # DW_CHILDREN_no
455 .byte 73 # DW_AT_type
456 .byte 19 # DW_FORM_ref4
457 .byte 0 # EOM(1)
458 .byte 0 # EOM(2)
459 .byte 11 # Abbreviation Code
460 .byte 15 # DW_TAG_pointer_type
461 .byte 0 # DW_CHILDREN_no
462 .byte 73 # DW_AT_type
463 .byte 19 # DW_FORM_ref4
464 .byte 0 # EOM(1)
465 .byte 0 # EOM(2)
466 .byte 0 # EOM(3)
467 .section .debug_addr,"",@progbits
468 .Laddr_table_base0:
469 .quad x
470 .quad y
471 .quad .Lfunc_begin0
472 .quad .Lfunc_begin1
473 .quad .Ltmp3
474 .quad .Ltmp1
475 .section .debug_gnu_pubnames,"",@progbits
476 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
477 .LpubNames_start0:
478 .short 2 # DWARF Version
479 .long .Lcu_begin0 # Offset of Compilation Unit Info
480 .long 48 # Compilation Unit Length
481 .long 25 # DIE offset
482 .byte 32 # Attributes: VARIABLE, EXTERNAL
483 .asciz "x" # External Name
484 .long 40 # DIE offset
485 .byte 32 # Attributes: VARIABLE, EXTERNAL
486 .asciz "y" # External Name
487 .long 51 # DIE offset
488 .byte 48 # Attributes: FUNCTION, EXTERNAL
489 .asciz "use" # External Name
490 .long 84 # DIE offset
491 .byte 48 # Attributes: FUNCTION, EXTERNAL
492 .asciz "main" # External Name
493 .long 0 # End Mark
494 .LpubNames_end0:
495 .section .debug_gnu_pubtypes,"",@progbits
496 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
497 .LpubTypes_start0:
498 .short 2 # DWARF Version
499 .long .Lcu_begin0 # Offset of Compilation Unit Info
500 .long 48 # Compilation Unit Length
501 .long 36 # DIE offset
502 .byte 144 # Attributes: TYPE, STATIC
503 .asciz "int" # External Name
504 .long 163 # DIE offset
505 .byte 144 # Attributes: TYPE, STATIC
506 .asciz "char" # External Name
507 .long 0 # End Mark
508 .LpubTypes_end0:
509 .ident "clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)"
510 .section ".note.GNU-stack","",@progbits
511 .addrsig
512 .section .debug_line,"",@progbits
513 .Lline_table_start0: