mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 04:33:05 +00:00
Temporarily disable tail calls on ARM to work around some linker problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111050 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
38aa2871fc
commit
703af3ab12
@ -51,6 +51,12 @@ using namespace llvm;
|
|||||||
|
|
||||||
STATISTIC(NumTailCalls, "Number of tail calls");
|
STATISTIC(NumTailCalls, "Number of tail calls");
|
||||||
|
|
||||||
|
// 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));
|
||||||
|
|
||||||
// This option should go away when Machine LICM is smart enough to hoist a
|
// This option should go away when Machine LICM is smart enough to hoist a
|
||||||
// reg-to-reg VDUP.
|
// reg-to-reg VDUP.
|
||||||
static cl::opt<bool>
|
static cl::opt<bool>
|
||||||
@ -1117,6 +1123,9 @@ ARMTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
|
|||||||
MachineFunction &MF = DAG.getMachineFunction();
|
MachineFunction &MF = DAG.getMachineFunction();
|
||||||
bool IsStructRet = (Outs.empty()) ? false : Outs[0].Flags.isSRet();
|
bool IsStructRet = (Outs.empty()) ? false : Outs[0].Flags.isSRet();
|
||||||
bool IsSibCall = false;
|
bool IsSibCall = false;
|
||||||
|
// Temporarily disable tail calls so things don't break.
|
||||||
|
if (!EnableARMTailCalls)
|
||||||
|
isTailCall = false;
|
||||||
if (isTailCall) {
|
if (isTailCall) {
|
||||||
// Check if it's really possible to do a tail call.
|
// Check if it's really possible to do a tail call.
|
||||||
isTailCall = IsEligibleForTailCallOptimization(Callee, CallConv,
|
isTailCall = IsEligibleForTailCallOptimization(Callee, CallConv,
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
; RUN: llc < %s -march=arm -mtriple=armv4t-unknown-linux-gnueabi | FileCheck %s
|
; RUN: llc < %s -march=arm -mtriple=armv4t-unknown-linux-gnueabi | FileCheck %s
|
||||||
; PR 7433
|
; PR 7433
|
||||||
|
; XFAIL: *
|
||||||
|
|
||||||
%0 = type { i8*, i8* }
|
%0 = type { i8*, i8* }
|
||||||
%1 = type { i8*, i8*, i8* }
|
%1 = type { i8*, i8*, i8* }
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
; RUN: llc < %s -march=arm -mtriple=arm-apple-darwin -mattr=+v5t | FileCheck %s -check-prefix=CHECKV5
|
; RUN: llc < %s -march=arm -mtriple=arm-apple-darwin -mattr=+v5t | FileCheck %s -check-prefix=CHECKV5
|
||||||
; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi\
|
; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi\
|
||||||
; RUN: -relocation-model=pic | FileCheck %s -check-prefix=CHECKELF
|
; RUN: -relocation-model=pic | FileCheck %s -check-prefix=CHECKELF
|
||||||
|
; XFAIL: *
|
||||||
|
|
||||||
@t = weak global i32 ()* null ; <i32 ()**> [#uses=1]
|
@t = weak global i32 ()* null ; <i32 ()**> [#uses=1]
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mattr=+thumb2 | FileCheck %s -check-prefix=DARWIN
|
; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mattr=+thumb2 | FileCheck %s -check-prefix=DARWIN
|
||||||
; RUN: llc < %s -mtriple=thumbv7-linux -mattr=+thumb2 | FileCheck %s -check-prefix=LINUX
|
; RUN: llc < %s -mtriple=thumbv7-linux -mattr=+thumb2 | FileCheck %s -check-prefix=LINUX
|
||||||
|
; XFAIL: *
|
||||||
|
|
||||||
@t = weak global i32 ()* null ; <i32 ()**> [#uses=1]
|
@t = weak global i32 ()* null ; <i32 ()**> [#uses=1]
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
; RUN: llc < %s -mtriple=thumbv7-apple-darwin | FileCheck %s
|
; RUN: llc < %s -mtriple=thumbv7-apple-darwin | FileCheck %s
|
||||||
|
; XFAIL: *
|
||||||
|
|
||||||
define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
|
define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
|
||||||
; CHECK: t1:
|
; CHECK: t1:
|
||||||
|
Loading…
Reference in New Issue
Block a user