mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Target: change member from reference to pointer
This is a preliminary step to help ease the construction of CallLoweringInfo. Changing the construction to a chained function pattern requires that the parameter be nullable. However, rather than copying the vector, save a pointer rather than the reference to permit a late binding of the arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209080 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a53c765745
commit
d825568843
@ -2111,7 +2111,7 @@ public:
|
|||||||
unsigned NumFixedArgs;
|
unsigned NumFixedArgs;
|
||||||
CallingConv::ID CallConv;
|
CallingConv::ID CallConv;
|
||||||
SDValue Callee;
|
SDValue Callee;
|
||||||
ArgListTy &Args;
|
ArgListTy *Args;
|
||||||
SelectionDAG &DAG;
|
SelectionDAG &DAG;
|
||||||
SDLoc DL;
|
SDLoc DL;
|
||||||
ImmutableCallSite *CS;
|
ImmutableCallSite *CS;
|
||||||
@ -2131,7 +2131,7 @@ public:
|
|||||||
DoesNotReturn(cs.doesNotReturn()),
|
DoesNotReturn(cs.doesNotReturn()),
|
||||||
IsReturnValueUsed(!cs.getInstruction()->use_empty()),
|
IsReturnValueUsed(!cs.getInstruction()->use_empty()),
|
||||||
IsTailCall(isTailCall), NumFixedArgs(FTy->getNumParams()),
|
IsTailCall(isTailCall), NumFixedArgs(FTy->getNumParams()),
|
||||||
CallConv(cs.getCallingConv()), Callee(callee), Args(args), DAG(dag),
|
CallConv(cs.getCallingConv()), Callee(callee), Args(&args), DAG(dag),
|
||||||
DL(dl), CS(&cs) {}
|
DL(dl), CS(&cs) {}
|
||||||
|
|
||||||
/// Constructs a call lowering context based on the provided call
|
/// Constructs a call lowering context based on the provided call
|
||||||
@ -2145,7 +2145,12 @@ public:
|
|||||||
IsVarArg(isVarArg), IsInReg(isInReg), DoesNotReturn(doesNotReturn),
|
IsVarArg(isVarArg), IsInReg(isInReg), DoesNotReturn(doesNotReturn),
|
||||||
IsReturnValueUsed(isReturnValueUsed), IsTailCall(isTailCall),
|
IsReturnValueUsed(isReturnValueUsed), IsTailCall(isTailCall),
|
||||||
NumFixedArgs(numFixedArgs), CallConv(callConv), Callee(callee),
|
NumFixedArgs(numFixedArgs), CallConv(callConv), Callee(callee),
|
||||||
Args(args), DAG(dag), DL(dl), CS(nullptr) {}
|
Args(&args), DAG(dag), DL(dl), CS(nullptr) {}
|
||||||
|
|
||||||
|
ArgListTy &getArgs() {
|
||||||
|
assert(Args && "Arguments must be set before accessing them");
|
||||||
|
return *Args;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/// This function lowers an abstract call to a function into an actual call.
|
/// This function lowers an abstract call to a function into an actual call.
|
||||||
|
@ -7124,7 +7124,7 @@ TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const {
|
|||||||
// Handle all of the outgoing arguments.
|
// Handle all of the outgoing arguments.
|
||||||
CLI.Outs.clear();
|
CLI.Outs.clear();
|
||||||
CLI.OutVals.clear();
|
CLI.OutVals.clear();
|
||||||
ArgListTy &Args = CLI.Args;
|
ArgListTy &Args = CLI.getArgs();
|
||||||
for (unsigned i = 0, e = Args.size(); i != e; ++i) {
|
for (unsigned i = 0, e = Args.size(); i != e; ++i) {
|
||||||
SmallVector<EVT, 4> ValueVTs;
|
SmallVector<EVT, 4> ValueVTs;
|
||||||
ComputeValueVTs(*this, Args[i].Ty, ValueVTs);
|
ComputeValueVTs(*this, Args[i].Ty, ValueVTs);
|
||||||
|
@ -2172,7 +2172,7 @@ SDValue ARM64TargetLowering::LowerCall(CallLoweringInfo &CLI,
|
|||||||
for (unsigned i = 0; i != NumArgs; ++i) {
|
for (unsigned i = 0; i != NumArgs; ++i) {
|
||||||
MVT ValVT = Outs[i].VT;
|
MVT ValVT = Outs[i].VT;
|
||||||
// Get type of the original argument.
|
// Get type of the original argument.
|
||||||
EVT ActualVT = getValueType(CLI.Args[Outs[i].OrigArgIndex].Ty,
|
EVT ActualVT = getValueType(CLI.getArgs()[Outs[i].OrigArgIndex].Ty,
|
||||||
/*AllowUnknown*/ true);
|
/*AllowUnknown*/ true);
|
||||||
MVT ActualMVT = ActualVT.isSimple() ? ActualVT.getSimpleVT() : ValVT;
|
MVT ActualMVT = ActualVT.isSimple() ? ActualVT.getSimpleVT() : ValVT;
|
||||||
ISD::ArgFlagsTy ArgFlags = Outs[i].Flags;
|
ISD::ArgFlagsTy ArgFlags = Outs[i].Flags;
|
||||||
|
@ -492,9 +492,9 @@ getOpndList(SmallVectorImpl<SDValue> &Ops,
|
|||||||
std::end(HardFloatLibCalls), Find))
|
std::end(HardFloatLibCalls), Find))
|
||||||
LookupHelper = false;
|
LookupHelper = false;
|
||||||
}
|
}
|
||||||
if (LookupHelper) Mips16HelperFunction =
|
if (LookupHelper)
|
||||||
getMips16HelperFunction(CLI.RetTy, CLI.Args, NeedMips16Helper);
|
Mips16HelperFunction =
|
||||||
|
getMips16HelperFunction(CLI.RetTy, CLI.getArgs(), NeedMips16Helper);
|
||||||
}
|
}
|
||||||
|
|
||||||
SDValue JumpTarget = Callee;
|
SDValue JumpTarget = Callee;
|
||||||
|
@ -2329,7 +2329,7 @@ MipsTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
|||||||
|
|
||||||
MipsCCInfo.analyzeCallOperands(Outs, IsVarArg,
|
MipsCCInfo.analyzeCallOperands(Outs, IsVarArg,
|
||||||
Subtarget->mipsSEUsesSoftFloat(),
|
Subtarget->mipsSEUsesSoftFloat(),
|
||||||
Callee.getNode(), CLI.Args);
|
Callee.getNode(), CLI.getArgs());
|
||||||
|
|
||||||
// Get a count of how many bytes are to be pushed on the stack.
|
// Get a count of how many bytes are to be pushed on the stack.
|
||||||
unsigned NextStackOffset = CCInfo.getNextStackOffset();
|
unsigned NextStackOffset = CCInfo.getNextStackOffset();
|
||||||
|
@ -636,7 +636,7 @@ SDValue NVPTXTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
|||||||
SDValue Chain = CLI.Chain;
|
SDValue Chain = CLI.Chain;
|
||||||
SDValue Callee = CLI.Callee;
|
SDValue Callee = CLI.Callee;
|
||||||
bool &isTailCall = CLI.IsTailCall;
|
bool &isTailCall = CLI.IsTailCall;
|
||||||
ArgListTy &Args = CLI.Args;
|
ArgListTy &Args = CLI.getArgs();
|
||||||
Type *retTy = CLI.RetTy;
|
Type *retTy = CLI.RetTy;
|
||||||
ImmutableCallSite *CS = CLI.CS;
|
ImmutableCallSite *CS = CLI.CS;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user