Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / bolt / test / X86 / Inputs / dwarf5_main.s
blobec0c50cba5691c8ebc9201b40e009589917efc22
1 # clang++ main.cpp -g -O2 -S
2 # void use(int * x, int * y) {
3 # *x += 4;
4 # *y -= 2;
5 # }
7 # extern int fooVar;
8 # int main(int argc, char *argv[]) {
9 # int x = argc;
10 # int y = fooVar + 3;
11 # use(&x, &y);
12 # return x + y;
13 # }
16 .text
17 .file "main.cpp"
18 .globl _Z3usePiS_ # -- Begin function _Z3usePiS_
19 .p2align 4, 0x90
20 .type _Z3usePiS_,@function
21 _Z3usePiS_: # @_Z3usePiS_
22 .Lfunc_begin0:
23 .file 0 "/testLocListMultiple" "main.cpp" md5 0xb1a1551182284263b0faa0cae08277da
24 .loc 0 1 0 # main.cpp:1:0
25 .cfi_startproc
26 # %bb.0: # %entry
27 #DEBUG_VALUE: use:x <- $rdi
28 #DEBUG_VALUE: use:y <- $rsi
29 .loc 0 2 4 prologue_end # main.cpp:2:4
30 addl $4, (%rdi)
31 .loc 0 3 4 # main.cpp:3:4
32 addl $-2, (%rsi)
33 .loc 0 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 .loc 0 7 0 # main.cpp:7:0
46 .cfi_startproc
47 # %bb.0: # %entry
48 #DEBUG_VALUE: main:argc <- $edi
49 #DEBUG_VALUE: main:argv <- $rsi
50 #DEBUG_VALUE: main:x <- $edi
51 # kill: def $edi killed $edi def $rdi
52 .loc 0 9 12 prologue_end # main.cpp:9:12
53 movl fooVar(%rip), %eax
54 .Ltmp1:
55 #DEBUG_VALUE: main:y <- [DW_OP_plus_uconst 3, DW_OP_stack_value] $eax
56 #DEBUG_VALUE: main:y <- [DW_OP_plus_uconst 1, DW_OP_stack_value] $eax
57 #DEBUG_VALUE: main:x <- [DW_OP_plus_uconst 4, DW_OP_stack_value] $edi
58 .loc 0 11 13 # main.cpp:11:13
59 addl %edi, %eax
60 .Ltmp2:
61 addl $5, %eax
62 .loc 0 11 4 is_stmt 0 # main.cpp:11:4
63 retq
64 .Ltmp3:
65 .Lfunc_end1:
66 .size main, .Lfunc_end1-main
67 .cfi_endproc
68 # -- End function
69 .section .debug_loclists,"",@progbits
70 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
71 .Ldebug_list_header_start0:
72 .short 5 # Version
73 .byte 8 # Address size
74 .byte 0 # Segment selector size
75 .long 2 # Offset entry count
76 .Lloclists_table_base0:
77 .long .Ldebug_loc0-.Lloclists_table_base0
78 .long .Ldebug_loc1-.Lloclists_table_base0
79 .Ldebug_loc0:
80 .byte 4 # DW_LLE_offset_pair
81 .uleb128 .Lfunc_begin1-.Lfunc_begin0 # starting offset
82 .uleb128 .Ltmp1-.Lfunc_begin0 # ending offset
83 .byte 1 # Loc expr size
84 .byte 85 # super-register DW_OP_reg5
85 .byte 4 # DW_LLE_offset_pair
86 .uleb128 .Ltmp1-.Lfunc_begin0 # starting offset
87 .uleb128 .Lfunc_end1-.Lfunc_begin0 # ending offset
88 .byte 10 # Loc expr size
89 .byte 117 # DW_OP_breg5
90 .byte 4 # 4
91 .byte 16 # DW_OP_constu
92 .byte 255 # 4294967295
93 .byte 255 #
94 .byte 255 #
95 .byte 255 #
96 .byte 15 #
97 .byte 26 # DW_OP_and
98 .byte 159 # DW_OP_stack_value
99 .byte 0 # DW_LLE_end_of_list
100 .Ldebug_loc1:
101 .byte 4 # DW_LLE_offset_pair
102 .uleb128 .Ltmp1-.Lfunc_begin0 # starting offset
103 .uleb128 .Ltmp2-.Lfunc_begin0 # ending offset
104 .byte 10 # Loc expr size
105 .byte 112 # DW_OP_breg0
106 .byte 1 # 1
107 .byte 16 # DW_OP_constu
108 .byte 255 # 4294967295
109 .byte 255 #
110 .byte 255 #
111 .byte 255 #
112 .byte 15 #
113 .byte 26 # DW_OP_and
114 .byte 159 # DW_OP_stack_value
115 .byte 0 # DW_LLE_end_of_list
116 .Ldebug_list_header_end0:
117 .section .debug_abbrev,"",@progbits
118 .byte 1 # Abbreviation Code
119 .byte 17 # DW_TAG_compile_unit
120 .byte 1 # DW_CHILDREN_yes
121 .byte 37 # DW_AT_producer
122 .byte 37 # DW_FORM_strx1
123 .byte 19 # DW_AT_language
124 .byte 5 # DW_FORM_data2
125 .byte 3 # DW_AT_name
126 .byte 37 # DW_FORM_strx1
127 .byte 114 # DW_AT_str_offsets_base
128 .byte 23 # DW_FORM_sec_offset
129 .byte 16 # DW_AT_stmt_list
130 .byte 23 # DW_FORM_sec_offset
131 .byte 27 # DW_AT_comp_dir
132 .byte 37 # DW_FORM_strx1
133 .byte 17 # DW_AT_low_pc
134 .byte 27 # DW_FORM_addrx
135 .byte 18 # DW_AT_high_pc
136 .byte 6 # DW_FORM_data4
137 .byte 115 # DW_AT_addr_base
138 .byte 23 # DW_FORM_sec_offset
139 .ascii "\214\001" # DW_AT_loclists_base
140 .byte 23 # DW_FORM_sec_offset
141 .byte 0 # EOM(1)
142 .byte 0 # EOM(2)
143 .byte 2 # Abbreviation Code
144 .byte 46 # DW_TAG_subprogram
145 .byte 1 # DW_CHILDREN_yes
146 .byte 17 # DW_AT_low_pc
147 .byte 27 # DW_FORM_addrx
148 .byte 18 # DW_AT_high_pc
149 .byte 6 # DW_FORM_data4
150 .byte 64 # DW_AT_frame_base
151 .byte 24 # DW_FORM_exprloc
152 .byte 122 # DW_AT_call_all_calls
153 .byte 25 # DW_FORM_flag_present
154 .byte 110 # DW_AT_linkage_name
155 .byte 37 # DW_FORM_strx1
156 .byte 3 # DW_AT_name
157 .byte 37 # DW_FORM_strx1
158 .byte 58 # DW_AT_decl_file
159 .byte 11 # DW_FORM_data1
160 .byte 59 # DW_AT_decl_line
161 .byte 11 # DW_FORM_data1
162 .byte 63 # DW_AT_external
163 .byte 25 # DW_FORM_flag_present
164 .byte 0 # EOM(1)
165 .byte 0 # EOM(2)
166 .byte 3 # Abbreviation Code
167 .byte 5 # DW_TAG_formal_parameter
168 .byte 0 # DW_CHILDREN_no
169 .byte 2 # DW_AT_location
170 .byte 24 # DW_FORM_exprloc
171 .byte 3 # DW_AT_name
172 .byte 37 # DW_FORM_strx1
173 .byte 58 # DW_AT_decl_file
174 .byte 11 # DW_FORM_data1
175 .byte 59 # DW_AT_decl_line
176 .byte 11 # DW_FORM_data1
177 .byte 73 # DW_AT_type
178 .byte 19 # DW_FORM_ref4
179 .byte 0 # EOM(1)
180 .byte 0 # EOM(2)
181 .byte 4 # Abbreviation Code
182 .byte 46 # DW_TAG_subprogram
183 .byte 1 # DW_CHILDREN_yes
184 .byte 17 # DW_AT_low_pc
185 .byte 27 # DW_FORM_addrx
186 .byte 18 # DW_AT_high_pc
187 .byte 6 # DW_FORM_data4
188 .byte 64 # DW_AT_frame_base
189 .byte 24 # DW_FORM_exprloc
190 .byte 122 # DW_AT_call_all_calls
191 .byte 25 # DW_FORM_flag_present
192 .byte 3 # DW_AT_name
193 .byte 37 # DW_FORM_strx1
194 .byte 58 # DW_AT_decl_file
195 .byte 11 # DW_FORM_data1
196 .byte 59 # DW_AT_decl_line
197 .byte 11 # DW_FORM_data1
198 .byte 73 # DW_AT_type
199 .byte 19 # DW_FORM_ref4
200 .byte 63 # DW_AT_external
201 .byte 25 # DW_FORM_flag_present
202 .byte 0 # EOM(1)
203 .byte 0 # EOM(2)
204 .byte 5 # Abbreviation Code
205 .byte 52 # DW_TAG_variable
206 .byte 0 # DW_CHILDREN_no
207 .byte 2 # DW_AT_location
208 .byte 34 # DW_FORM_loclistx
209 .byte 3 # DW_AT_name
210 .byte 37 # DW_FORM_strx1
211 .byte 58 # DW_AT_decl_file
212 .byte 11 # DW_FORM_data1
213 .byte 59 # DW_AT_decl_line
214 .byte 11 # DW_FORM_data1
215 .byte 73 # DW_AT_type
216 .byte 19 # DW_FORM_ref4
217 .byte 0 # EOM(1)
218 .byte 0 # EOM(2)
219 .byte 6 # Abbreviation Code
220 .byte 36 # DW_TAG_base_type
221 .byte 0 # DW_CHILDREN_no
222 .byte 3 # DW_AT_name
223 .byte 37 # DW_FORM_strx1
224 .byte 62 # DW_AT_encoding
225 .byte 11 # DW_FORM_data1
226 .byte 11 # DW_AT_byte_size
227 .byte 11 # DW_FORM_data1
228 .byte 0 # EOM(1)
229 .byte 0 # EOM(2)
230 .byte 7 # Abbreviation Code
231 .byte 15 # DW_TAG_pointer_type
232 .byte 0 # DW_CHILDREN_no
233 .byte 73 # DW_AT_type
234 .byte 19 # DW_FORM_ref4
235 .byte 0 # EOM(1)
236 .byte 0 # EOM(2)
237 .byte 0 # EOM(3)
238 .section .debug_info,"",@progbits
239 .Lcu_begin0:
240 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
241 .Ldebug_info_start0:
242 .short 5 # DWARF version number
243 .byte 1 # DWARF Unit Type
244 .byte 8 # Address Size (in bytes)
245 .long .debug_abbrev # Offset Into Abbrev. Section
246 .byte 1 # Abbrev [1] 0xc:0x8a DW_TAG_compile_unit
247 .byte 0 # DW_AT_producer
248 .short 33 # DW_AT_language
249 .byte 1 # DW_AT_name
250 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
251 .long .Lline_table_start0 # DW_AT_stmt_list
252 .byte 2 # DW_AT_comp_dir
253 .byte 0 # DW_AT_low_pc
254 .long .Lfunc_end1-.Lfunc_begin0 # DW_AT_high_pc
255 .long .Laddr_table_base0 # DW_AT_addr_base
256 .long .Lloclists_table_base0 # DW_AT_loclists_base
257 .byte 2 # Abbrev [2] 0x27:0x21 DW_TAG_subprogram
258 .byte 0 # DW_AT_low_pc
259 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
260 .byte 1 # DW_AT_frame_base
261 .byte 87
262 # DW_AT_call_all_calls
263 .byte 3 # DW_AT_linkage_name
264 .byte 4 # DW_AT_name
265 .byte 0 # DW_AT_decl_file
266 .byte 1 # DW_AT_decl_line
267 # DW_AT_external
268 .byte 3 # Abbrev [3] 0x33:0xa DW_TAG_formal_parameter
269 .byte 1 # DW_AT_location
270 .byte 85
271 .byte 7 # DW_AT_name
272 .byte 0 # DW_AT_decl_file
273 .byte 1 # DW_AT_decl_line
274 .long 130 # DW_AT_type
275 .byte 3 # Abbrev [3] 0x3d:0xa DW_TAG_formal_parameter
276 .byte 1 # DW_AT_location
277 .byte 84
278 .byte 8 # DW_AT_name
279 .byte 0 # DW_AT_decl_file
280 .byte 1 # DW_AT_decl_line
281 .long 130 # DW_AT_type
282 .byte 0 # End Of Children Mark
283 .byte 4 # Abbrev [4] 0x48:0x36 DW_TAG_subprogram
284 .byte 1 # DW_AT_low_pc
285 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
286 .byte 1 # DW_AT_frame_base
287 .byte 87
288 # DW_AT_call_all_calls
289 .byte 5 # DW_AT_name
290 .byte 0 # DW_AT_decl_file
291 .byte 7 # DW_AT_decl_line
292 .long 126 # DW_AT_type
293 # DW_AT_external
294 .byte 3 # Abbrev [3] 0x57:0xa DW_TAG_formal_parameter
295 .byte 1 # DW_AT_location
296 .byte 85
297 .byte 9 # DW_AT_name
298 .byte 0 # DW_AT_decl_file
299 .byte 7 # DW_AT_decl_line
300 .long 126 # DW_AT_type
301 .byte 3 # Abbrev [3] 0x61:0xa DW_TAG_formal_parameter
302 .byte 1 # DW_AT_location
303 .byte 84
304 .byte 10 # DW_AT_name
305 .byte 0 # DW_AT_decl_file
306 .byte 7 # DW_AT_decl_line
307 .long 135 # DW_AT_type
308 .byte 5 # Abbrev [5] 0x6b:0x9 DW_TAG_variable
309 .byte 0 # DW_AT_location
310 .byte 7 # DW_AT_name
311 .byte 0 # DW_AT_decl_file
312 .byte 8 # DW_AT_decl_line
313 .long 126 # DW_AT_type
314 .byte 5 # Abbrev [5] 0x74:0x9 DW_TAG_variable
315 .byte 1 # DW_AT_location
316 .byte 8 # DW_AT_name
317 .byte 0 # DW_AT_decl_file
318 .byte 9 # DW_AT_decl_line
319 .long 126 # DW_AT_type
320 .byte 0 # End Of Children Mark
321 .byte 6 # Abbrev [6] 0x7e:0x4 DW_TAG_base_type
322 .byte 6 # DW_AT_name
323 .byte 5 # DW_AT_encoding
324 .byte 4 # DW_AT_byte_size
325 .byte 7 # Abbrev [7] 0x82:0x5 DW_TAG_pointer_type
326 .long 126 # DW_AT_type
327 .byte 7 # Abbrev [7] 0x87:0x5 DW_TAG_pointer_type
328 .long 140 # DW_AT_type
329 .byte 7 # Abbrev [7] 0x8c:0x5 DW_TAG_pointer_type
330 .long 145 # DW_AT_type
331 .byte 6 # Abbrev [6] 0x91:0x4 DW_TAG_base_type
332 .byte 11 # DW_AT_name
333 .byte 6 # DW_AT_encoding
334 .byte 1 # DW_AT_byte_size
335 .byte 0 # End Of Children Mark
336 .Ldebug_info_end0:
337 .section .debug_str_offsets,"",@progbits
338 .long 52 # Length of String Offsets Set
339 .short 5
340 .short 0
341 .Lstr_offsets_base0:
342 .section .debug_str,"MS",@progbits,1
343 .Linfo_string0:
344 .asciz "clang version 15.0.0" # string offset=0
345 .Linfo_string1:
346 .asciz "main.cpp" # string offset=134
347 .Linfo_string2:
348 .asciz "/testLocListMultiple" # string offset=143
349 .Linfo_string3:
350 .asciz "_Z3usePiS_" # string offset=200
351 .Linfo_string4:
352 .asciz "use" # string offset=211
353 .Linfo_string5:
354 .asciz "main" # string offset=215
355 .Linfo_string6:
356 .asciz "int" # string offset=220
357 .Linfo_string7:
358 .asciz "x" # string offset=224
359 .Linfo_string8:
360 .asciz "y" # string offset=226
361 .Linfo_string9:
362 .asciz "argc" # string offset=228
363 .Linfo_string10:
364 .asciz "argv" # string offset=233
365 .Linfo_string11:
366 .asciz "char" # string offset=238
367 .section .debug_str_offsets,"",@progbits
368 .long .Linfo_string0
369 .long .Linfo_string1
370 .long .Linfo_string2
371 .long .Linfo_string3
372 .long .Linfo_string4
373 .long .Linfo_string5
374 .long .Linfo_string6
375 .long .Linfo_string7
376 .long .Linfo_string8
377 .long .Linfo_string9
378 .long .Linfo_string10
379 .long .Linfo_string11
380 .section .debug_addr,"",@progbits
381 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
382 .Ldebug_addr_start0:
383 .short 5 # DWARF version number
384 .byte 8 # Address size
385 .byte 0 # Segment selector size
386 .Laddr_table_base0:
387 .quad .Lfunc_begin0
388 .quad .Lfunc_begin1
389 .Ldebug_addr_end0:
390 .ident "clang version 15.0.0"
391 .section ".note.GNU-stack","",@progbits
392 .addrsig
393 .section .debug_line,"",@progbits
394 .Lline_table_start0: