mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-22 13:29:44 +00:00
Use the options in the ARMISelLowering to control whether tail calls are optimised or not. Previously, this option was entirely ignored on the ARM target and only honoured on x86. This option is mostly useful in profiling scenarios. The default remains that tail call optimisations will be applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203577 91177308-0d34-0410-b5e6-96231b3b80d8
22 lines
485 B
LLVM
22 lines
485 B
LLVM
; RUN: llc -mtriple armv7 -O0 -o - < %s | FileCheck %s -check-prefix CHECK-TAIL
|
|
; RUN: llc -mtriple armv7 -O0 -disable-tail-calls -o - < %s \
|
|
; RUN: | FileCheck %s -check-prefix CHECK-NO-TAIL
|
|
|
|
declare i32 @callee(i32 %i)
|
|
|
|
define i32 @caller(i32 %i) {
|
|
entry:
|
|
%r = tail call i32 @callee(i32 %i)
|
|
ret i32 %r
|
|
}
|
|
|
|
; CHECK-LABEL: caller
|
|
; CHECK-TAIL: b callee
|
|
|
|
; CHECK-LABEL: caller
|
|
; CHECK-NO-TAIL: push {lr}
|
|
; CHECK-NO-TAIL: bl callee
|
|
; CHECK-NO-TAIL: pop {lr}
|
|
; CHECK-NO-TAIL: bx lr
|
|
|