diff options
author | Eric Christopher <echristo@gmail.com> | 2016-07-07 01:08:17 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2016-07-07 01:08:17 +0000 |
commit | 327e440c6ced6a40a067be4b71e0c17c1d952c53 (patch) | |
tree | 1464cb21483b286c6b6fd7d69b0ae901f613eeb0 /llvm/lib/Target/PowerPC/PPCISelLowering.cpp | |
parent | d9bc485cfee609dfb48eb3af48f8bcda98463094 (diff) | |
download | bcm5719-llvm-327e440c6ced6a40a067be4b71e0c17c1d952c53.tar.gz bcm5719-llvm-327e440c6ced6a40a067be4b71e0c17c1d952c53.zip |
Remove the plumbing for isDarwinABI from the PrepareTailCall hierarchy.
llvm-svn: 274714
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index 2cd4a52a821..909b7f9123d 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -4088,8 +4088,7 @@ static void StoreTailCallArgumentsToStackSlot( /// the appropriate stack slot for the tail call optimized function call. static SDValue EmitTailCallStoreFPAndRetAddr(SelectionDAG &DAG, SDValue Chain, SDValue OldRetAddr, SDValue OldFP, - int SPDiff, bool isDarwinABI, - const SDLoc &dl) { + int SPDiff, const SDLoc &dl) { if (SPDiff) { // Calculate the new stack slot for the return address. MachineFunction &MF = DAG.getMachineFunction(); @@ -4108,7 +4107,7 @@ static SDValue EmitTailCallStoreFPAndRetAddr(SelectionDAG &DAG, SDValue Chain, // When using the 32/64-bit SVR4 ABI there is no need to move the FP stack // slot as the FP is never overwritten. - if (isDarwinABI) { + if (Subtarget.isDarwinABI()) { int NewFPLoc = SPDiff + FL->getFramePointerSaveOffset(); int NewFPIdx = MF.getFrameInfo()->CreateFixedObject(SlotSize, NewFPLoc, true); @@ -4208,8 +4207,8 @@ static void LowerMemOpCallTo( static void PrepareTailCall(SelectionDAG &DAG, SDValue &InFlag, SDValue &Chain, - const SDLoc &dl, int SPDiff, unsigned NumBytes, - SDValue LROp, SDValue FPOp, bool isDarwinABI, + const SDLoc &dl, int SPDiff, unsigned NumBytes, SDValue LROp, + SDValue FPOp, SmallVectorImpl<TailCallArgumentInfo> &TailCallArguments) { // Emit a sequence of copyto/copyfrom virtual registers for arguments that // might overwrite each other in case of tail call optimization. @@ -4222,8 +4221,7 @@ PrepareTailCall(SelectionDAG &DAG, SDValue &InFlag, SDValue &Chain, Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains2); // Store the return address to the appropriate stack slot. - Chain = EmitTailCallStoreFPAndRetAddr(DAG, Chain, LROp, FPOp, SPDiff, - isDarwinABI, dl); + Chain = EmitTailCallStoreFPAndRetAddr(DAG, Chain, LROp, FPOp, SPDiff, dl); // Emit callseq_end just before tailcall node. Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(NumBytes, dl, true), @@ -4870,7 +4868,7 @@ SDValue PPCTargetLowering::LowerCall_32SVR4( } if (isTailCall) - PrepareTailCall(DAG, InFlag, Chain, dl, SPDiff, NumBytes, LROp, FPOp, false, + PrepareTailCall(DAG, InFlag, Chain, dl, SPDiff, NumBytes, LROp, FPOp, TailCallArguments); return FinishCall(CallConv, dl, isTailCall, isVarArg, IsPatchPoint, @@ -5524,7 +5522,7 @@ SDValue PPCTargetLowering::LowerCall_64SVR4( } if (isTailCall && !IsSibCall) - PrepareTailCall(DAG, InFlag, Chain, dl, SPDiff, NumBytes, LROp, FPOp, true, + PrepareTailCall(DAG, InFlag, Chain, dl, SPDiff, NumBytes, LROp, FPOp, TailCallArguments); return FinishCall(CallConv, dl, isTailCall, isVarArg, IsPatchPoint, hasNest, @@ -5913,7 +5911,7 @@ SDValue PPCTargetLowering::LowerCall_Darwin( } if (isTailCall) - PrepareTailCall(DAG, InFlag, Chain, dl, SPDiff, NumBytes, LROp, FPOp, true, + PrepareTailCall(DAG, InFlag, Chain, dl, SPDiff, NumBytes, LROp, FPOp, TailCallArguments); return FinishCall(CallConv, dl, isTailCall, isVarArg, IsPatchPoint, |