[llvm] r274710 - Sink call to get the MachineFunction into EmitTailCallStoreFPAndRetAddr

Eric Christopher via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 6 17:39:30 PDT 2016


Author: echristo
Date: Wed Jul  6 19:39:30 2016
New Revision: 274710

URL: http://llvm.org/viewvc/llvm-project?rev=274710&view=rev
Log:
Sink call to get the MachineFunction into EmitTailCallStoreFPAndRetAddr
and remove the argument.

Modified:
    llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp

Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=274710&r1=274709&r2=274710&view=diff
==============================================================================
--- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp Wed Jul  6 19:39:30 2016
@@ -4086,8 +4086,7 @@ static void StoreTailCallArgumentsToStac
 
 /// EmitTailCallStoreFPAndRetAddr - Move the frame pointer and return address to
 /// the appropriate stack slot for the tail call optimized function call.
-static SDValue EmitTailCallStoreFPAndRetAddr(SelectionDAG &DAG,
-                                             MachineFunction &MF, SDValue Chain,
+static SDValue EmitTailCallStoreFPAndRetAddr(SelectionDAG &DAG, SDValue Chain,
                                              SDValue OldRetAddr, SDValue OldFP,
                                              int SPDiff, bool isPPC64,
                                              bool isDarwinABI,
@@ -4095,6 +4094,7 @@ static SDValue EmitTailCallStoreFPAndRet
   if (SPDiff) {
     // Calculate the new stack slot for the return address.
     int SlotSize = isPPC64 ? 8 : 4;
+    MachineFunction &MF = DAG.getMachineFunction();
     const PPCFrameLowering *FL =
         MF.getSubtarget<PPCSubtarget>().getFrameLowering();
     int NewRetAddrLoc = SPDiff + FL->getReturnSaveOffset();
@@ -4102,10 +4102,9 @@ static SDValue EmitTailCallStoreFPAndRet
                                                           NewRetAddrLoc, true);
     EVT VT = isPPC64 ? MVT::i64 : MVT::i32;
     SDValue NewRetAddrFrIdx = DAG.getFrameIndex(NewRetAddr, VT);
-    Chain = DAG.getStore(
-        Chain, dl, OldRetAddr, NewRetAddrFrIdx,
-        MachinePointerInfo::getFixedStack(DAG.getMachineFunction(), NewRetAddr),
-        false, false, 0);
+    Chain = DAG.getStore(Chain, dl, OldRetAddr, NewRetAddrFrIdx,
+                         MachinePointerInfo::getFixedStack(MF, NewRetAddr),
+                         false, false, 0);
 
     // When using the 32/64-bit SVR4 ABI there is no need to move the FP stack
     // slot as the FP is never overwritten.
@@ -4212,8 +4211,6 @@ PrepareTailCall(SelectionDAG &DAG, SDVal
                 const SDLoc &dl, bool isPPC64, int SPDiff, unsigned NumBytes,
                 SDValue LROp, SDValue FPOp, bool isDarwinABI,
                 SmallVectorImpl<TailCallArgumentInfo> &TailCallArguments) {
-  MachineFunction &MF = DAG.getMachineFunction();
-
   // Emit a sequence of copyto/copyfrom virtual registers for arguments that
   // might overwrite each other in case of tail call optimization.
   SmallVector<SDValue, 8> MemOpChains2;
@@ -4225,8 +4222,8 @@ PrepareTailCall(SelectionDAG &DAG, SDVal
     Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains2);
 
   // Store the return address to the appropriate stack slot.
-  Chain = EmitTailCallStoreFPAndRetAddr(DAG, MF, Chain, LROp, FPOp, SPDiff,
-                                        isPPC64, isDarwinABI, dl);
+  Chain = EmitTailCallStoreFPAndRetAddr(DAG, Chain, LROp, FPOp, SPDiff, isPPC64,
+                                        isDarwinABI, dl);
 
   // Emit callseq_end just before tailcall node.
   Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(NumBytes, dl, true),




More information about the llvm-commits mailing list