Skip to content

Commit 46e215f

Browse files
committed
[RISCV][CFI] add branch_and_tail_call test for CFIFixup
1 parent 9ce5699 commit 46e215f

File tree

1 file changed

+269
-0
lines changed

1 file changed

+269
-0
lines changed

llvm/test/CodeGen/RISCV/frame-info.ll

Lines changed: 269 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@
88
; RUN: llc -mtriple=riscv64 -frame-pointer=all -verify-machineinstrs < %s \
99
; RUN: | FileCheck -check-prefix=RV64-WITHFP %s
1010

11+
; RUN: llc -mtriple=riscv32 --enable-shrink-wrap=false < %s \
12+
; RUN: | FileCheck -check-prefix=RV32-DISABLESW %s
13+
; RUN: llc -mtriple=riscv64 --enable-shrink-wrap=false < %s \
14+
; RUN: | FileCheck -check-prefix=RV64-DISABLESW %s
15+
; RUN: llc -mtriple=riscv32 -frame-pointer=all --enable-shrink-wrap=false -verify-machineinstrs < %s \
16+
; RUN: | FileCheck -check-prefix=RV32-WITHFP-DISABLESW %s
17+
; RUN: llc -mtriple=riscv64 -frame-pointer=all --enable-shrink-wrap=false -verify-machineinstrs < %s \
18+
; RUN: | FileCheck -check-prefix=RV64-WITHFP-DISABLESW %s
19+
1120
define void @trivial() {
1221
; RV32-LABEL: trivial:
1322
; RV32: # %bb.0:
@@ -52,6 +61,50 @@ define void @trivial() {
5261
; RV64-WITHFP-NEXT: addi sp, sp, 16
5362
; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
5463
; RV64-WITHFP-NEXT: ret
64+
;
65+
; RV32-DISABLESW-LABEL: trivial:
66+
; RV32-DISABLESW: # %bb.0:
67+
; RV32-DISABLESW-NEXT: ret
68+
;
69+
; RV64-DISABLESW-LABEL: trivial:
70+
; RV64-DISABLESW: # %bb.0:
71+
; RV64-DISABLESW-NEXT: ret
72+
;
73+
; RV32-WITHFP-DISABLESW-LABEL: trivial:
74+
; RV32-WITHFP-DISABLESW: # %bb.0:
75+
; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, -16
76+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16
77+
; RV32-WITHFP-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
78+
; RV32-WITHFP-DISABLESW-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
79+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -4
80+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -8
81+
; RV32-WITHFP-DISABLESW-NEXT: addi s0, sp, 16
82+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0
83+
; RV32-WITHFP-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
84+
; RV32-WITHFP-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
85+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore ra
86+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore s0
87+
; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, 16
88+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0
89+
; RV32-WITHFP-DISABLESW-NEXT: ret
90+
;
91+
; RV64-WITHFP-DISABLESW-LABEL: trivial:
92+
; RV64-WITHFP-DISABLESW: # %bb.0:
93+
; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, -16
94+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16
95+
; RV64-WITHFP-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
96+
; RV64-WITHFP-DISABLESW-NEXT: sd s0, 0(sp) # 8-byte Folded Spill
97+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -8
98+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -16
99+
; RV64-WITHFP-DISABLESW-NEXT: addi s0, sp, 16
100+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0
101+
; RV64-WITHFP-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
102+
; RV64-WITHFP-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload
103+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore ra
104+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore s0
105+
; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, 16
106+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0
107+
; RV64-WITHFP-DISABLESW-NEXT: ret
55108
ret void
56109
}
57110

@@ -159,6 +212,110 @@ define void @stack_alloc(i32 signext %size) {
159212
; RV64-WITHFP-NEXT: addi sp, sp, 16
160213
; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
161214
; RV64-WITHFP-NEXT: ret
215+
;
216+
; RV32-DISABLESW-LABEL: stack_alloc:
217+
; RV32-DISABLESW: # %bb.0: # %entry
218+
; RV32-DISABLESW-NEXT: addi sp, sp, -16
219+
; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 16
220+
; RV32-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
221+
; RV32-DISABLESW-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
222+
; RV32-DISABLESW-NEXT: .cfi_offset ra, -4
223+
; RV32-DISABLESW-NEXT: .cfi_offset s0, -8
224+
; RV32-DISABLESW-NEXT: addi s0, sp, 16
225+
; RV32-DISABLESW-NEXT: .cfi_def_cfa s0, 0
226+
; RV32-DISABLESW-NEXT: addi a0, a0, 15
227+
; RV32-DISABLESW-NEXT: andi a0, a0, -16
228+
; RV32-DISABLESW-NEXT: sub a0, sp, a0
229+
; RV32-DISABLESW-NEXT: mv sp, a0
230+
; RV32-DISABLESW-NEXT: call callee_with_args
231+
; RV32-DISABLESW-NEXT: addi sp, s0, -16
232+
; RV32-DISABLESW-NEXT: .cfi_def_cfa sp, 16
233+
; RV32-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
234+
; RV32-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
235+
; RV32-DISABLESW-NEXT: .cfi_restore ra
236+
; RV32-DISABLESW-NEXT: .cfi_restore s0
237+
; RV32-DISABLESW-NEXT: addi sp, sp, 16
238+
; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 0
239+
; RV32-DISABLESW-NEXT: ret
240+
;
241+
; RV64-DISABLESW-LABEL: stack_alloc:
242+
; RV64-DISABLESW: # %bb.0: # %entry
243+
; RV64-DISABLESW-NEXT: addi sp, sp, -16
244+
; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 16
245+
; RV64-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
246+
; RV64-DISABLESW-NEXT: sd s0, 0(sp) # 8-byte Folded Spill
247+
; RV64-DISABLESW-NEXT: .cfi_offset ra, -8
248+
; RV64-DISABLESW-NEXT: .cfi_offset s0, -16
249+
; RV64-DISABLESW-NEXT: addi s0, sp, 16
250+
; RV64-DISABLESW-NEXT: .cfi_def_cfa s0, 0
251+
; RV64-DISABLESW-NEXT: slli a0, a0, 32
252+
; RV64-DISABLESW-NEXT: srli a0, a0, 32
253+
; RV64-DISABLESW-NEXT: addi a0, a0, 15
254+
; RV64-DISABLESW-NEXT: andi a0, a0, -16
255+
; RV64-DISABLESW-NEXT: sub a0, sp, a0
256+
; RV64-DISABLESW-NEXT: mv sp, a0
257+
; RV64-DISABLESW-NEXT: call callee_with_args
258+
; RV64-DISABLESW-NEXT: addi sp, s0, -16
259+
; RV64-DISABLESW-NEXT: .cfi_def_cfa sp, 16
260+
; RV64-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
261+
; RV64-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload
262+
; RV64-DISABLESW-NEXT: .cfi_restore ra
263+
; RV64-DISABLESW-NEXT: .cfi_restore s0
264+
; RV64-DISABLESW-NEXT: addi sp, sp, 16
265+
; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 0
266+
; RV64-DISABLESW-NEXT: ret
267+
;
268+
; RV32-WITHFP-DISABLESW-LABEL: stack_alloc:
269+
; RV32-WITHFP-DISABLESW: # %bb.0: # %entry
270+
; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, -16
271+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16
272+
; RV32-WITHFP-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
273+
; RV32-WITHFP-DISABLESW-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
274+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -4
275+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -8
276+
; RV32-WITHFP-DISABLESW-NEXT: addi s0, sp, 16
277+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0
278+
; RV32-WITHFP-DISABLESW-NEXT: addi a0, a0, 15
279+
; RV32-WITHFP-DISABLESW-NEXT: andi a0, a0, -16
280+
; RV32-WITHFP-DISABLESW-NEXT: sub a0, sp, a0
281+
; RV32-WITHFP-DISABLESW-NEXT: mv sp, a0
282+
; RV32-WITHFP-DISABLESW-NEXT: call callee_with_args
283+
; RV32-WITHFP-DISABLESW-NEXT: addi sp, s0, -16
284+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa sp, 16
285+
; RV32-WITHFP-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
286+
; RV32-WITHFP-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
287+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore ra
288+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore s0
289+
; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, 16
290+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0
291+
; RV32-WITHFP-DISABLESW-NEXT: ret
292+
;
293+
; RV64-WITHFP-DISABLESW-LABEL: stack_alloc:
294+
; RV64-WITHFP-DISABLESW: # %bb.0: # %entry
295+
; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, -16
296+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16
297+
; RV64-WITHFP-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
298+
; RV64-WITHFP-DISABLESW-NEXT: sd s0, 0(sp) # 8-byte Folded Spill
299+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -8
300+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -16
301+
; RV64-WITHFP-DISABLESW-NEXT: addi s0, sp, 16
302+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0
303+
; RV64-WITHFP-DISABLESW-NEXT: slli a0, a0, 32
304+
; RV64-WITHFP-DISABLESW-NEXT: srli a0, a0, 32
305+
; RV64-WITHFP-DISABLESW-NEXT: addi a0, a0, 15
306+
; RV64-WITHFP-DISABLESW-NEXT: andi a0, a0, -16
307+
; RV64-WITHFP-DISABLESW-NEXT: sub a0, sp, a0
308+
; RV64-WITHFP-DISABLESW-NEXT: mv sp, a0
309+
; RV64-WITHFP-DISABLESW-NEXT: call callee_with_args
310+
; RV64-WITHFP-DISABLESW-NEXT: addi sp, s0, -16
311+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa sp, 16
312+
; RV64-WITHFP-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
313+
; RV64-WITHFP-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload
314+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore ra
315+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore s0
316+
; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, 16
317+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0
318+
; RV64-WITHFP-DISABLESW-NEXT: ret
162319
entry:
163320
%0 = alloca i8, i32 %size, align 16
164321
call void @callee_with_args(ptr nonnull %0)
@@ -249,6 +406,118 @@ define void @branch_and_tail_call(i1 %a) {
249406
; RV64-WITHFP-NEXT: addi sp, sp, 16
250407
; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
251408
; RV64-WITHFP-NEXT: ret
409+
;
410+
; RV32-DISABLESW-LABEL: branch_and_tail_call:
411+
; RV32-DISABLESW: # %bb.0:
412+
; RV32-DISABLESW-NEXT: addi sp, sp, -16
413+
; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 16
414+
; RV32-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
415+
; RV32-DISABLESW-NEXT: .cfi_offset ra, -4
416+
; RV32-DISABLESW-NEXT: .cfi_remember_state
417+
; RV32-DISABLESW-NEXT: andi a0, a0, 1
418+
; RV32-DISABLESW-NEXT: beqz a0, .LBB2_2
419+
; RV32-DISABLESW-NEXT: # %bb.1: # %blue_pill
420+
; RV32-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
421+
; RV32-DISABLESW-NEXT: .cfi_restore ra
422+
; RV32-DISABLESW-NEXT: addi sp, sp, 16
423+
; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 0
424+
; RV32-DISABLESW-NEXT: tail callee1
425+
; RV32-DISABLESW-NEXT: .LBB2_2: # %red_pill
426+
; RV32-DISABLESW-NEXT: .cfi_restore_state
427+
; RV32-DISABLESW-NEXT: call callee2
428+
; RV32-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
429+
; RV32-DISABLESW-NEXT: .cfi_restore ra
430+
; RV32-DISABLESW-NEXT: addi sp, sp, 16
431+
; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 0
432+
; RV32-DISABLESW-NEXT: ret
433+
;
434+
; RV64-DISABLESW-LABEL: branch_and_tail_call:
435+
; RV64-DISABLESW: # %bb.0:
436+
; RV64-DISABLESW-NEXT: addi sp, sp, -16
437+
; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 16
438+
; RV64-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
439+
; RV64-DISABLESW-NEXT: .cfi_offset ra, -8
440+
; RV64-DISABLESW-NEXT: .cfi_remember_state
441+
; RV64-DISABLESW-NEXT: andi a0, a0, 1
442+
; RV64-DISABLESW-NEXT: beqz a0, .LBB2_2
443+
; RV64-DISABLESW-NEXT: # %bb.1: # %blue_pill
444+
; RV64-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
445+
; RV64-DISABLESW-NEXT: .cfi_restore ra
446+
; RV64-DISABLESW-NEXT: addi sp, sp, 16
447+
; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 0
448+
; RV64-DISABLESW-NEXT: tail callee1
449+
; RV64-DISABLESW-NEXT: .LBB2_2: # %red_pill
450+
; RV64-DISABLESW-NEXT: .cfi_restore_state
451+
; RV64-DISABLESW-NEXT: call callee2
452+
; RV64-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
453+
; RV64-DISABLESW-NEXT: .cfi_restore ra
454+
; RV64-DISABLESW-NEXT: addi sp, sp, 16
455+
; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 0
456+
; RV64-DISABLESW-NEXT: ret
457+
;
458+
; RV32-WITHFP-DISABLESW-LABEL: branch_and_tail_call:
459+
; RV32-WITHFP-DISABLESW: # %bb.0:
460+
; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, -16
461+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16
462+
; RV32-WITHFP-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
463+
; RV32-WITHFP-DISABLESW-NEXT: sw s0, 8(sp) # 4-byte Folded Spill
464+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -4
465+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -8
466+
; RV32-WITHFP-DISABLESW-NEXT: addi s0, sp, 16
467+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0
468+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_remember_state
469+
; RV32-WITHFP-DISABLESW-NEXT: andi a0, a0, 1
470+
; RV32-WITHFP-DISABLESW-NEXT: beqz a0, .LBB2_2
471+
; RV32-WITHFP-DISABLESW-NEXT: # %bb.1: # %blue_pill
472+
; RV32-WITHFP-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
473+
; RV32-WITHFP-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
474+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore ra
475+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore s0
476+
; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, 16
477+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0
478+
; RV32-WITHFP-DISABLESW-NEXT: tail callee1
479+
; RV32-WITHFP-DISABLESW-NEXT: .LBB2_2: # %red_pill
480+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore_state
481+
; RV32-WITHFP-DISABLESW-NEXT: call callee2
482+
; RV32-WITHFP-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
483+
; RV32-WITHFP-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload
484+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore ra
485+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore s0
486+
; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, 16
487+
; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0
488+
; RV32-WITHFP-DISABLESW-NEXT: ret
489+
;
490+
; RV64-WITHFP-DISABLESW-LABEL: branch_and_tail_call:
491+
; RV64-WITHFP-DISABLESW: # %bb.0:
492+
; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, -16
493+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16
494+
; RV64-WITHFP-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
495+
; RV64-WITHFP-DISABLESW-NEXT: sd s0, 0(sp) # 8-byte Folded Spill
496+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -8
497+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -16
498+
; RV64-WITHFP-DISABLESW-NEXT: addi s0, sp, 16
499+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0
500+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_remember_state
501+
; RV64-WITHFP-DISABLESW-NEXT: andi a0, a0, 1
502+
; RV64-WITHFP-DISABLESW-NEXT: beqz a0, .LBB2_2
503+
; RV64-WITHFP-DISABLESW-NEXT: # %bb.1: # %blue_pill
504+
; RV64-WITHFP-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
505+
; RV64-WITHFP-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload
506+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore ra
507+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore s0
508+
; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, 16
509+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0
510+
; RV64-WITHFP-DISABLESW-NEXT: tail callee1
511+
; RV64-WITHFP-DISABLESW-NEXT: .LBB2_2: # %red_pill
512+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore_state
513+
; RV64-WITHFP-DISABLESW-NEXT: call callee2
514+
; RV64-WITHFP-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
515+
; RV64-WITHFP-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload
516+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore ra
517+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore s0
518+
; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, 16
519+
; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0
520+
; RV64-WITHFP-DISABLESW-NEXT: ret
252521
br i1 %a, label %blue_pill, label %red_pill
253522
blue_pill:
254523
tail call void @callee1()

0 commit comments

Comments
 (0)