Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / bolt / test / X86 / Inputs / exc4sw.S
blob06bd54921e5de70ea6a36f6f0b344dd9967c82c8
1 // Generated from g++ exception4.cpp -fomit-frame-pointer -S -O3
2 // Manually modified to trigger shrink-wrapping in function main
3         .text
4         .p2align 4,,15
5         .globl  _Z3fooi
6         .type   _Z3fooi, @function
7 _Z3fooi:
8 .LFB12:
9         .cfi_startproc
10         subq    $8, %rsp
11         .cfi_def_cfa_offset 16
12         cmpl    $1, %edi
13         movl    $1, %edi
14         jle     .L2
15         call    __cxa_allocate_exception
16         xorl    %edx, %edx
17         movl    $_ZTI4ExcG, %esi
18         movq    %rax, %rdi
19         call    __cxa_throw
20 .L2:
21         call    __cxa_allocate_exception
22         xorl    %edx, %edx
23         movl    $_ZTI4ExcC, %esi
24         movq    %rax, %rdi
25         call    __cxa_throw
26         .cfi_endproc
27 .LFE12:
28         .size   _Z3fooi, .-_Z3fooi
29         .p2align 4,,15
30         .globl  _Z11filter_onlyi
31         .type   _Z11filter_onlyi, @function
32 _Z11filter_onlyi:
33 .LFB13:
34         .cfi_startproc
35         .cfi_personality 0x3,__gxx_personality_v0
36         .cfi_lsda 0x3,.LLSDA13
37         subq    $8, %rsp
38         .cfi_def_cfa_offset 16
39 .LEHB0:
40         call    _Z3fooi
41 .LEHE0:
42 .L8:
43         addq    $1, %rdx
44         movq    %rax, %rdi
45         je      .L7
46 .LEHB1:
47         call    _Unwind_Resume
48 .L7:
49         call    __cxa_call_unexpected
50 .LEHE1:
51         .cfi_endproc
52 .LFE13:
53         .globl  __gxx_personality_v0
54         .section        .gcc_except_table,"a",@progbits
55         .align 4
56 .LLSDA13:
57         .byte   0xff
58         .byte   0x3
59         .uleb128 .LLSDATT13-.LLSDATTD13
60 .LLSDATTD13:
61         .byte   0x1
62         .uleb128 .LLSDACSE13-.LLSDACSB13
63 .LLSDACSB13:
64         .uleb128 .LEHB0-.LFB13
65         .uleb128 .LEHE0-.LEHB0
66         .uleb128 .L8-.LFB13
67         .uleb128 0x1
68         .uleb128 .LEHB1-.LFB13
69         .uleb128 .LEHE1-.LEHB1
70         .uleb128 0
71         .uleb128 0
72 .LLSDACSE13:
73         .byte   0x7f
74         .byte   0
75         .align 4
76         .long   _ZTI4ExcA
77         .long   _ZTI4ExcB
78         .long   _ZTI4ExcC
79         .long   _ZTI4ExcD
80         .long   _ZTI4ExcE
81         .long   _ZTI4ExcF
82 .LLSDATT13:
83         .byte   0x1
84         .byte   0x2
85         .byte   0x3
86         .byte   0x4
87         .byte   0x5
88         .byte   0x6
89         .byte   0
90         .text
91         .size   _Z11filter_onlyi, .-_Z11filter_onlyi
92         .section        .rodata.str1.8,"aMS",@progbits,1
93         .align 8
94 .LC0:
95         .string "this statement is cold and should be outlined"
96         .text
97         .p2align 4,,15
98         .globl  _Z12never_throwsv
99         .type   _Z12never_throwsv, @function
100 _Z12never_throwsv:
101 .LFB14:
102         .cfi_startproc
103         .cfi_personality 0x3,__gxx_personality_v0
104         .cfi_lsda 0x3,.LLSDA14
105         subq    $8, %rsp
106         .cfi_def_cfa_offset 16
107         movl    $.LC0, %edi
108 .LEHB2:
109         call    puts
110 .LEHE2:
111         addq    $8, %rsp
112         .cfi_remember_state
113         .cfi_def_cfa_offset 8
114         ret
115 .L13:
116         .cfi_restore_state
117         addq    $1, %rdx
118         movq    %rax, %rdi
119         je      .L12
120 .LEHB3:
121         call    _Unwind_Resume
122 .L12:
123         call    __cxa_call_unexpected
124 .LEHE3:
125         .cfi_endproc
126 .LFE14:
127         .section        .gcc_except_table,"a",@progbits
128         .align 4
129 .LLSDA14:
130         .byte   0xff
131         .byte   0x3
132         .uleb128 .LLSDATT14-.LLSDATTD14
133 .LLSDATTD14:
134         .byte   0x1
135         .uleb128 .LLSDACSE14-.LLSDACSB14
136 .LLSDACSB14:
137         .uleb128 .LEHB2-.LFB14
138         .uleb128 .LEHE2-.LEHB2
139         .uleb128 .L13-.LFB14
140         .uleb128 0x1
141         .uleb128 .LEHB3-.LFB14
142         .uleb128 .LEHE3-.LEHB3
143         .uleb128 0
144         .uleb128 0
145 .LLSDACSE14:
146         .byte   0x7f
147         .byte   0
148         .align 4
149 .LLSDATT14:
150         .byte   0
151         .text
152         .size   _Z12never_throwsv, .-_Z12never_throwsv
153         .section        .rodata.str1.1,"aMS",@progbits,1
154 .LC1:
155         .string "catch 2"
156 .LC2:
157         .string "catch 1"
158 .LC3:
159         .string "caught ExcC"
160 .LC4:
161         .string "caught ExcG"
162         .section        .text.startup,"ax",@progbits
163         .p2align 4,,15
164         .globl  main
165         .type   main, @function
166 main:
167 .LFB15:
168         .cfi_startproc
169         .cfi_personality 0x3,__gxx_personality_v0
170         .cfi_lsda 0x3,.LLSDA15
171         pushq   %r13
172         .cfi_def_cfa_offset 16
173         .cfi_offset 13, -16
174         pushq   %r12
175         .cfi_def_cfa_offset 24
176         .cfi_offset 12, -24
177         pushq   %rbp
178         .cfi_def_cfa_offset 32
179         .cfi_offset 6, -32
180         movl    $10, %ebp
181         pushq   %rbx
182         .cfi_def_cfa_offset 40
183         .cfi_offset 3, -40
184         movl    %edi, %ebx
185         subq    $8, %rsp
186         .cfi_def_cfa_offset 48
187 .Lcheck:
188   cmpl $2, %ebx
189   je .Lmyexit
190 .Lloop_pre_header:
191         movl    $10, %ebp
192   jmp .L18
193 .L18:
194         cmpl    $2, %ebx
195         je      .Lmyexit
196 .L17:
197         movl    $1, %edi
198         call    __cxa_allocate_exception
199         xorl    %edx, %edx
200         movl    $_ZTI4ExcA, %esi
201         movq    %rax, %rdi
202 .LEHB4:
203         call    __cxa_throw
204 .LEHE4:
205 .L47:
206         call    _Z12never_throwsv
207         call    _Z12never_throwsv
208         .p2align 4,,5
209         jmp     .L17
210 .L37:
211         cmpq    $2, %rdx
212         movq    %rax, %rdi
213         jne     .L22
214         call    __cxa_begin_catch
215         movl    $.LC1, %edi
216 .LEHB5:
217         call    puts
218 .LEHE5:
219         movl    $8, %edi
220         call    __cxa_allocate_exception
221         movl    $4, %edi
222         movq    %rax, %r12
223 .LEHB6:
224         call    _Znwm
225 .LEHE6:
226         movl    $0, (%rax)
227         xorl    %edx, %edx
228         movq    %rax, (%r12)
229         movl    $_ZTIPi, %esi
230         movq    %r12, %rdi
231 .LEHB7:
232         call    __cxa_throw
233 .LEHE7:
234 .L39:
235         movq    %rax, %r13
236         movq    %r12, %rdi
237         movq    %r13, %r12
238         call    __cxa_free_exception
239 .L24:
240         call    __cxa_end_catch
241         movq    %r12, %rdi
242 .L22:
243         call    __cxa_begin_catch
244         movl    $.LC2, %edi
245 .LEHB8:
246         call    puts
247 .LEHE8:
248 .LEHB9:
249         call    __cxa_end_catch
250 .LEHE9:
251         movl    %ebx, %edi
252 .LEHB10:
253         call    _Z11filter_onlyi
254 .LEHE10:
255 .L38:
256         movq    %rax, %r12
257         jmp     .L24
258 .L41:
259         cmpq    $4, %rdx
260         movq    %rax, %rdi
261         movq    %rdx, %rax
262         jne     .L29
263         call    __cxa_begin_catch
264         movl    $.LC3, %edi
265 .LEHB11:
266         call    puts
267 .LEHE11:
268 .L35:
269         call    __cxa_end_catch
270         subl    $1, %ebp
271         jne     .L18
272 .Lmyexit:
273         popq    %rdx
274         .cfi_remember_state
275         .cfi_def_cfa_offset 40
276         popq    %rbx
277         .cfi_def_cfa_offset 32
278         popq    %rbp
279         .cfi_def_cfa_offset 24
280         popq    %r12
281         .cfi_def_cfa_offset 16
282         xorl    %eax, %eax
283         popq    %r13
284         .cfi_def_cfa_offset 8
285         ret
286 .L40:
287         .cfi_restore_state
288         movq    %rax, %rbx
289         call    __cxa_end_catch
290         movq    %rbx, %rdi
291 .LEHB12:
292         call    _Unwind_Resume
293 .LEHE12:
294 .L42:
295         movq    %rax, %r13
296         movq    %rdx, %r12
297         call    __cxa_end_catch
298         movq    %r13, %rdi
299         movq    %r12, %rax
300 .L29:
301         cmpq    $3, %rax
302         jne     .L46
303         call    __cxa_begin_catch
304         movl    $.LC4, %edi
305 .LEHB13:
306         call    puts
307 .LEHE13:
308         jmp     .L35
309 .L43:
310         movq    %rax, %rbx
311         call    __cxa_end_catch
312         movq    %rbx, %rdi
313 .L46:
314 .LEHB14:
315         call    _Unwind_Resume
316   jmp .L43
317 .LEHE14:
318         .cfi_endproc
319 .LFE15:
320         .section        .gcc_except_table,"a",@progbits
321         .align 4
322 .LLSDA15:
323         .byte   0xff
324         .byte   0x3
325         .uleb128 .LLSDATT15-.LLSDATTD15
326 .LLSDATTD15:
327         .byte   0x1
328         .uleb128 .LLSDACSE15-.LLSDACSB15
329 .LLSDACSB15:
330         .uleb128 .LEHB4-.LFB15
331         .uleb128 .LEHE4-.LEHB4
332         .uleb128 .L37-.LFB15
333         .uleb128 0x3
334         .uleb128 .LEHB5-.LFB15
335         .uleb128 .LEHE5-.LEHB5
336         .uleb128 .L38-.LFB15
337         .uleb128 0x5
338         .uleb128 .LEHB6-.LFB15
339         .uleb128 .LEHE6-.LEHB6
340         .uleb128 .L39-.LFB15
341         .uleb128 0x5
342         .uleb128 .LEHB7-.LFB15
343         .uleb128 .LEHE7-.LEHB7
344         .uleb128 .L38-.LFB15
345         .uleb128 0x5
346         .uleb128 .LEHB8-.LFB15
347         .uleb128 .LEHE8-.LEHB8
348         .uleb128 .L40-.LFB15
349         .uleb128 0
350         .uleb128 .LEHB9-.LFB15
351         .uleb128 .LEHE9-.LEHB9
352         .uleb128 0
353         .uleb128 0
354         .uleb128 .LEHB10-.LFB15
355         .uleb128 .LEHE10-.LEHB10
356         .uleb128 .L41-.LFB15
357         .uleb128 0x9
358         .uleb128 .LEHB11-.LFB15
359         .uleb128 .LEHE11-.LEHB11
360         .uleb128 .L42-.LFB15
361         .uleb128 0xb
362         .uleb128 .LEHB12-.LFB15
363         .uleb128 .LEHE12-.LEHB12
364         .uleb128 0
365         .uleb128 0
366         .uleb128 .LEHB13-.LFB15
367         .uleb128 .LEHE13-.LEHB13
368         .uleb128 .L43-.LFB15
369         .uleb128 0
370         .uleb128 .LEHB14-.LFB15
371         .uleb128 .LEHE14-.LEHB14
372         .uleb128 0
373         .uleb128 0
374 .LLSDACSE15:
375         .byte   0x1
376         .byte   0
377         .byte   0x2
378         .byte   0x7d
379         .byte   0
380         .byte   0x7b
381         .byte   0x3
382         .byte   0
383         .byte   0x4
384         .byte   0x7d
385         .byte   0
386         .byte   0x7b
387         .align 4
388         .long   _ZTI4ExcC
389         .long   _ZTI4ExcG
390         .long   _ZTI4ExcA
391         .long   0
393 .LLSDATT15:
394         .section        .text.startup
395         .size   main, .-main
396         .weak   _ZTI4ExcG
397         .section        .rodata._ZTI4ExcG,"aG",@progbits,_ZTI4ExcG,comdat
398         .align 16
399         .type   _ZTI4ExcG, @object
400         .size   _ZTI4ExcG, 16
401 _ZTI4ExcG:
402         .quad   _ZTVN10__cxxabiv117__class_type_infoE+16
403         .quad   _ZTS4ExcG
404         .weak   _ZTS4ExcG
405         .section        .rodata._ZTS4ExcG,"aG",@progbits,_ZTS4ExcG,comdat
406         .type   _ZTS4ExcG, @object
407         .size   _ZTS4ExcG, 6
408 _ZTS4ExcG:
409         .string "4ExcG"
410         .weak   _ZTI4ExcC
411         .section        .rodata._ZTI4ExcC,"aG",@progbits,_ZTI4ExcC,comdat
412         .align 16
413         .type   _ZTI4ExcC, @object
414         .size   _ZTI4ExcC, 16
415 _ZTI4ExcC:
416         .quad   _ZTVN10__cxxabiv117__class_type_infoE+16
417         .quad   _ZTS4ExcC
418         .weak   _ZTS4ExcC
419         .section        .rodata._ZTS4ExcC,"aG",@progbits,_ZTS4ExcC,comdat
420         .type   _ZTS4ExcC, @object
421         .size   _ZTS4ExcC, 6
422 _ZTS4ExcC:
423         .string "4ExcC"
424         .weak   _ZTI4ExcA
425         .section        .rodata._ZTI4ExcA,"aG",@progbits,_ZTI4ExcA,comdat
426         .align 16
427         .type   _ZTI4ExcA, @object
428         .size   _ZTI4ExcA, 16
429 _ZTI4ExcA:
430         .quad   _ZTVN10__cxxabiv117__class_type_infoE+16
431         .quad   _ZTS4ExcA
432         .weak   _ZTS4ExcA
433         .section        .rodata._ZTS4ExcA,"aG",@progbits,_ZTS4ExcA,comdat
434         .type   _ZTS4ExcA, @object
435         .size   _ZTS4ExcA, 6
436 _ZTS4ExcA:
437         .string "4ExcA"
438         .weak   _ZTI4ExcB
439         .section        .rodata._ZTI4ExcB,"aG",@progbits,_ZTI4ExcB,comdat
440         .align 16
441         .type   _ZTI4ExcB, @object
442         .size   _ZTI4ExcB, 16
443 _ZTI4ExcB:
444         .quad   _ZTVN10__cxxabiv117__class_type_infoE+16
445         .quad   _ZTS4ExcB
446         .weak   _ZTS4ExcB
447         .section        .rodata._ZTS4ExcB,"aG",@progbits,_ZTS4ExcB,comdat
448         .type   _ZTS4ExcB, @object
449         .size   _ZTS4ExcB, 6
450 _ZTS4ExcB:
451         .string "4ExcB"
452         .weak   _ZTI4ExcD
453         .section        .rodata._ZTI4ExcD,"aG",@progbits,_ZTI4ExcD,comdat
454         .align 16
455         .type   _ZTI4ExcD, @object
456         .size   _ZTI4ExcD, 16
457 _ZTI4ExcD:
458         .quad   _ZTVN10__cxxabiv117__class_type_infoE+16
459         .quad   _ZTS4ExcD
460         .weak   _ZTS4ExcD
461         .section        .rodata._ZTS4ExcD,"aG",@progbits,_ZTS4ExcD,comdat
462         .type   _ZTS4ExcD, @object
463         .size   _ZTS4ExcD, 6
464 _ZTS4ExcD:
465         .string "4ExcD"
466         .weak   _ZTI4ExcE
467         .section        .rodata._ZTI4ExcE,"aG",@progbits,_ZTI4ExcE,comdat
468         .align 16
469         .type   _ZTI4ExcE, @object
470         .size   _ZTI4ExcE, 16
471 _ZTI4ExcE:
472         .quad   _ZTVN10__cxxabiv117__class_type_infoE+16
473         .quad   _ZTS4ExcE
474         .weak   _ZTS4ExcE
475         .section        .rodata._ZTS4ExcE,"aG",@progbits,_ZTS4ExcE,comdat
476         .type   _ZTS4ExcE, @object
477         .size   _ZTS4ExcE, 6
478 _ZTS4ExcE:
479         .string "4ExcE"
480         .weak   _ZTI4ExcF
481         .section        .rodata._ZTI4ExcF,"aG",@progbits,_ZTI4ExcF,comdat
482         .align 16
483         .type   _ZTI4ExcF, @object
484         .size   _ZTI4ExcF, 16
485 _ZTI4ExcF:
486         .quad   _ZTVN10__cxxabiv117__class_type_infoE+16
487         .quad   _ZTS4ExcF
488         .weak   _ZTS4ExcF
489         .section        .rodata._ZTS4ExcF,"aG",@progbits,_ZTS4ExcF,comdat
490         .type   _ZTS4ExcF, @object
491         .size   _ZTS4ExcF, 6
492 _ZTS4ExcF:
493         .string "4ExcF"