mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
ARM: remove ancient -arm-tail-calls option
This option is from 2010, designed to work around a linker issue on Darwin for ARM. According to grosbach this is no longer an issue and this option can safely be removed. llvm-svn: 203576
This commit is contained in:
parent
75c162a52d
commit
d4d06957bd
@ -55,12 +55,6 @@ STATISTIC(NumTailCalls, "Number of tail calls");
|
||||
STATISTIC(NumMovwMovt, "Number of GAs materialized with movw + movt");
|
||||
STATISTIC(NumLoopByVals, "Number of loops generated for byval arguments");
|
||||
|
||||
// This option should go away when tail calls fully work.
|
||||
static cl::opt<bool>
|
||||
EnableARMTailCalls("arm-tail-calls", cl::Hidden,
|
||||
cl::desc("Generate tail calls (TEMPORARY OPTION)."),
|
||||
cl::init(false));
|
||||
|
||||
cl::opt<bool>
|
||||
EnableARMLongCalls("arm-long-calls", cl::Hidden,
|
||||
cl::desc("Generate calls via indirect call instructions"),
|
||||
@ -1446,7 +1440,7 @@ ARMTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
||||
bool isThisReturn = false;
|
||||
bool isSibCall = false;
|
||||
// Disable tail calls if they're not supported.
|
||||
if (!EnableARMTailCalls && !Subtarget->supportsTailCall())
|
||||
if (!Subtarget->supportsTailCall())
|
||||
isTailCall = false;
|
||||
if (isTailCall) {
|
||||
// Check if it's really possible to do a tail call.
|
||||
@ -2276,7 +2270,7 @@ bool ARMTargetLowering::isUsedByReturnOnly(SDNode *N, SDValue &Chain) const {
|
||||
}
|
||||
|
||||
bool ARMTargetLowering::mayBeEmittedAsTailCall(CallInst *CI) const {
|
||||
if (!EnableARMTailCalls && !Subtarget->supportsTailCall())
|
||||
if (!Subtarget->supportsTailCall())
|
||||
return false;
|
||||
|
||||
if (!CI->isTailCall())
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -relocation-model=pic -mcpu=cortex-a8 -arm-tail-calls=1 | FileCheck %s
|
||||
; RUN: llc < %s -relocation-model=pic -mcpu=cortex-a8 | FileCheck %s
|
||||
|
||||
target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:64-v128:32:128-a0:0:32-n32"
|
||||
target triple = "thumbv7-apple-darwin10"
|
||||
|
@ -1,11 +1,11 @@
|
||||
; RUN: llc < %s -arm-tail-calls=1 | FileCheck %s
|
||||
; RUN: llc < %s | FileCheck %s
|
||||
|
||||
; tail call inside a function where byval argument is splitted between
|
||||
; registers and stack is currently unsupported.
|
||||
; XFAIL: *
|
||||
|
||||
target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:64-v128:32:128-a0:0:32-n32"
|
||||
target triple = "thumbv7-apple-ios"
|
||||
target triple = "thumbv7-apple-ios5.0"
|
||||
|
||||
%struct.A = type <{ i16, i16, i32, i16, i16, i32, i16, [8 x %struct.B], [418 x i8], %struct.C }>
|
||||
%struct.B = type <{ i32, i16, i16 }>
|
||||
|
@ -1,7 +1,7 @@
|
||||
; RUN: llc < %s -mtriple=armv6-apple-ios -mattr=+vfp2 -arm-tail-calls | FileCheck %s -check-prefix=CHECKV6
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnueabi -relocation-model=pic -mattr=+vfp2 -arm-tail-calls | FileCheck %s -check-prefix=CHECKELF
|
||||
; RUN: llc < %s -mtriple=thumbv7-apple-ios -arm-tail-calls | FileCheck %s -check-prefix=CHECKT2D
|
||||
; RUN: llc < %s -mtriple=armv6-apple-ios5.0 -mattr=+vfp2 | FileCheck %s -check-prefix=CHECKV6
|
||||
; RUN: llc < %s -mtriple=thumbv7-apple-ios5.0 | FileCheck %s -check-prefix=CHECKT2D
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnueabi -relocation-model=pic -mattr=+vfp2 \
|
||||
; RUN: | FileCheck %s -check-prefix=CHECKELF
|
||||
|
||||
; Enable tailcall optimization for iOS 5.0
|
||||
; rdar://9120031
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llc -mtriple=thumbv7-linux-gnueabi -O0 -arm-tail-calls < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=thumbv7-linux-gnueabi -O0 < %s | FileCheck %s
|
||||
|
||||
; Primarily a non-crash test: Thumbv7 Linux does not have FastISel support,
|
||||
; which led (via a convoluted route) to DAG nodes after a TC_RETURN that
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnueabi -arm-tail-calls | FileCheck %s -check-prefix=CHECKELF
|
||||
; RUN: llc < %s -mtriple=thumbv7-apple-ios -arm-tail-calls | FileCheck %s -check-prefix=CHECKT2D
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnueabi | FileCheck %s -check-prefix=CHECKELF
|
||||
; RUN: llc < %s -mtriple=thumbv7-apple-ios5.0 | FileCheck %s -check-prefix=CHECKT2D
|
||||
|
||||
declare i16 @identity16(i16 returned %x)
|
||||
declare i32 @identity32(i32 returned %x)
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: llc < %s -mtriple=armv7 -arm-tail-calls | FileCheck %s
|
||||
; RUN: llc < %s -mtriple=armv7 | FileCheck %s
|
||||
|
||||
declare i16 @ret16(i16 returned)
|
||||
declare i32 @ret32(i32 returned)
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnueabi -arm-tail-calls | FileCheck %s -check-prefix=CHECKELF
|
||||
; RUN: llc < %s -mtriple=thumbv7-apple-ios -arm-tail-calls | FileCheck %s -check-prefix=CHECKT2D
|
||||
; RUN: llc < %s -mtriple=armv6-linux-gnueabi | FileCheck %s -check-prefix=CHECKELF
|
||||
; RUN: llc < %s -mtriple=thumbv7-apple-ios5.0 | FileCheck %s -check-prefix=CHECKT2D
|
||||
|
||||
%struct.A = type { i8 }
|
||||
%struct.B = type { i32 }
|
||||
|
Loading…
Reference in New Issue
Block a user