diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2018-08-02 17:32:43 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2018-08-02 17:32:43 +0000 | 
| commit | b7eb8e35e481a74962664b63dfb09483b200209a (patch) | |
| tree | 1937fb4a348458ce2d02ade03ac3bb0aa18d2fcd /lib/CodeGen/SelectionDAG/StatepointLowering.cpp | |
| parent | eb11fae6d08f479c0799db45860a98af528fa6e7 (diff) | |
Notes
Diffstat (limited to 'lib/CodeGen/SelectionDAG/StatepointLowering.cpp')
| -rw-r--r-- | lib/CodeGen/SelectionDAG/StatepointLowering.cpp | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/CodeGen/SelectionDAG/StatepointLowering.cpp b/lib/CodeGen/SelectionDAG/StatepointLowering.cpp index 5cf06e62b80c1..54cbd6859f703 100644 --- a/lib/CodeGen/SelectionDAG/StatepointLowering.cpp +++ b/lib/CodeGen/SelectionDAG/StatepointLowering.cpp @@ -419,10 +419,10 @@ static void lowerIncomingStatepointValue(SDValue Incoming, bool LiveInOnly,                                                    Builder.getFrameIndexTy()));    } else if (LiveInOnly) {      // If this value is live in (not live-on-return, or live-through), we can -    // treat it the same way patchpoint treats it's "live in" values.  We'll  -    // end up folding some of these into stack references, but they'll be  +    // treat it the same way patchpoint treats it's "live in" values.  We'll +    // end up folding some of these into stack references, but they'll be      // handled by the register allocator.  Note that we do not have the notion -    // of a late use so these values might be placed in registers which are  +    // of a late use so these values might be placed in registers which are      // clobbered by the call.  This is fine for live-in.      Ops.push_back(Incoming);    } else { @@ -498,7 +498,7 @@ lowerStatepointMetaArgs(SmallVectorImpl<SDValue> &Ops,    auto isGCValue =[&](const Value *V) {      return is_contained(SI.Ptrs, V) || is_contained(SI.Bases, V);    }; -   +    // Before we actually start lowering (and allocating spill slots for values),    // reserve any stack slots which we judge to be profitable to reuse for a    // particular value.  This is purely an optimization over the code below and @@ -861,7 +861,8 @@ SelectionDAGBuilder::LowerStatepoint(ImmutableStatepoint ISP,        //       completely and make statepoint call to return a tuple.        unsigned Reg = FuncInfo.CreateRegs(RetTy);        RegsForValue RFV(*DAG.getContext(), DAG.getTargetLoweringInfo(), -                       DAG.getDataLayout(), Reg, RetTy, true); +                       DAG.getDataLayout(), Reg, RetTy, +                       ISP.getCallSite().getCallingConv());        SDValue Chain = DAG.getEntryNode();        RFV.getCopyToRegs(ReturnValue, DAG, getCurSDLoc(), Chain, nullptr);  | 
