From cde1f2eae22be05c4a68d0e8c77c58f1883d332b Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Tue, 11 Mar 2014 15:09:44 +0000 Subject: ARM: enable tail call optimisation on Thumb 2 Tail call optimisation was previously disabled on all targets other than iOS5.0+. This enables the tail call optimisation on all Thumb 2 capable platforms. The test adjustments are to remove the IR hint "tail" to function invocation. The tests were designed assuming that tail call optimisations would not kick in which no longer holds true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203575 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMSubtarget.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp index d510e7ebf1..69b496f386 100644 --- a/lib/Target/ARM/ARMSubtarget.cpp +++ b/lib/Target/ARM/ARMSubtarget.cpp @@ -219,8 +219,10 @@ void ARMSubtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) { if (isTargetMachO()) { IsR9Reserved = ReserveR9 | !HasV6Ops; SupportsTailCall = !isTargetIOS() || !getTargetTriple().isOSVersionLT(5, 0); - } else + } else { IsR9Reserved = ReserveR9; + SupportsTailCall = !isThumb1Only(); + } if (!isThumb() || hasThumb2()) PostRAScheduler = true; -- cgit v1.2.3