xref: /llvm-project/llvm/test/CodeGen/ARM/disable-tail-calls.ll (revision e6c1b56780496a1680ef191ee0bb04dc2440d4f5)
1*e6c1b567SNAKAMURA Takumi; RUN: llc < %s -mtriple=arm-unknown-unknown | FileCheck %s --check-prefix=NO-OPTION
2*e6c1b567SNAKAMURA Takumi; RUN: llc < %s -mtriple=arm-unknown-unknown -disable-tail-calls | FileCheck %s --check-prefix=DISABLE-TRUE
3*e6c1b567SNAKAMURA Takumi; RUN: llc < %s -mtriple=arm-unknown-unknown -disable-tail-calls=false | FileCheck %s --check-prefix=DISABLE-FALSE
4d9699bc7SAkira Hatanaka
5d9699bc7SAkira Hatanaka; Check that command line option "-disable-tail-calls" overrides function
6d9699bc7SAkira Hatanaka; attribute "disable-tail-calls".
7d9699bc7SAkira Hatanaka
8d9699bc7SAkira Hatanaka; NO-OPTION-LABEL: {{\_?}}func_attr
9d9699bc7SAkira Hatanaka; NO-OPTION: bl {{\_?}}callee
10d9699bc7SAkira Hatanaka
11d9699bc7SAkira Hatanaka; DISABLE-FALSE-LABEL: {{\_?}}func_attr
12d9699bc7SAkira Hatanaka; DISABLE-FALSE: b {{\_?}}callee
13d9699bc7SAkira Hatanaka
14d9699bc7SAkira Hatanaka; DISABLE-TRUE-LABEL: {{\_?}}func_attr
15d9699bc7SAkira Hatanaka; DISABLE-TRUE: bl {{\_?}}callee
16d9699bc7SAkira Hatanaka
17d9699bc7SAkira Hatanakadefine i32 @func_attr(i32 %a) #0 {
18d9699bc7SAkira Hatanakaentry:
19d9699bc7SAkira Hatanaka  %call = tail call i32 @callee(i32 %a)
20d9699bc7SAkira Hatanaka  ret i32 %call
21d9699bc7SAkira Hatanaka}
22d9699bc7SAkira Hatanaka
23d9699bc7SAkira Hatanaka; NO-OPTION-LABEL: {{\_?}}func_noattr
24d9699bc7SAkira Hatanaka; NO-OPTION: b {{\_?}}callee
25d9699bc7SAkira Hatanaka
26d9699bc7SAkira Hatanaka; DISABLE-FALSE-LABEL: {{\_?}}func_noattr
27d9699bc7SAkira Hatanaka; DISABLE-FALSE: b {{\_?}}callee
28d9699bc7SAkira Hatanaka
29d9699bc7SAkira Hatanaka; DISABLE-TRUE-LABEL: {{\_?}}func_noattr
30d9699bc7SAkira Hatanaka; DISABLE-TRUE: bl {{\_?}}callee
31d9699bc7SAkira Hatanaka
32d9699bc7SAkira Hatanakadefine i32 @func_noattr(i32 %a) {
33d9699bc7SAkira Hatanakaentry:
34d9699bc7SAkira Hatanaka  %call = tail call i32 @callee(i32 %a)
35d9699bc7SAkira Hatanaka  ret i32 %call
36d9699bc7SAkira Hatanaka}
37d9699bc7SAkira Hatanaka
38d9699bc7SAkira Hatanakadeclare i32 @callee(i32)
39d9699bc7SAkira Hatanaka
40d9699bc7SAkira Hatanakaattributes #0 = { "disable-tail-calls"="true" }
41