NAKAMURA Takumi | e6c1b56 | 2015-06-09 23:33:25 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=arm-unknown-unknown | FileCheck %s --check-prefix=NO-OPTION |
| 2 | ; RUN: llc < %s -mtriple=arm-unknown-unknown -disable-tail-calls | FileCheck %s --check-prefix=DISABLE-TRUE |
| 3 | ; RUN: llc < %s -mtriple=arm-unknown-unknown -disable-tail-calls=false | FileCheck %s --check-prefix=DISABLE-FALSE |
Akira Hatanaka | d9699bc | 2015-06-09 19:07:19 +0000 | [diff] [blame] | 4 | |
| 5 | ; Check that command line option "-disable-tail-calls" overrides function |
| 6 | ; attribute "disable-tail-calls". |
| 7 | |
| 8 | ; NO-OPTION-LABEL: {{\_?}}func_attr |
| 9 | ; NO-OPTION: bl {{\_?}}callee |
| 10 | |
| 11 | ; DISABLE-FALSE-LABEL: {{\_?}}func_attr |
| 12 | ; DISABLE-FALSE: b {{\_?}}callee |
| 13 | |
| 14 | ; DISABLE-TRUE-LABEL: {{\_?}}func_attr |
| 15 | ; DISABLE-TRUE: bl {{\_?}}callee |
| 16 | |
| 17 | define i32 @func_attr(i32 %a) #0 { |
| 18 | entry: |
| 19 | %call = tail call i32 @callee(i32 %a) |
| 20 | ret i32 %call |
| 21 | } |
| 22 | |
| 23 | ; NO-OPTION-LABEL: {{\_?}}func_noattr |
| 24 | ; NO-OPTION: b {{\_?}}callee |
| 25 | |
| 26 | ; DISABLE-FALSE-LABEL: {{\_?}}func_noattr |
| 27 | ; DISABLE-FALSE: b {{\_?}}callee |
| 28 | |
| 29 | ; DISABLE-TRUE-LABEL: {{\_?}}func_noattr |
| 30 | ; DISABLE-TRUE: bl {{\_?}}callee |
| 31 | |
| 32 | define i32 @func_noattr(i32 %a) { |
| 33 | entry: |
| 34 | %call = tail call i32 @callee(i32 %a) |
| 35 | ret i32 %call |
| 36 | } |
| 37 | |
| 38 | declare i32 @callee(i32) |
| 39 | |
| 40 | attributes #0 = { "disable-tail-calls"="true" } |