PR11004: Inline memcpy to avoid generating nested call sequence. Un-XFAIL 2011-06-09-TailCallByVal and 2010-11-04-BigByval

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140516 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Meyer 2011-09-26 06:13:20 +00:00
parent 100d86ada5
commit 8f418b11d2
3 changed files with 4 additions and 7 deletions

View File

@ -1340,10 +1340,12 @@ ARMTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
SDValue Src = DAG.getNode(ISD::ADD, dl, getPointerTy(), Arg, SrcOffset); SDValue Src = DAG.getNode(ISD::ADD, dl, getPointerTy(), Arg, SrcOffset);
SDValue SizeNode = DAG.getConstant(Flags.getByValSize() - 4*offset, SDValue SizeNode = DAG.getConstant(Flags.getByValSize() - 4*offset,
MVT::i32); MVT::i32);
// TODO: Disable AlwaysInline when it becomes possible
// to emit a nested call sequence.
MemOpChains.push_back(DAG.getMemcpy(Chain, dl, Dst, Src, SizeNode, MemOpChains.push_back(DAG.getMemcpy(Chain, dl, Dst, Src, SizeNode,
Flags.getByValAlign(), Flags.getByValAlign(),
/*isVolatile=*/false, /*isVolatile=*/false,
/*AlwaysInline=*/false, /*AlwaysInline=*/true,
MachinePointerInfo(0), MachinePointerInfo(0),
MachinePointerInfo(0))); MachinePointerInfo(0)));

View File

@ -1,8 +1,4 @@
; DISABLED: llc < %s -relocation-model=pic -mcpu=cortex-a8 -arm-tail-calls=1 | FileCheck %s ; RUN: llc < %s -relocation-model=pic -mcpu=cortex-a8 -arm-tail-calls=1 | FileCheck %s
; RUN: false
; byval 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 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" target triple = "thumbv7-apple-darwin10"

View File

@ -1,6 +1,5 @@
; RUN: llc < %s ; RUN: llc < %s
; PR7170 ; PR7170
; XFAIL: arm
%big = type [131072 x i8] %big = type [131072 x i8]