reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
 8989   CLI.Ins.clear();
 8990   Type *OrigRetTy = CLI.RetTy;
 8993   auto &DL = CLI.DAG.getDataLayout();
 8994   ComputeValueVTs(*this, DL, CLI.RetTy, RetTys, &Offsets);
 8996   if (CLI.IsPostTypeLegalization) {
 9006       MVT RegisterVT = getRegisterType(CLI.RetTy->getContext(), RetVT);
 9007       unsigned NumRegs = getNumRegisters(CLI.RetTy->getContext(), RetVT);
 9016   GetReturnInfo(CLI.CallConv, CLI.RetTy, getReturnAttrs(CLI), Outs, *this, DL);
 9016   GetReturnInfo(CLI.CallConv, CLI.RetTy, getReturnAttrs(CLI), Outs, *this, DL);
 9016   GetReturnInfo(CLI.CallConv, CLI.RetTy, getReturnAttrs(CLI), Outs, *this, DL);
 9019       this->CanLowerReturn(CLI.CallConv, CLI.DAG.getMachineFunction(),
 9019       this->CanLowerReturn(CLI.CallConv, CLI.DAG.getMachineFunction(),
 9020                            CLI.IsVarArg, Outs, CLI.RetTy->getContext());
 9020                            CLI.IsVarArg, Outs, CLI.RetTy->getContext());
 9028     uint64_t TySize = DL.getTypeAllocSize(CLI.RetTy);
 9029     unsigned Align = DL.getPrefTypeAlignment(CLI.RetTy);
 9030     MachineFunction &MF = CLI.DAG.getMachineFunction();
 9032     Type *StackSlotPtrType = PointerType::get(CLI.RetTy,
 9035     DemoteStackSlot = CLI.DAG.getFrameIndex(DemoteStackIdx, getFrameIndexTy(DL));
 9050     CLI.getArgs().insert(CLI.getArgs().begin(), Entry);
 9050     CLI.getArgs().insert(CLI.getArgs().begin(), Entry);
 9051     CLI.NumFixedArgs += 1;
 9052     CLI.RetTy = Type::getVoidTy(CLI.RetTy->getContext());
 9052     CLI.RetTy = Type::getVoidTy(CLI.RetTy->getContext());
 9056     CLI.IsTailCall = false;
 9059         CLI.RetTy, CLI.CallConv, CLI.IsVarArg);
 9059         CLI.RetTy, CLI.CallConv, CLI.IsVarArg);
 9059         CLI.RetTy, CLI.CallConv, CLI.IsVarArg);
 9068       MVT RegisterVT = getRegisterTypeForCallingConv(CLI.RetTy->getContext(),
 9069                                                      CLI.CallConv, VT);
 9070       unsigned NumRegs = getNumRegistersForCallingConv(CLI.RetTy->getContext(),
 9071                                                        CLI.CallConv, VT);
 9077         MyFlags.Used = CLI.IsReturnValueUsed;
 9078         if (CLI.RetTy->isPointerTy()) {
 9081               cast<PointerType>(CLI.RetTy)->getAddressSpace());
 9083         if (CLI.RetSExt)
 9085         if (CLI.RetZExt)
 9087         if (CLI.IsInReg)
 9089         CLI.Ins.push_back(MyFlags);
 9095   ArgListTy &Args = CLI.getArgs();
 9103         CLI.Ins.push_back(MyFlags);
 9109   CLI.Outs.clear();
 9110   CLI.OutVals.clear();
 9119         FinalType, CLI.CallConv, CLI.IsVarArg);
 9119         FinalType, CLI.CallConv, CLI.IsVarArg);
 9123       Type *ArgTy = VT.getTypeForEVT(CLI.RetTy->getContext());
 9145         if (CLI.CallConv == CallingConv::X86_VectorCall &&
 9196       MVT PartVT = getRegisterTypeForCallingConv(CLI.RetTy->getContext(),
 9197                                                  CLI.CallConv, VT);
 9198       unsigned NumParts = getNumRegistersForCallingConv(CLI.RetTy->getContext(),
 9199                                                         CLI.CallConv, VT);
 9212         assert((CLI.RetTy == Args[i].Ty ||
 9213                 (CLI.RetTy->isPointerTy() && Args[i].Ty->isPointerTy() &&
 9214                  CLI.RetTy->getPointerAddressSpace() ==
 9228             (ExtendKind != ISD::ANY_EXTEND && CLI.RetSExt == Args[i].IsSExt &&
 9229              CLI.RetZExt == Args[i].IsZExt))
 9233       getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts, PartVT,
 9233       getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts, PartVT,
 9234                      CLI.CS.getInstruction(), CLI.CallConv, ExtendKind);
 9234                      CLI.CS.getInstruction(), CLI.CallConv, ExtendKind);
 9239                                i < CLI.NumFixedArgs,
 9249         CLI.Outs.push_back(MyFlags);
 9250         CLI.OutVals.push_back(Parts[j]);
 9254         CLI.Outs[CLI.Outs.size() - 1].Flags.setInConsecutiveRegsLast();
 9254         CLI.Outs[CLI.Outs.size() - 1].Flags.setInConsecutiveRegsLast();
 9259   CLI.Chain = LowerCall(CLI, InVals);
 9259   CLI.Chain = LowerCall(CLI, InVals);
 9262   CLI.InVals = InVals;
 9265   assert(CLI.Chain.getNode() && CLI.Chain.getValueType() == MVT::Other &&
 9265   assert(CLI.Chain.getNode() && CLI.Chain.getValueType() == MVT::Other &&
 9267   assert((!CLI.IsTailCall || InVals.empty()) &&
 9269   assert((CLI.IsTailCall || InVals.size() == CLI.Ins.size()) &&
 9269   assert((CLI.IsTailCall || InVals.size() == CLI.Ins.size()) &&
 9276   if (CLI.IsTailCall) {
 9277     CLI.DAG.setRoot(CLI.Chain);
 9277     CLI.DAG.setRoot(CLI.Chain);
 9282   for (unsigned i = 0, e = CLI.Ins.size(); i != e; ++i) {
 9284     assert(EVT(CLI.Ins[i].VT) == InVals[i].getValueType() &&
 9310       SDValue Add = CLI.DAG.getNode(ISD::ADD, CLI.DL, PtrVT, DemoteStackSlot,
 9310       SDValue Add = CLI.DAG.getNode(ISD::ADD, CLI.DL, PtrVT, DemoteStackSlot,
 9311                                     CLI.DAG.getConstant(Offsets[i], CLI.DL,
 9311                                     CLI.DAG.getConstant(Offsets[i], CLI.DL,
 9313       SDValue L = CLI.DAG.getLoad(
 9314           RetTys[i], CLI.DL, CLI.Chain, Add,
 9314           RetTys[i], CLI.DL, CLI.Chain, Add,
 9315           MachinePointerInfo::getFixedStack(CLI.DAG.getMachineFunction(),
 9322     CLI.Chain = CLI.DAG.getNode(ISD::TokenFactor, CLI.DL, MVT::Other, Chains);
 9322     CLI.Chain = CLI.DAG.getNode(ISD::TokenFactor, CLI.DL, MVT::Other, Chains);
 9322     CLI.Chain = CLI.DAG.getNode(ISD::TokenFactor, CLI.DL, MVT::Other, Chains);
 9327     if (CLI.RetSExt)
 9329     else if (CLI.RetZExt)
 9334       MVT RegisterVT = getRegisterTypeForCallingConv(CLI.RetTy->getContext(),
 9335                                                      CLI.CallConv, VT);
 9336       unsigned NumRegs = getNumRegistersForCallingConv(CLI.RetTy->getContext(),
 9337                                                        CLI.CallConv, VT);
 9339       ReturnValues.push_back(getCopyFromParts(CLI.DAG, CLI.DL, &InVals[CurReg],
 9339       ReturnValues.push_back(getCopyFromParts(CLI.DAG, CLI.DL, &InVals[CurReg],
 9341                                               CLI.CallConv, AssertOp));
 9349       return std::make_pair(SDValue(), CLI.Chain);
 9352   SDValue Res = CLI.DAG.getNode(ISD::MERGE_VALUES, CLI.DL,
 9352   SDValue Res = CLI.DAG.getNode(ISD::MERGE_VALUES, CLI.DL,
 9353                                 CLI.DAG.getVTList(RetTys), ReturnValues);
 9354   return std::make_pair(Res, CLI.Chain);