• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; Check that command line option "-disable-tail-calls" overrides function
2; attribute "disable-tail-calls".
3
4; RUN: llc < %s -mtriple=riscv32-unknown-elf \
5; RUN: | FileCheck %s --check-prefixes=CALLER1,NOTAIL
6; RUN: llc < %s -mtriple=riscv32-unknown-elf -disable-tail-calls \
7; RUN: | FileCheck %s --check-prefixes=CALLER1,NOTAIL
8; RUN: llc < %s -mtriple=riscv32-unknown-elf -disable-tail-calls=false \
9; RUN: | FileCheck %s --check-prefixes=CALLER1,TAIL
10
11; RUN: llc < %s -mtriple=riscv32-unknown-elf \
12; RUN: | FileCheck %s --check-prefixes=CALLER2,TAIL
13; RUN: llc < %s -mtriple=riscv32-unknown-elf -disable-tail-calls \
14; RUN: | FileCheck %s --check-prefixes=CALLER2,NOTAIL
15; RUN: llc < %s -mtriple=riscv32-unknown-elf -disable-tail-calls=false \
16; RUN: | FileCheck %s --check-prefixes=CALLER2,TAIL
17
18; RUN: llc < %s -mtriple=riscv32-unknown-elf \
19; RUN: | FileCheck %s --check-prefixes=CALLER3,TAIL
20; RUN: llc < %s -mtriple=riscv32-unknown-elf -disable-tail-calls \
21; RUN: | FileCheck %s --check-prefixes=CALLER3,NOTAIL
22; RUN: llc < %s -mtriple=riscv32-unknown-elf -disable-tail-calls=false \
23; RUN: | FileCheck %s --check-prefixes=CALLER3,TAIL
24
25; CALLER1-LABEL: {{\_?}}caller1
26; CALLER2-LABEL: {{\_?}}caller2
27; CALLER3-LABEL: {{\_?}}caller3
28; NOTAIL-NOT: tail callee
29; NOTAIL: call callee
30; TAIL: tail callee
31; TAIL-NOT: call callee
32
33; Function with attribute #0 = { "disable-tail-calls"="true" }
34define i32 @caller1(i32 %a) #0 {
35entry:
36  %call = tail call i32 @callee(i32 %a)
37  ret i32 %call
38}
39
40; Function with attribute #1 = { "disable-tail-calls"="false" }
41define i32 @caller2(i32 %a) #0 {
42entry:
43  %call = tail call i32 @callee(i32 %a)
44  ret i32 %call
45}
46
47define i32 @caller3(i32 %a) {
48entry:
49  %call = tail call i32 @callee(i32 %a)
50  ret i32 %call
51}
52
53declare i32 @callee(i32)
54
55attributes #0 = { "disable-tail-calls"="true" }
56attributes #1 = { "disable-tail-calls"="false" }
57