mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-06 11:06:50 +00:00
Remove a few non-DebugLoc versions of node creation
functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63703 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7bcaefaf59
commit
8ad9b43e69
@ -306,6 +306,8 @@ public:
|
||||
int Offset = 0) {
|
||||
return getConstantPool(C, VT, Align, Offset, true);
|
||||
}
|
||||
// When generating a branch to a BB, we don't in general know enough
|
||||
// to provide debug info for the BB at that time, so keep this one around.
|
||||
SDValue getBasicBlock(MachineBasicBlock *MBB);
|
||||
SDValue getBasicBlock(MachineBasicBlock *MBB, DebugLoc dl);
|
||||
SDValue getExternalSymbol(const char *Sym, MVT VT);
|
||||
@ -317,7 +319,7 @@ public:
|
||||
SDValue getRegister(unsigned Reg, MVT VT);
|
||||
SDValue getDbgStopPoint(SDValue Root, unsigned Line, unsigned Col,
|
||||
Value *CU);
|
||||
SDValue getLabel(unsigned Opcode, SDValue Root, unsigned LabelID);
|
||||
// SDValue getLabel(unsigned Opcode, SDValue Root, unsigned LabelID);
|
||||
SDValue getLabel(unsigned Opcode, DebugLoc dl, SDValue Root,
|
||||
unsigned LabelID);
|
||||
|
||||
@ -391,8 +393,8 @@ public:
|
||||
|
||||
/// Returns the ConvertRndSat Note: Avoid using this node because it may
|
||||
/// disappear in the future and most targets don't support it.
|
||||
SDValue getConvertRndSat(MVT VT, SDValue Val, SDValue DTy, SDValue STy,
|
||||
SDValue Rnd, SDValue Sat, ISD::CvtCode Code);
|
||||
// SDValue getConvertRndSat(MVT VT, SDValue Val, SDValue DTy, SDValue STy,
|
||||
// SDValue Rnd, SDValue Sat, ISD::CvtCode Code);
|
||||
SDValue getConvertRndSat(MVT VT, DebugLoc dl, SDValue Val, SDValue DTy,
|
||||
SDValue STy,
|
||||
SDValue Rnd, SDValue Sat, ISD::CvtCode Code);
|
||||
@ -493,36 +495,16 @@ public:
|
||||
SDValue N1, SDValue N2, SDValue N3, SDValue N4,
|
||||
SDValue N5);
|
||||
|
||||
SDValue getMemcpy(SDValue Chain, SDValue Dst, SDValue Src,
|
||||
SDValue Size, unsigned Align, bool AlwaysInline,
|
||||
const Value *DstSV, uint64_t DstSVOff,
|
||||
const Value *SrcSV, uint64_t SrcSVOff) {
|
||||
return getMemcpy(Chain, DebugLoc::getUnknownLoc(), Dst, Src, Size, Align,
|
||||
AlwaysInline, DstSV, DstSVOff, SrcSV, SrcSVOff);
|
||||
}
|
||||
SDValue getMemcpy(SDValue Chain, DebugLoc dl, SDValue Dst, SDValue Src,
|
||||
SDValue Size, unsigned Align, bool AlwaysInline,
|
||||
const Value *DstSV, uint64_t DstSVOff,
|
||||
const Value *SrcSV, uint64_t SrcSVOff);
|
||||
|
||||
SDValue getMemmove(SDValue Chain, SDValue Dst, SDValue Src,
|
||||
SDValue Size, unsigned Align,
|
||||
const Value *DstSV, uint64_t DstOSVff,
|
||||
const Value *SrcSV, uint64_t SrcSVOff) {
|
||||
return getMemmove(Chain, DebugLoc::getUnknownLoc(), Dst, Src, Size, Align,
|
||||
DstSV, DstOSVff, SrcSV, SrcSVOff);
|
||||
}
|
||||
SDValue getMemmove(SDValue Chain, DebugLoc dl, SDValue Dst, SDValue Src,
|
||||
SDValue Size, unsigned Align,
|
||||
const Value *DstSV, uint64_t DstOSVff,
|
||||
const Value *SrcSV, uint64_t SrcSVOff);
|
||||
|
||||
SDValue getMemset(SDValue Chain, SDValue Dst, SDValue Src,
|
||||
SDValue Size, unsigned Align,
|
||||
const Value *DstSV, uint64_t DstSVOff) {
|
||||
return getMemset(Chain, DebugLoc::getUnknownLoc(), Dst, Src, Size, Align,
|
||||
DstSV, DstSVOff);
|
||||
}
|
||||
SDValue getMemset(SDValue Chain, DebugLoc dl, SDValue Dst, SDValue Src,
|
||||
SDValue Size, unsigned Align,
|
||||
const Value *DstSV, uint64_t DstSVOff);
|
||||
@ -569,25 +551,17 @@ public:
|
||||
|
||||
/// getVAArg - VAArg produces a result and token chain, and takes a pointer
|
||||
/// and a source value as input.
|
||||
SDValue getVAArg(MVT VT, SDValue Chain, SDValue Ptr,
|
||||
SDValue SV);
|
||||
SDValue getVAArg(MVT VT, DebugLoc dl, SDValue Chain, SDValue Ptr,
|
||||
SDValue SV);
|
||||
|
||||
/// getAtomic - Gets a node for an atomic op, produces result and chain and
|
||||
/// takes 3 operands
|
||||
SDValue getAtomic(unsigned Opcode, MVT MemVT, SDValue Chain, SDValue Ptr,
|
||||
SDValue Cmp, SDValue Swp, const Value* PtrVal,
|
||||
unsigned Alignment=0);
|
||||
SDValue getAtomic(unsigned Opcode, DebugLoc dl, MVT MemVT, SDValue Chain,
|
||||
SDValue Ptr, SDValue Cmp, SDValue Swp, const Value* PtrVal,
|
||||
unsigned Alignment=0);
|
||||
|
||||
/// getAtomic - Gets a node for an atomic op, produces result and chain and
|
||||
/// takes 2 operands.
|
||||
SDValue getAtomic(unsigned Opcode, MVT MemVT, SDValue Chain, SDValue Ptr,
|
||||
SDValue Val, const Value* PtrVal,
|
||||
unsigned Alignment = 0);
|
||||
SDValue getAtomic(unsigned Opcode, DebugLoc dl, MVT MemVT, SDValue Chain,
|
||||
SDValue Ptr, SDValue Val, const Value* PtrVal,
|
||||
unsigned Alignment = 0);
|
||||
@ -624,9 +598,6 @@ public:
|
||||
|
||||
/// getCall - Create a CALL node from the given information.
|
||||
///
|
||||
SDValue getCall(unsigned CallingConv, bool IsVarArgs, bool IsTailCall,
|
||||
bool isInreg, SDVTList VTs, const SDValue *Operands,
|
||||
unsigned NumOperands);
|
||||
SDValue getCall(unsigned CallingConv, DebugLoc dl, bool IsVarArgs,
|
||||
bool IsTailCall, bool isInreg, SDVTList VTs,
|
||||
const SDValue *Operands, unsigned NumOperands);
|
||||
|
@ -1068,7 +1068,6 @@ SDValue SelectionDAG::getConstantPool(MachineConstantPoolValue *C, MVT VT,
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
|
||||
SDValue SelectionDAG::getBasicBlock(MachineBasicBlock *MBB) {
|
||||
FoldingSetNodeID ID;
|
||||
AddNodeIDNode(ID, ISD::BasicBlock, getVTList(MVT::Other), 0, 0);
|
||||
@ -1175,26 +1174,6 @@ SDValue SelectionDAG::getCondCode(ISD::CondCode Cond) {
|
||||
return SDValue(CondCodeNodes[Cond], 0);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getConvertRndSat(MVT VT,
|
||||
SDValue Val, SDValue DTy,
|
||||
SDValue STy, SDValue Rnd, SDValue Sat,
|
||||
ISD::CvtCode Code) {
|
||||
// If the src and dest types are the same, no conversion is necessary.
|
||||
if (DTy == STy)
|
||||
return Val;
|
||||
|
||||
FoldingSetNodeID ID;
|
||||
void* IP = 0;
|
||||
if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
|
||||
return SDValue(E, 0);
|
||||
CvtRndSatSDNode *N = NodeAllocator.Allocate<CvtRndSatSDNode>();
|
||||
SDValue Ops[] = { Val, DTy, STy, Rnd, Sat };
|
||||
new (N) CvtRndSatSDNode(VT, Ops, 5, Code);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getConvertRndSat(MVT VT, DebugLoc dl,
|
||||
SDValue Val, SDValue DTy,
|
||||
SDValue STy, SDValue Rnd, SDValue Sat,
|
||||
@ -1238,23 +1217,6 @@ SDValue SelectionDAG::getDbgStopPoint(SDValue Root,
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getLabel(unsigned Opcode,
|
||||
SDValue Root,
|
||||
unsigned LabelID) {
|
||||
FoldingSetNodeID ID;
|
||||
SDValue Ops[] = { Root };
|
||||
AddNodeIDNode(ID, Opcode, getVTList(MVT::Other), &Ops[0], 1);
|
||||
ID.AddInteger(LabelID);
|
||||
void *IP = 0;
|
||||
if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
|
||||
return SDValue(E, 0);
|
||||
SDNode *N = NodeAllocator.Allocate<LabelSDNode>();
|
||||
new (N) LabelSDNode(Opcode, Root, LabelID);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getLabel(unsigned Opcode, DebugLoc dl,
|
||||
SDValue Root,
|
||||
unsigned LabelID) {
|
||||
@ -3431,35 +3393,6 @@ SDValue SelectionDAG::getMemset(SDValue Chain, DebugLoc dl, SDValue Dst,
|
||||
return CallResult.second;
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getAtomic(unsigned Opcode, MVT MemVT,
|
||||
SDValue Chain,
|
||||
SDValue Ptr, SDValue Cmp,
|
||||
SDValue Swp, const Value* PtrVal,
|
||||
unsigned Alignment) {
|
||||
assert(Opcode == ISD::ATOMIC_CMP_SWAP && "Invalid Atomic Op");
|
||||
assert(Cmp.getValueType() == Swp.getValueType() && "Invalid Atomic Op Types");
|
||||
|
||||
MVT VT = Cmp.getValueType();
|
||||
|
||||
if (Alignment == 0) // Ensure that codegen never sees alignment 0
|
||||
Alignment = getMVTAlignment(MemVT);
|
||||
|
||||
SDVTList VTs = getVTList(VT, MVT::Other);
|
||||
FoldingSetNodeID ID;
|
||||
ID.AddInteger(MemVT.getRawBits());
|
||||
SDValue Ops[] = {Chain, Ptr, Cmp, Swp};
|
||||
AddNodeIDNode(ID, Opcode, VTs, Ops, 4);
|
||||
void* IP = 0;
|
||||
if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
|
||||
return SDValue(E, 0);
|
||||
SDNode* N = NodeAllocator.Allocate<AtomicSDNode>();
|
||||
new (N) AtomicSDNode(Opcode, VTs, MemVT,
|
||||
Chain, Ptr, Cmp, Swp, PtrVal, Alignment);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getAtomic(unsigned Opcode, DebugLoc dl, MVT MemVT,
|
||||
SDValue Chain,
|
||||
SDValue Ptr, SDValue Cmp,
|
||||
@ -3489,45 +3422,6 @@ SDValue SelectionDAG::getAtomic(unsigned Opcode, DebugLoc dl, MVT MemVT,
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getAtomic(unsigned Opcode, MVT MemVT,
|
||||
SDValue Chain,
|
||||
SDValue Ptr, SDValue Val,
|
||||
const Value* PtrVal,
|
||||
unsigned Alignment) {
|
||||
assert((Opcode == ISD::ATOMIC_LOAD_ADD ||
|
||||
Opcode == ISD::ATOMIC_LOAD_SUB ||
|
||||
Opcode == ISD::ATOMIC_LOAD_AND ||
|
||||
Opcode == ISD::ATOMIC_LOAD_OR ||
|
||||
Opcode == ISD::ATOMIC_LOAD_XOR ||
|
||||
Opcode == ISD::ATOMIC_LOAD_NAND ||
|
||||
Opcode == ISD::ATOMIC_LOAD_MIN ||
|
||||
Opcode == ISD::ATOMIC_LOAD_MAX ||
|
||||
Opcode == ISD::ATOMIC_LOAD_UMIN ||
|
||||
Opcode == ISD::ATOMIC_LOAD_UMAX ||
|
||||
Opcode == ISD::ATOMIC_SWAP) &&
|
||||
"Invalid Atomic Op");
|
||||
|
||||
MVT VT = Val.getValueType();
|
||||
|
||||
if (Alignment == 0) // Ensure that codegen never sees alignment 0
|
||||
Alignment = getMVTAlignment(MemVT);
|
||||
|
||||
SDVTList VTs = getVTList(VT, MVT::Other);
|
||||
FoldingSetNodeID ID;
|
||||
ID.AddInteger(MemVT.getRawBits());
|
||||
SDValue Ops[] = {Chain, Ptr, Val};
|
||||
AddNodeIDNode(ID, Opcode, VTs, Ops, 3);
|
||||
void* IP = 0;
|
||||
if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
|
||||
return SDValue(E, 0);
|
||||
SDNode* N = NodeAllocator.Allocate<AtomicSDNode>();
|
||||
new (N) AtomicSDNode(Opcode, VTs, MemVT,
|
||||
Chain, Ptr, Val, PtrVal, Alignment);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getAtomic(unsigned Opcode, DebugLoc dl, MVT MemVT,
|
||||
SDValue Chain,
|
||||
SDValue Ptr, SDValue Val,
|
||||
@ -3674,31 +3568,6 @@ SelectionDAG::getMemIntrinsicNode(unsigned Opcode, DebugLoc dl, SDVTList VTList,
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue
|
||||
SelectionDAG::getCall(unsigned CallingConv, bool IsVarArgs, bool IsTailCall,
|
||||
bool IsInreg, SDVTList VTs,
|
||||
const SDValue *Operands, unsigned NumOperands) {
|
||||
// Do not include isTailCall in the folding set profile.
|
||||
FoldingSetNodeID ID;
|
||||
AddNodeIDNode(ID, ISD::CALL, VTs, Operands, NumOperands);
|
||||
ID.AddInteger(CallingConv);
|
||||
ID.AddInteger(IsVarArgs);
|
||||
void *IP = 0;
|
||||
if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
|
||||
// Instead of including isTailCall in the folding set, we just
|
||||
// set the flag of the existing node.
|
||||
if (!IsTailCall)
|
||||
cast<CallSDNode>(E)->setNotTailCall();
|
||||
return SDValue(E, 0);
|
||||
}
|
||||
SDNode *N = NodeAllocator.Allocate<CallSDNode>();
|
||||
new (N) CallSDNode(CallingConv, IsVarArgs, IsTailCall, IsInreg,
|
||||
VTs, Operands, NumOperands);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue
|
||||
SelectionDAG::getCall(unsigned CallingConv, DebugLoc dl, bool IsVarArgs,
|
||||
bool IsTailCall, bool IsInreg, SDVTList VTs,
|
||||
@ -4058,13 +3927,6 @@ SelectionDAG::getIndexedStore(SDValue OrigStore, DebugLoc dl, SDValue Base,
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getVAArg(MVT VT,
|
||||
SDValue Chain, SDValue Ptr,
|
||||
SDValue SV) {
|
||||
SDValue Ops[] = { Chain, Ptr, SV };
|
||||
return getNode(ISD::VAARG, getVTList(VT, MVT::Other), Ops, 3);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getVAArg(MVT VT, DebugLoc dl,
|
||||
SDValue Chain, SDValue Ptr,
|
||||
SDValue SV) {
|
||||
|
@ -3905,7 +3905,8 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
|
||||
if (DW && DW->ValidDebugInfo(RSI.getContext())) {
|
||||
unsigned LabelID =
|
||||
DW->RecordRegionStart(cast<GlobalVariable>(RSI.getContext()));
|
||||
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getRoot(), LabelID));
|
||||
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getCurDebugLoc(),
|
||||
getRoot(), LabelID));
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -3916,7 +3917,8 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
|
||||
if (DW && DW->ValidDebugInfo(REI.getContext())) {
|
||||
unsigned LabelID =
|
||||
DW->RecordRegionEnd(cast<GlobalVariable>(REI.getContext()));
|
||||
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getRoot(), LabelID));
|
||||
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getCurDebugLoc(),
|
||||
getRoot(), LabelID));
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -3941,7 +3943,8 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
|
||||
unsigned LabelID = DW->RecordSourceLine(Line, 0, SrcFile);
|
||||
|
||||
if (DW->getRecordSourceLineCount() != 1)
|
||||
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getRoot(), LabelID));
|
||||
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getCurDebugLoc(),
|
||||
getRoot(), LabelID));
|
||||
|
||||
setCurDebugLoc(DebugLoc::get(DAG.getMachineFunction().
|
||||
getOrCreateDebugLocID(SrcFile, Line, 0)));
|
||||
@ -4386,7 +4389,8 @@ void SelectionDAGLowering::LowerCallTo(CallSite CS, SDValue Callee,
|
||||
// Both PendingLoads and PendingExports must be flushed here;
|
||||
// this call might not return.
|
||||
(void)getRoot();
|
||||
DAG.setRoot(DAG.getLabel(ISD::EH_LABEL, getControlRoot(), BeginLabel));
|
||||
DAG.setRoot(DAG.getLabel(ISD::EH_LABEL, getCurDebugLoc(),
|
||||
getControlRoot(), BeginLabel));
|
||||
}
|
||||
|
||||
std::pair<SDValue,SDValue> Result =
|
||||
@ -4405,7 +4409,8 @@ void SelectionDAGLowering::LowerCallTo(CallSite CS, SDValue Callee,
|
||||
// Insert a label at the end of the invoke call to mark the try range. This
|
||||
// can be used to detect deletion of the invoke via the MachineModuleInfo.
|
||||
EndLabel = MMI->NextLabelID();
|
||||
DAG.setRoot(DAG.getLabel(ISD::EH_LABEL, getRoot(), EndLabel));
|
||||
DAG.setRoot(DAG.getLabel(ISD::EH_LABEL, getCurDebugLoc(),
|
||||
getRoot(), EndLabel));
|
||||
|
||||
// Inform MachineModuleInfo of range.
|
||||
MMI->addInvoke(LandingPad, BeginLabel, EndLabel);
|
||||
|
@ -1005,9 +1005,9 @@ SDValue PIC16TargetLowering::LowerCALL(SDValue Op, SelectionDAG &DAG) {
|
||||
|
||||
SDVTList VTs = DAG.getVTList(&NodeTys[0], NodeTys.size());
|
||||
SDValue NewCall =
|
||||
DAG.getCall(TheCall->getCallingConv(), TheCall->isVarArg(),
|
||||
TheCall->isTailCall(), TheCall->isInreg(), VTs,
|
||||
&Ops[0], Ops.size());
|
||||
DAG.getCall(TheCall->getCallingConv(), TheCall->getDebugLoc(),
|
||||
TheCall->isVarArg(), TheCall->isTailCall(),
|
||||
TheCall->isInreg(), VTs, &Ops[0], Ops.size());
|
||||
|
||||
return NewCall;
|
||||
}
|
||||
|
@ -2076,10 +2076,10 @@ SDValue PPCTargetLowering::EmitTailCallLoadFPAndRetAddr(SelectionDAG & DAG,
|
||||
static SDValue
|
||||
CreateCopyOfByValArgument(SDValue Src, SDValue Dst, SDValue Chain,
|
||||
ISD::ArgFlagsTy Flags, SelectionDAG &DAG,
|
||||
unsigned Size) {
|
||||
unsigned Size, DebugLoc dl) {
|
||||
SDValue SizeNode = DAG.getConstant(Size, MVT::i32);
|
||||
return DAG.getMemcpy(Chain, Dst, Src, SizeNode, Flags.getByValAlign(), false,
|
||||
NULL, 0, NULL, 0);
|
||||
return DAG.getMemcpy(Chain, dl, Dst, Src, SizeNode, Flags.getByValAlign(),
|
||||
false, NULL, 0, NULL, 0);
|
||||
}
|
||||
|
||||
/// LowerMemOpCallTo - Store the argument to the stack or remember it in case of
|
||||
@ -2118,6 +2118,7 @@ SDValue PPCTargetLowering::LowerCALL(SDValue Op, SelectionDAG &DAG,
|
||||
&& CC == CallingConv::Fast && PerformTailCallOpt;
|
||||
SDValue Callee = TheCall->getCallee();
|
||||
unsigned NumOps = TheCall->getNumArgs();
|
||||
DebugLoc dl = TheCall->getDebugLoc();
|
||||
|
||||
bool isMachoABI = Subtarget.isMachoABI();
|
||||
bool isELF32_ABI = Subtarget.isELF32_ABI();
|
||||
@ -2251,7 +2252,7 @@ SDValue PPCTargetLowering::LowerCALL(SDValue Op, SelectionDAG &DAG,
|
||||
SDValue AddPtr = DAG.getNode(ISD::ADD, PtrVT, PtrOff, Const);
|
||||
SDValue MemcpyCall = CreateCopyOfByValArgument(Arg, AddPtr,
|
||||
CallSeqStart.getNode()->getOperand(0),
|
||||
Flags, DAG, Size);
|
||||
Flags, DAG, Size, dl);
|
||||
// This must go outside the CALLSEQ_START..END.
|
||||
SDValue NewCallSeqStart = DAG.getCALLSEQ_START(MemcpyCall,
|
||||
CallSeqStart.getNode()->getOperand(1));
|
||||
@ -2267,7 +2268,7 @@ SDValue PPCTargetLowering::LowerCALL(SDValue Op, SelectionDAG &DAG,
|
||||
// registers. (This is not what the doc says.)
|
||||
SDValue MemcpyCall = CreateCopyOfByValArgument(Arg, PtrOff,
|
||||
CallSeqStart.getNode()->getOperand(0),
|
||||
Flags, DAG, Size);
|
||||
Flags, DAG, Size, dl);
|
||||
// This must go outside the CALLSEQ_START..END.
|
||||
SDValue NewCallSeqStart = DAG.getCALLSEQ_START(MemcpyCall,
|
||||
CallSeqStart.getNode()->getOperand(1));
|
||||
|
Loading…
Reference in New Issue
Block a user