forked from OSchip/llvm-project
Target: remove old constructors for CallLoweringInfo
This is mostly a mechanical change changing all the call sites to the newer chained-function construction pattern. This removes the horrible 15-parameter constructor for the CallLoweringInfo in favour of setting properties of the call via chained functions. No functional change beyond the removal of the old constructors are intended. llvm-svn: 209082
This commit is contained in:
parent
3f75acfbc7
commit
f3a5a5c546
|
@ -2119,34 +2119,6 @@ public:
|
|||
SmallVector<SDValue, 32> OutVals;
|
||||
SmallVector<ISD::InputArg, 32> Ins;
|
||||
|
||||
|
||||
/// Constructs a call lowering context based on the ImmutableCallSite \p cs.
|
||||
CallLoweringInfo(SDValue chain, Type *retTy,
|
||||
FunctionType *FTy, bool isTailCall, SDValue callee,
|
||||
ArgListTy &args, SelectionDAG &dag, SDLoc dl,
|
||||
ImmutableCallSite &cs)
|
||||
: Chain(chain), RetTy(retTy), RetSExt(cs.paramHasAttr(0, Attribute::SExt)),
|
||||
RetZExt(cs.paramHasAttr(0, Attribute::ZExt)), IsVarArg(FTy->isVarArg()),
|
||||
IsInReg(cs.paramHasAttr(0, Attribute::InReg)),
|
||||
DoesNotReturn(cs.doesNotReturn()),
|
||||
IsReturnValueUsed(!cs.getInstruction()->use_empty()),
|
||||
IsTailCall(isTailCall), NumFixedArgs(FTy->getNumParams()),
|
||||
CallConv(cs.getCallingConv()), Callee(callee), Args(&args), DAG(dag),
|
||||
DL(dl), CS(&cs) {}
|
||||
|
||||
/// Constructs a call lowering context based on the provided call
|
||||
/// information.
|
||||
CallLoweringInfo(SDValue chain, Type *retTy, bool retSExt, bool retZExt,
|
||||
bool isVarArg, bool isInReg, unsigned numFixedArgs,
|
||||
CallingConv::ID callConv, bool isTailCall,
|
||||
bool doesNotReturn, bool isReturnValueUsed, SDValue callee,
|
||||
ArgListTy &args, SelectionDAG &dag, SDLoc dl)
|
||||
: Chain(chain), RetTy(retTy), RetSExt(retSExt), RetZExt(retZExt),
|
||||
IsVarArg(isVarArg), IsInReg(isInReg), DoesNotReturn(doesNotReturn),
|
||||
IsReturnValueUsed(isReturnValueUsed), IsTailCall(isTailCall),
|
||||
NumFixedArgs(numFixedArgs), CallConv(callConv), Callee(callee),
|
||||
Args(&args), DAG(dag), DL(dl), CS(nullptr) {}
|
||||
|
||||
CallLoweringInfo(SelectionDAG &DAG)
|
||||
: RetTy(nullptr), RetSExt(false), RetZExt(false), IsVarArg(false),
|
||||
IsInReg(false), DoesNotReturn(false), IsReturnValueUsed(true),
|
||||
|
|
|
@ -2058,13 +2058,12 @@ SDValue SelectionDAGLegalize::ExpandLibCall(RTLIB::Libcall LC, SDNode *Node,
|
|||
if (isTailCall)
|
||||
InChain = TCChain;
|
||||
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(InChain, RetTy, isSigned, !isSigned, false, false,
|
||||
0, TLI.getLibcallCallingConv(LC), isTailCall,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Callee, Args, DAG, SDLoc(Node));
|
||||
std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(SDLoc(Node)).setChain(InChain)
|
||||
.setCallee(TLI.getLibcallCallingConv(LC), RetTy, Callee, &Args, 0)
|
||||
.setTailCall(isTailCall).setSExtResult(isSigned).setZExtResult(!isSigned);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
|
||||
|
||||
if (!CallInfo.second.getNode())
|
||||
// It's a tailcall, return the chain (which is the DAG root).
|
||||
|
@ -2093,12 +2092,12 @@ SDValue SelectionDAGLegalize::ExpandLibCall(RTLIB::Libcall LC, EVT RetVT,
|
|||
TLI.getPointerTy());
|
||||
|
||||
Type *RetTy = RetVT.getTypeForEVT(*DAG.getContext());
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(DAG.getEntryNode(), RetTy, isSigned, !isSigned, false,
|
||||
false, 0, TLI.getLibcallCallingConv(LC),
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Callee, Args, DAG, dl);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(DAG.getEntryNode())
|
||||
.setCallee(TLI.getLibcallCallingConv(LC), RetTy, Callee, &Args, 0)
|
||||
.setSExtResult(isSigned).setZExtResult(!isSigned);
|
||||
|
||||
std::pair<SDValue,SDValue> CallInfo = TLI.LowerCallTo(CLI);
|
||||
|
||||
return CallInfo.first;
|
||||
|
@ -2127,11 +2126,12 @@ SelectionDAGLegalize::ExpandChainLibCall(RTLIB::Libcall LC,
|
|||
TLI.getPointerTy());
|
||||
|
||||
Type *RetTy = Node->getValueType(0).getTypeForEVT(*DAG.getContext());
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(InChain, RetTy, isSigned, !isSigned, false, false,
|
||||
0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Callee, Args, DAG, SDLoc(Node));
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(SDLoc(Node)).setChain(InChain)
|
||||
.setCallee(TLI.getLibcallCallingConv(LC), RetTy, Callee, &Args, 0)
|
||||
.setSExtResult(isSigned).setZExtResult(!isSigned);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
|
||||
|
||||
return CallInfo;
|
||||
|
@ -2264,11 +2264,11 @@ SelectionDAGLegalize::ExpandDivRemLibCall(SDNode *Node,
|
|||
TLI.getPointerTy());
|
||||
|
||||
SDLoc dl(Node);
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(InChain, RetTy, isSigned, !isSigned, false, false,
|
||||
0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Callee, Args, DAG, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(InChain)
|
||||
.setCallee(TLI.getLibcallCallingConv(LC), RetTy, Callee, &Args, 0)
|
||||
.setSExtResult(isSigned).setZExtResult(!isSigned);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
|
||||
|
||||
// Remainder is loaded back from the stack frame.
|
||||
|
@ -2378,12 +2378,11 @@ SelectionDAGLegalize::ExpandSinCosLibCall(SDNode *Node,
|
|||
TLI.getPointerTy());
|
||||
|
||||
SDLoc dl(Node);
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(InChain, Type::getVoidTy(*DAG.getContext()),
|
||||
false, false, false, false,
|
||||
0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Callee, Args, DAG, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(InChain)
|
||||
.setCallee(TLI.getLibcallCallingConv(LC),
|
||||
Type::getVoidTy(*DAG.getContext()), Callee, &Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
|
||||
|
||||
Results.push_back(DAG.getLoad(RetVT, dl, CallInfo.second, SinPtr,
|
||||
|
@ -2993,15 +2992,13 @@ void SelectionDAGLegalize::ExpandNode(SDNode *Node) {
|
|||
// If the target didn't lower this, lower it to '__sync_synchronize()' call
|
||||
// FIXME: handle "fence singlethread" more efficiently.
|
||||
TargetLowering::ArgListTy Args;
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Node->getOperand(0),
|
||||
Type::getVoidTy(*DAG.getContext()),
|
||||
false, false, false, false, 0, CallingConv::C,
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
DAG.getExternalSymbol("__sync_synchronize",
|
||||
TLI.getPointerTy()),
|
||||
Args, DAG, dl);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Node->getOperand(0))
|
||||
.setCallee(CallingConv::C, Type::getVoidTy(*DAG.getContext()),
|
||||
DAG.getExternalSymbol("__sync_synchronize", TLI.getPointerTy()),
|
||||
&Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallResult = TLI.LowerCallTo(CLI);
|
||||
|
||||
Results.push_back(CallResult.second);
|
||||
|
@ -3074,14 +3071,10 @@ void SelectionDAGLegalize::ExpandNode(SDNode *Node) {
|
|||
case ISD::TRAP: {
|
||||
// If this operation is not supported, lower it to 'abort()' call
|
||||
TargetLowering::ArgListTy Args;
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Node->getOperand(0),
|
||||
Type::getVoidTy(*DAG.getContext()),
|
||||
false, false, false, false, 0, CallingConv::C,
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
DAG.getExternalSymbol("abort", TLI.getPointerTy()),
|
||||
Args, DAG, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Node->getOperand(0))
|
||||
.setCallee(CallingConv::C, Type::getVoidTy(*DAG.getContext()),
|
||||
DAG.getExternalSymbol("abort", TLI.getPointerTy()), &Args, 0);
|
||||
std::pair<SDValue, SDValue> CallResult = TLI.LowerCallTo(CLI);
|
||||
|
||||
Results.push_back(CallResult.second);
|
||||
|
|
|
@ -2298,12 +2298,12 @@ void DAGTypeLegalizer::ExpandIntRes_XMULO(SDNode *N,
|
|||
Args.push_back(Entry);
|
||||
|
||||
SDValue Func = DAG.getExternalSymbol(TLI.getLibcallName(LC), PtrVT);
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Chain, RetTy, true, false, false, false,
|
||||
0, TLI.getLibcallCallingConv(LC),
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Func, Args, DAG, dl);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(TLI.getLibcallCallingConv(LC), RetTy, Func, &Args, 0)
|
||||
.setSExtResult();
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
|
||||
|
||||
SplitInteger(CallInfo.first, Lo, Hi);
|
||||
|
|
|
@ -1051,11 +1051,12 @@ DAGTypeLegalizer::ExpandChainLibCall(RTLIB::Libcall LC,
|
|||
TLI.getPointerTy());
|
||||
|
||||
Type *RetTy = Node->getValueType(0).getTypeForEVT(*DAG.getContext());
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(InChain, RetTy, isSigned, !isSigned, false, false,
|
||||
0, TLI.getLibcallCallingConv(LC), /*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Callee, Args, DAG, SDLoc(Node));
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(SDLoc(Node)).setChain(InChain)
|
||||
.setCallee(TLI.getLibcallCallingConv(LC), RetTy, Callee, &Args, 0)
|
||||
.setSExtResult(isSigned).setZExtResult(!isSigned);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
|
||||
|
||||
return CallInfo;
|
||||
|
|
|
@ -4105,15 +4105,13 @@ SDValue SelectionDAG::getMemcpy(SDValue Chain, SDLoc dl, SDValue Dst,
|
|||
Entry.Node = Src; Args.push_back(Entry);
|
||||
Entry.Node = Size; Args.push_back(Entry);
|
||||
// FIXME: pass in SDLoc
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Chain, Type::getVoidTy(*getContext()),
|
||||
false, false, false, false, 0,
|
||||
TLI->getLibcallCallingConv(RTLIB::MEMCPY),
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/false,
|
||||
getExternalSymbol(TLI->getLibcallName(RTLIB::MEMCPY),
|
||||
TLI->getPointerTy()),
|
||||
Args, *this, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(*this);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(TLI->getLibcallCallingConv(RTLIB::MEMCPY),
|
||||
Type::getVoidTy(*getContext()),
|
||||
getExternalSymbol(TLI->getLibcallName(RTLIB::MEMCPY),
|
||||
TLI->getPointerTy()), &Args, 0)
|
||||
.setDiscardResult();
|
||||
std::pair<SDValue,SDValue> CallResult = TLI->LowerCallTo(CLI);
|
||||
|
||||
return CallResult.second;
|
||||
|
@ -4163,15 +4161,13 @@ SDValue SelectionDAG::getMemmove(SDValue Chain, SDLoc dl, SDValue Dst,
|
|||
Entry.Node = Src; Args.push_back(Entry);
|
||||
Entry.Node = Size; Args.push_back(Entry);
|
||||
// FIXME: pass in SDLoc
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Chain, Type::getVoidTy(*getContext()),
|
||||
false, false, false, false, 0,
|
||||
TLI->getLibcallCallingConv(RTLIB::MEMMOVE),
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/false,
|
||||
getExternalSymbol(TLI->getLibcallName(RTLIB::MEMMOVE),
|
||||
TLI->getPointerTy()),
|
||||
Args, *this, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(*this);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(TLI->getLibcallCallingConv(RTLIB::MEMMOVE),
|
||||
Type::getVoidTy(*getContext()),
|
||||
getExternalSymbol(TLI->getLibcallName(RTLIB::MEMMOVE),
|
||||
TLI->getPointerTy()), &Args, 0)
|
||||
.setDiscardResult();
|
||||
std::pair<SDValue,SDValue> CallResult = TLI->LowerCallTo(CLI);
|
||||
|
||||
return CallResult.second;
|
||||
|
@ -4227,18 +4223,17 @@ SDValue SelectionDAG::getMemset(SDValue Chain, SDLoc dl, SDValue Dst,
|
|||
Entry.Ty = IntPtrTy;
|
||||
Entry.isSExt = false;
|
||||
Args.push_back(Entry);
|
||||
// FIXME: pass in SDLoc
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Chain, Type::getVoidTy(*getContext()),
|
||||
false, false, false, false, 0,
|
||||
TLI->getLibcallCallingConv(RTLIB::MEMSET),
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotReturn*/false, /*isReturnValueUsed=*/false,
|
||||
getExternalSymbol(TLI->getLibcallName(RTLIB::MEMSET),
|
||||
TLI->getPointerTy()),
|
||||
Args, *this, dl);
|
||||
std::pair<SDValue,SDValue> CallResult = TLI->LowerCallTo(CLI);
|
||||
|
||||
// FIXME: pass in SDLoc
|
||||
TargetLowering::CallLoweringInfo CLI(*this);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(TLI->getLibcallCallingConv(RTLIB::MEMSET),
|
||||
Type::getVoidTy(*getContext()),
|
||||
getExternalSymbol(TLI->getLibcallName(RTLIB::MEMSET),
|
||||
TLI->getPointerTy()), &Args, 0)
|
||||
.setDiscardResult();
|
||||
|
||||
std::pair<SDValue,SDValue> CallResult = TLI->LowerCallTo(CLI);
|
||||
return CallResult.second;
|
||||
}
|
||||
|
||||
|
|
|
@ -5288,14 +5288,13 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
|
|||
return nullptr;
|
||||
}
|
||||
TargetLowering::ArgListTy Args;
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(getRoot(), I.getType(),
|
||||
false, false, false, false, 0, CallingConv::C,
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed=*/true,
|
||||
DAG.getExternalSymbol(TrapFuncName.data(),
|
||||
TLI->getPointerTy()),
|
||||
Args, DAG, sdl);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(sdl).setChain(getRoot())
|
||||
.setCallee(CallingConv::C, I.getType(),
|
||||
DAG.getExternalSymbol(TrapFuncName.data(), TLI->getPointerTy()),
|
||||
&Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> Result = TLI->LowerCallTo(CLI);
|
||||
DAG.setRoot(Result.second);
|
||||
return nullptr;
|
||||
|
@ -5503,9 +5502,10 @@ void SelectionDAGBuilder::LowerCallTo(ImmutableCallSite CS, SDValue Callee,
|
|||
if (isTailCall && !isInTailCallPosition(CS, *TLI))
|
||||
isTailCall = false;
|
||||
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(getRoot(), RetTy, FTy, isTailCall, Callee, Args, DAG,
|
||||
getCurSDLoc(), CS);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(getCurSDLoc()).setChain(getRoot())
|
||||
.setCallee(RetTy, FTy, Callee, &Args, CS).setTailCall(isTailCall);
|
||||
|
||||
std::pair<SDValue,SDValue> Result = TLI->LowerCallTo(CLI);
|
||||
assert((isTailCall || Result.second.getNode()) &&
|
||||
"Non-null chain expected with non-tail call!");
|
||||
|
@ -6843,10 +6843,10 @@ SelectionDAGBuilder::LowerCallOperands(const CallInst &CI, unsigned ArgIdx,
|
|||
}
|
||||
|
||||
Type *retTy = useVoidTy ? Type::getVoidTy(*DAG.getContext()) : CI.getType();
|
||||
TargetLowering::CallLoweringInfo CLI(getRoot(), retTy, /*retSExt*/ false,
|
||||
/*retZExt*/ false, /*isVarArg*/ false, /*isInReg*/ false, NumArgs,
|
||||
CI.getCallingConv(), /*isTailCall*/ false, /*doesNotReturn*/ false,
|
||||
/*isReturnValueUsed*/ CI.use_empty(), Callee, Args, DAG, getCurSDLoc());
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(getCurSDLoc()).setChain(getRoot())
|
||||
.setCallee(CI.getCallingConv(), retTy, Callee, &Args, NumArgs)
|
||||
.setDiscardResult(!CI.use_empty());
|
||||
|
||||
const TargetLowering *TLI = TM.getTargetLowering();
|
||||
return TLI->LowerCallTo(CLI);
|
||||
|
|
|
@ -103,12 +103,11 @@ TargetLowering::makeLibCall(SelectionDAG &DAG,
|
|||
SDValue Callee = DAG.getExternalSymbol(getLibcallName(LC), getPointerTy());
|
||||
|
||||
Type *RetTy = RetVT.getTypeForEVT(*DAG.getContext());
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(DAG.getEntryNode(), RetTy, isSigned, !isSigned, false,
|
||||
false, 0, getLibcallCallingConv(LC),
|
||||
/*isTailCall=*/false,
|
||||
doesNotReturn, isReturnValueUsed, Callee, Args,
|
||||
DAG, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(DAG.getEntryNode())
|
||||
.setCallee(getLibcallCallingConv(LC), RetTy, Callee, &Args, 0)
|
||||
.setNoReturn(doesNotReturn).setDiscardResult(!isReturnValueUsed)
|
||||
.setSExtResult(isSigned).setZExtResult(!isSigned);
|
||||
return LowerCallTo(CLI);
|
||||
}
|
||||
|
||||
|
|
|
@ -2229,11 +2229,11 @@ AArch64TargetLowering::LowerF128ToCall(SDValue Op, SelectionDAG &DAG,
|
|||
if (isTailCall)
|
||||
InChain = TCChain;
|
||||
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(InChain, RetTy, false, false, false, false,
|
||||
0, getLibcallCallingConv(Call), isTailCall,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Callee, Args, DAG, SDLoc(Op));
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(SDLoc(Op)).setChain(InChain)
|
||||
.setCallee(getLibcallCallingConv(Call), RetTy, Callee, &Args, 0)
|
||||
.setTailCall(isTailCall);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = LowerCallTo(CLI);
|
||||
|
||||
if (!CallInfo.second.getNode())
|
||||
|
|
|
@ -2380,13 +2380,13 @@ ARMTargetLowering::LowerToTLSGeneralDynamicModel(GlobalAddressSDNode *GA,
|
|||
Entry.Node = Argument;
|
||||
Entry.Ty = (Type *) Type::getInt32Ty(*DAG.getContext());
|
||||
Args.push_back(Entry);
|
||||
|
||||
// FIXME: is there useful debug info available here?
|
||||
TargetLowering::CallLoweringInfo CLI(Chain,
|
||||
(Type *) Type::getInt32Ty(*DAG.getContext()),
|
||||
false, false, false, false,
|
||||
0, CallingConv::C, /*isTailCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed=*/true,
|
||||
DAG.getExternalSymbol("__tls_get_addr", PtrVT), Args, DAG, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(CallingConv::C, Type::getInt32Ty(*DAG.getContext()),
|
||||
DAG.getExternalSymbol("__tls_get_addr", PtrVT), &Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
return CallResult.first;
|
||||
}
|
||||
|
@ -6132,12 +6132,12 @@ SDValue ARMTargetLowering::LowerFSINCOS(SDValue Op, SelectionDAG &DAG) const {
|
|||
? "__sincos_stret" : "__sincosf_stret";
|
||||
SDValue Callee = DAG.getExternalSymbol(LibcallName, getPointerTy());
|
||||
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(DAG.getEntryNode(), Type::getVoidTy(*DAG.getContext()),
|
||||
false, false, false, false, 0,
|
||||
CallingConv::C, /*isTaillCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed*/false,
|
||||
Callee, Args, DAG, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(DAG.getEntryNode())
|
||||
.setCallee(CallingConv::C, Type::getVoidTy(*DAG.getContext()), Callee,
|
||||
&Args, 0)
|
||||
.setDiscardResult();
|
||||
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
|
||||
SDValue LoadSin = DAG.getLoad(ArgVT, dl, CallResult.second, SRet,
|
||||
|
@ -10526,13 +10526,12 @@ SDValue ARMTargetLowering::LowerDivRem(SDValue Op, SelectionDAG &DAG) const {
|
|||
Type *RetTy = (Type*)StructType::get(Ty, Ty, NULL);
|
||||
|
||||
SDLoc dl(Op);
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(InChain, RetTy, isSigned, !isSigned, false, true,
|
||||
0, getLibcallCallingConv(LC), /*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true,
|
||||
Callee, Args, DAG, dl);
|
||||
std::pair<SDValue, SDValue> CallInfo = LowerCallTo(CLI);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(InChain)
|
||||
.setCallee(getLibcallCallingConv(LC), RetTy, Callee, &Args, 0)
|
||||
.setInRegister().setSExtResult(isSigned).setZExtResult(!isSigned);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = LowerCallTo(CLI);
|
||||
return CallInfo.first;
|
||||
}
|
||||
|
||||
|
|
|
@ -186,22 +186,14 @@ EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc dl,
|
|||
Args.push_back(Entry);
|
||||
|
||||
// Emit __eabi_memset call
|
||||
TargetLowering::CallLoweringInfo CLI(Chain,
|
||||
Type::getVoidTy(*DAG.getContext()), // return type
|
||||
false, // return sign ext
|
||||
false, // return zero ext
|
||||
false, // is var arg
|
||||
false, // is in regs
|
||||
0, // number of fixed arguments
|
||||
TLI.getLibcallCallingConv(RTLIB::MEMSET), // call conv
|
||||
false, // is tail call
|
||||
false, // does not return
|
||||
false, // is return val used
|
||||
DAG.getExternalSymbol(TLI.getLibcallName(RTLIB::MEMSET),
|
||||
TLI.getPointerTy()), // callee
|
||||
Args, DAG, dl);
|
||||
std::pair<SDValue,SDValue> CallResult =
|
||||
TLI.LowerCallTo(CLI);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(TLI.getLibcallCallingConv(RTLIB::MEMSET),
|
||||
Type::getVoidTy(*DAG.getContext()),
|
||||
DAG.getExternalSymbol(TLI.getLibcallName(RTLIB::MEMSET),
|
||||
TLI.getPointerTy()), &Args, 0)
|
||||
.setDiscardResult();
|
||||
|
||||
std::pair<SDValue,SDValue> CallResult = TLI.LowerCallTo(CLI);
|
||||
return CallResult.second;
|
||||
}
|
||||
|
|
|
@ -1510,10 +1510,10 @@ SDValue ARM64TargetLowering::LowerFSINCOS(SDValue Op, SelectionDAG &DAG) const {
|
|||
SDValue Callee = DAG.getExternalSymbol(LibcallName, getPointerTy());
|
||||
|
||||
StructType *RetTy = StructType::get(ArgTy, ArgTy, NULL);
|
||||
TargetLowering::CallLoweringInfo CLI(
|
||||
DAG.getEntryNode(), RetTy, false, false, false, false, 0,
|
||||
CallingConv::Fast, /*isTaillCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed*/ true, Callee, Args, DAG, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(DAG.getEntryNode())
|
||||
.setCallee(CallingConv::Fast, RetTy, Callee, &Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
return CallResult.first;
|
||||
}
|
||||
|
|
|
@ -46,11 +46,11 @@ SDValue ARM64SelectionDAGInfo::EmitTargetCodeForMemset(
|
|||
Args.push_back(Entry);
|
||||
Entry.Node = Size;
|
||||
Args.push_back(Entry);
|
||||
TargetLowering::CallLoweringInfo CLI(
|
||||
Chain, Type::getVoidTy(*DAG.getContext()), false, false, false, false,
|
||||
0, CallingConv::C, /*isTailCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed=*/false,
|
||||
DAG.getExternalSymbol(bzeroEntry, IntPtr), Args, DAG, dl);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(CallingConv::C, Type::getVoidTy(*DAG.getContext()),
|
||||
DAG.getExternalSymbol(bzeroEntry, IntPtr), &Args, 0)
|
||||
.setDiscardResult();
|
||||
std::pair<SDValue, SDValue> CallResult = TLI.LowerCallTo(CLI);
|
||||
return CallResult.second;
|
||||
}
|
||||
|
|
|
@ -1577,11 +1577,9 @@ lowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const
|
|||
Entry.Ty = PtrTy;
|
||||
Args.push_back(Entry);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG.getEntryNode(), PtrTy,
|
||||
false, false, false, false, 0, CallingConv::C,
|
||||
/*IsTailCall=*/false, /*doesNotRet=*/false,
|
||||
/*isReturnValueUsed=*/true,
|
||||
TlsGetAddr, Args, DAG, DL);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(DL).setChain(DAG.getEntryNode())
|
||||
.setCallee(CallingConv::C, PtrTy, TlsGetAddr, &Args, 0);
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
|
||||
SDValue Ret = CallResult.first;
|
||||
|
|
|
@ -1887,17 +1887,12 @@ SDValue PPCTargetLowering::LowerINIT_TRAMPOLINE(SDValue Op,
|
|||
Entry.Node = Nest; Args.push_back(Entry);
|
||||
|
||||
// Lower to a call to __trampoline_setup(Trmp, TrampSize, FPtr, ctx_reg)
|
||||
TargetLowering::CallLoweringInfo CLI(Chain,
|
||||
Type::getVoidTy(*DAG.getContext()),
|
||||
false, false, false, false, 0,
|
||||
CallingConv::C,
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotRet=*/false,
|
||||
/*isReturnValueUsed=*/true,
|
||||
DAG.getExternalSymbol("__trampoline_setup", PtrVT),
|
||||
Args, DAG, dl);
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(CallingConv::C, Type::getVoidTy(*DAG.getContext()),
|
||||
DAG.getExternalSymbol("__trampoline_setup", PtrVT), &Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
return CallResult.second;
|
||||
}
|
||||
|
||||
|
|
|
@ -2028,13 +2028,10 @@ SparcTargetLowering::LowerF128Op(SDValue Op, SelectionDAG &DAG,
|
|||
for (unsigned i = 0, e = numArgs; i != e; ++i) {
|
||||
Chain = LowerF128_LibCallArg(Chain, Args, Op.getOperand(i), SDLoc(Op), DAG);
|
||||
}
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Chain,
|
||||
RetTyABI,
|
||||
false, false, false, false,
|
||||
0, CallingConv::C,
|
||||
false, false, true,
|
||||
Callee, Args, DAG, SDLoc(Op));
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(SDLoc(Op)).setChain(Chain)
|
||||
.setCallee(CallingConv::C, RetTyABI, Callee, &Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = LowerCallTo(CLI);
|
||||
|
||||
// chain is in second result.
|
||||
|
@ -2087,13 +2084,9 @@ SparcTargetLowering::LowerF128Compare(SDValue LHS, SDValue RHS,
|
|||
Chain = LowerF128_LibCallArg(Chain, Args, LHS, DL, DAG);
|
||||
Chain = LowerF128_LibCallArg(Chain, Args, RHS, DL, DAG);
|
||||
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Chain,
|
||||
RetTy,
|
||||
false, false, false, false,
|
||||
0, CallingConv::C,
|
||||
false, false, true,
|
||||
Callee, Args, DAG, DL);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(DL).setChain(Chain)
|
||||
.setCallee(CallingConv::C, RetTy, Callee, &Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = LowerCallTo(CLI);
|
||||
|
||||
|
|
|
@ -13416,14 +13416,14 @@ SDValue X86TargetLowering::LowerWin64_i128OP(SDValue Op, SelectionDAG &DAG) cons
|
|||
SDValue Callee = DAG.getExternalSymbol(getLibcallName(LC),
|
||||
getPointerTy());
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(
|
||||
InChain, static_cast<EVT>(MVT::v2i64).getTypeForEVT(*DAG.getContext()),
|
||||
isSigned, !isSigned, false, true, 0, getLibcallCallingConv(LC),
|
||||
/*isTailCall=*/false,
|
||||
/*doesNotReturn=*/false, /*isReturnValueUsed=*/true, Callee, Args, DAG,
|
||||
dl);
|
||||
std::pair<SDValue, SDValue> CallInfo = LowerCallTo(CLI);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(InChain)
|
||||
.setCallee(getLibcallCallingConv(LC),
|
||||
static_cast<EVT>(MVT::v2i64).getTypeForEVT(*DAG.getContext()),
|
||||
Callee, &Args, 0)
|
||||
.setInRegister().setSExtResult(isSigned).setZExtResult(!isSigned);
|
||||
|
||||
std::pair<SDValue, SDValue> CallInfo = LowerCallTo(CLI);
|
||||
return DAG.getNode(ISD::BITCAST, dl, VT, CallInfo.first);
|
||||
}
|
||||
|
||||
|
@ -14396,12 +14396,11 @@ static SDValue LowerFSINCOS(SDValue Op, const X86Subtarget *Subtarget,
|
|||
Type *RetTy = isF64
|
||||
? (Type*)StructType::get(ArgTy, ArgTy, NULL)
|
||||
: (Type*)VectorType::get(ArgTy, 4);
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(DAG.getEntryNode(), RetTy,
|
||||
false, false, false, false, 0,
|
||||
CallingConv::C, /*isTaillCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed*/true,
|
||||
Callee, Args, DAG, dl);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(DAG.getEntryNode())
|
||||
.setCallee(CallingConv::C, RetTy, Callee, &Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallResult = TLI.LowerCallTo(CLI);
|
||||
|
||||
if (isF64)
|
||||
|
|
|
@ -61,15 +61,14 @@ X86SelectionDAGInfo::EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc dl,
|
|||
Args.push_back(Entry);
|
||||
Entry.Node = Size;
|
||||
Args.push_back(Entry);
|
||||
TargetLowering::
|
||||
CallLoweringInfo CLI(Chain, Type::getVoidTy(*DAG.getContext()),
|
||||
false, false, false, false,
|
||||
0, CallingConv::C, /*isTailCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed=*/false,
|
||||
DAG.getExternalSymbol(bzeroEntry, IntPtr), Args,
|
||||
DAG, dl);
|
||||
std::pair<SDValue,SDValue> CallResult =
|
||||
TLI.LowerCallTo(CLI);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(CallingConv::C, Type::getVoidTy(*DAG.getContext()),
|
||||
DAG.getExternalSymbol(bzeroEntry, IntPtr), &Args, 0)
|
||||
.setDiscardResult();
|
||||
|
||||
std::pair<SDValue,SDValue> CallResult = TLI.LowerCallTo(CLI);
|
||||
return CallResult.second;
|
||||
}
|
||||
|
||||
|
|
|
@ -506,16 +506,14 @@ LowerLOAD(SDValue Op, SelectionDAG &DAG) const {
|
|||
Entry.Node = BasePtr;
|
||||
Args.push_back(Entry);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(Chain, IntPtrTy, false, false,
|
||||
false, false, 0, CallingConv::C, /*isTailCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed=*/true,
|
||||
DAG.getExternalSymbol("__misaligned_load", getPointerTy()),
|
||||
Args, DAG, DL);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(DL).setChain(Chain)
|
||||
.setCallee(CallingConv::C, IntPtrTy,
|
||||
DAG.getExternalSymbol("__misaligned_load", getPointerTy()),
|
||||
&Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
|
||||
SDValue Ops[] =
|
||||
{ CallResult.first, CallResult.second };
|
||||
|
||||
SDValue Ops[] = { CallResult.first, CallResult.second };
|
||||
return DAG.getMergeValues(Ops, DL);
|
||||
}
|
||||
|
||||
|
@ -568,14 +566,13 @@ LowerSTORE(SDValue Op, SelectionDAG &DAG) const
|
|||
Entry.Node = Value;
|
||||
Args.push_back(Entry);
|
||||
|
||||
TargetLowering::CallLoweringInfo CLI(Chain,
|
||||
Type::getVoidTy(*DAG.getContext()), false, false,
|
||||
false, false, 0, CallingConv::C, /*isTailCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed=*/true,
|
||||
DAG.getExternalSymbol("__misaligned_store", getPointerTy()),
|
||||
Args, DAG, dl);
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(CallingConv::C, Type::getVoidTy(*DAG.getContext()),
|
||||
DAG.getExternalSymbol("__misaligned_store", getPointerTy()),
|
||||
&Args, 0);
|
||||
|
||||
std::pair<SDValue, SDValue> CallResult = LowerCallTo(CLI);
|
||||
return CallResult.second;
|
||||
}
|
||||
|
||||
|
|
|
@ -42,13 +42,15 @@ EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl, SDValue Chain,
|
|||
Entry.Node = Src; Args.push_back(Entry);
|
||||
Entry.Node = Size; Args.push_back(Entry);
|
||||
|
||||
TargetLowering::CallLoweringInfo
|
||||
CLI(Chain, Type::getVoidTy(*DAG.getContext()), false, false, false, false,
|
||||
0, TLI.getLibcallCallingConv(RTLIB::MEMCPY), /*isTailCall=*/false,
|
||||
/*doesNotRet=*/false, /*isReturnValueUsed=*/false,
|
||||
DAG.getExternalSymbol("__memcpy_4", TLI.getPointerTy()), Args, DAG, dl);
|
||||
std::pair<SDValue,SDValue> CallResult =
|
||||
TLI.LowerCallTo(CLI);
|
||||
TargetLowering::CallLoweringInfo CLI(DAG);
|
||||
CLI.setDebugLoc(dl).setChain(Chain)
|
||||
.setCallee(TLI.getLibcallCallingConv(RTLIB::MEMCPY),
|
||||
Type::getVoidTy(*DAG.getContext()),
|
||||
DAG.getExternalSymbol("__memcpy_4", TLI.getPointerTy()),
|
||||
&Args, 0)
|
||||
.setDiscardResult();
|
||||
|
||||
std::pair<SDValue,SDValue> CallResult = TLI.LowerCallTo(CLI);
|
||||
return CallResult.second;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue