Lines Matching defs:DAG
58 SelectionDAG &DAG, ArrayRef<MCPhysReg> ClobberSet) const {
64 MachineFrameInfo &MFI = DAG.getMachineFunction().getFrameInfo();
69 DAG.getSubtarget().getRegisterInfo());
74 static SDValue emitRepstos(const X86Subtarget &Subtarget, SelectionDAG &DAG,
98 Chain = DAG.getCopyToReg(Chain, dl, AX, Val, InGlue);
100 Chain = DAG.getCopyToReg(Chain, dl, CX, Size, InGlue);
102 Chain = DAG.getCopyToReg(Chain, dl, DI, Dst, InGlue);
105 SDVTList Tys = DAG.getVTList(MVT::Other, MVT::Glue);
106 SDValue Ops[] = {Chain, DAG.getValueType(AVT), InGlue};
107 return DAG.getNode(X86ISD::REP_STOS, dl, Tys, Ops);
111 static SDValue emitRepstosB(const X86Subtarget &Subtarget, SelectionDAG &DAG,
114 return emitRepstos(Subtarget, DAG, dl, Chain, Dst, Val,
115 DAG.getIntPtrConstant(Size, dl), MVT::i8);
122 static SDValue emitConstantSizeRepstos(SelectionDAG &DAG,
131 if (DAG.getMachineFunction().getFunction().hasMinSize()) {
141 Val = DAG.getConstant(0, dl, BlockType);
143 return emitRepstos(Subtarget, DAG, dl, Chain, Dst, Val,
144 DAG.getIntPtrConstant(BlockCount, dl), BlockType);
147 return emitRepstosB(Subtarget, DAG, dl, Chain, Dst, Val, Size);
181 Val = DAG.getConstant(Value, dl, BlockType);
185 emitRepstos(Subtarget, DAG, dl, Chain, Dst, Val,
186 DAG.getIntPtrConstant(BlockCount, dl), BlockType);
198 DAG.getMemset(Chain, dl,
199 DAG.getNode(ISD::ADD, dl, AddrVT, Dst,
200 DAG.getConstant(Offset, dl, AddrVT)),
201 OriginalVal, DAG.getConstant(BytesLeft, dl, SizeVT),
205 return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Results);
209 SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Val,
219 if (isBaseRegConflictPossible(DAG, ClobberSet))
227 DAG.getMachineFunction().getSubtarget<X86Subtarget>();
229 DAG, Subtarget, dl, Chain, Dst, Val, ConstantSize->getZExtValue(),
234 static SDValue emitRepmovs(const X86Subtarget &Subtarget, SelectionDAG &DAG,
243 Chain = DAG.getCopyToReg(Chain, dl, CX, Size, InGlue);
245 Chain = DAG.getCopyToReg(Chain, dl, DI, Dst, InGlue);
247 Chain = DAG.getCopyToReg(Chain, dl, SI, Src, InGlue);
250 SDVTList Tys = DAG.getVTList(MVT::Other, MVT::Glue);
251 SDValue Ops[] = {Chain, DAG.getValueType(AVT), InGlue};
252 return DAG.getNode(X86ISD::REP_MOVS, dl, Tys, Ops);
256 static SDValue emitRepmovsB(const X86Subtarget &Subtarget, SelectionDAG &DAG,
259 return emitRepmovs(Subtarget, DAG, dl, Chain, Dst, Src,
260 DAG.getIntPtrConstant(Size, dl), MVT::i8);
268 SelectionDAG &DAG, const X86Subtarget &Subtarget, const SDLoc &dl,
274 if (DAG.getMachineFunction().getFunction().hasMinSize())
275 return emitRepmovsB(Subtarget, DAG, dl, Chain, Dst, Src, Size);
284 return emitRepmovsB(Subtarget, DAG, dl, Chain, Dst, Src, Size);
297 emitRepmovs(Subtarget, DAG, dl, Chain, Dst, Src,
298 DAG.getIntPtrConstant(BlockCount, dl), BlockType);
312 Results.push_back(DAG.getMemcpy(
314 DAG.getNode(ISD::ADD, dl, DstVT, Dst, DAG.getConstant(Offset, dl, DstVT)),
315 DAG.getNode(ISD::ADD, dl, SrcVT, Src, DAG.getConstant(Offset, dl, SrcVT)),
316 DAG.getConstant(BytesLeft, dl, SizeVT), Alignment, isVolatile,
319 return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Results);
323 SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Src,
334 if (isBaseRegConflictPossible(DAG, ClobberSet))
338 DAG.getMachineFunction().getSubtarget<X86Subtarget>();
342 return emitRepmovs(Subtarget, DAG, dl, Chain, Dst, Src, Size, MVT::i8);
346 return emitConstantSizeRepmov(DAG, Subtarget, dl, Chain, Dst, Src,