Lines Matching defs:CLI

3132     TargetLowering::CallLoweringInfo CLI(DAG);
3133 CLI.setDebugLoc(getCurSDLoc())
3138 std::pair<SDValue, SDValue> Result = TLI.LowerCallTo(CLI);
7565 TargetLowering::CallLoweringInfo CLI(DAG);
7566 CLI.setDebugLoc(sdl).setChain(getRoot()).setLibCallee(
7571 CLI.NoMerge = I.hasFnAttr(Attribute::NoMerge);
7572 std::pair<SDValue, SDValue> Result = TLI.LowerCallTo(CLI);
8021 TargetLowering::CallLoweringInfo CLI(DAG);
8022 CLI.setDebugLoc(getCurSDLoc())
8028 CLI.CB = &I;
8030 lowerInvokable(CLI, /*EHPadBB*/ nullptr);
8818 SelectionDAGBuilder::lowerInvokable(TargetLowering::CallLoweringInfo &CLI,
8827 CLI.setChain(getRoot());
8831 std::pair<SDValue, SDValue> Result = TLI.LowerCallTo(CLI);
8833 assert((CLI.IsTailCall || Result.second.getNode()) &&
8851 DAG.setRoot(lowerEndEH(getRoot(), cast_or_null<InvokeInst>(CLI.CB), EHPadBB,
8959 TargetLowering::CallLoweringInfo CLI(DAG);
8960 CLI.setDebugLoc(getCurSDLoc())
8975 CLI.setPtrAuth(*PAI);
8978 std::pair<SDValue, SDValue> Result = lowerInvokable(CLI, EHPadBB);
8985 // The last element of CLI.InVals has the SDValue for swifterror return.
8990 SDValue Src = CLI.InVals.back();
8993 SDValue CopyNode = CLI.DAG.getCopyToReg(Result.second, CLI.DL, VReg, Src);
10576 /// Populate a CallLowerinInfo (into \p CLI) based on the properties of
10583 TargetLowering::CallLoweringInfo &CLI, const CallBase *Call,
10604 CLI.setDebugLoc(getCurSDLoc())
10754 TargetLowering::CallLoweringInfo CLI(DAG);
10755 populateCallLoweringInfo(CLI, &CB, NumMetaOpers, NumCallArgs, Callee,
10757 std::pair<SDValue, SDValue> Result = lowerInvokable(CLI, EHPadBB);
10940 static AttributeList getReturnAttrs(TargetLowering::CallLoweringInfo &CLI) {
10942 if (CLI.RetSExt)
10944 if (CLI.RetZExt)
10946 if (CLI.IsInReg)
10949 return AttributeList::get(CLI.RetTy->getContext(), AttributeList::ReturnIndex,
10958 TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const {
10960 CLI.Ins.clear();
10963 auto &DL = CLI.DAG.getDataLayout();
10964 ComputeValueVTs(*this, DL, CLI.RetTy, RetTys, &Offsets);
10966 if (CLI.IsPostTypeLegalization) {
10976 MVT RegisterVT = getRegisterType(CLI.RetTy->getContext(), RetVT);
10977 unsigned NumRegs = getNumRegisters(CLI.RetTy->getContext(), RetVT);
10986 GetReturnInfo(CLI.CallConv, CLI.RetTy, getReturnAttrs(CLI), Outs, *this, DL);
10989 this->CanLowerReturn(CLI.CallConv, CLI.DAG.getMachineFunction(),
10990 CLI.IsVarArg, Outs, CLI.RetTy->getContext(), CLI.RetTy);
10998 uint64_t TySize = DL.getTypeAllocSize(CLI.RetTy);
10999 Align Alignment = DL.getPrefTypeAlign(CLI.RetTy);
11000 MachineFunction &MF = CLI.DAG.getMachineFunction();
11004 PointerType::get(CLI.RetTy->getContext(), DL.getAllocaAddrSpace());
11006 DemoteStackSlot = CLI.DAG.getFrameIndex(DemoteStackIdx, getFrameIndexTy(DL));
11023 CLI.getArgs().insert(CLI.getArgs().begin(), Entry);
11024 CLI.NumFixedArgs += 1;
11025 CLI.getArgs()[0].IndirectType = CLI.RetTy;
11026 CLI.RetTy = Type::getVoidTy(CLI.RetTy->getContext());
11030 CLI.IsTailCall = false;
11033 CLI.RetTy, CLI.CallConv, CLI.IsVarArg, DL);
11042 MVT RegisterVT = getRegisterTypeForCallingConv(CLI.RetTy->getContext(),
11043 CLI.CallConv, VT);
11044 unsigned NumRegs = getNumRegistersForCallingConv(CLI.RetTy->getContext(),
11045 CLI.CallConv, VT);
11051 MyFlags.Used = CLI.IsReturnValueUsed;
11052 if (CLI.RetTy->isPointerTy()) {
11055 cast<PointerType>(CLI.RetTy)->getAddressSpace());
11057 if (CLI.RetSExt)
11059 if (CLI.RetZExt)
11061 if (CLI.IsInReg)
11063 CLI.Ins.push_back(MyFlags);
11068 // We push in swifterror return as the last element of CLI.Ins.
11069 ArgListTy &Args = CLI.getArgs();
11077 CLI.Ins.push_back(MyFlags);
11083 CLI.Outs.clear();
11084 CLI.OutVals.clear();
11088 // FIXME: Split arguments if CLI.IsPostTypeLegalization
11093 FinalType, CLI.CallConv, CLI.IsVarArg, DL);
11097 Type *ArgTy = VT.getTypeForEVT(CLI.RetTy->getContext());
11122 if (CLI.CallConv == CallingConv::X86_VectorCall &&
11185 MVT PartVT = getRegisterTypeForCallingConv(CLI.RetTy->getContext(),
11186 CLI.CallConv, VT);
11187 unsigned NumParts = getNumRegistersForCallingConv(CLI.RetTy->getContext(),
11188 CLI.CallConv, VT);
11201 assert((CLI.RetTy == Args[i].Ty ||
11202 (CLI.RetTy->isPointerTy() && Args[i].Ty->isPointerTy() &&
11203 CLI.RetTy->getPointerAddressSpace() ==
11217 (ExtendKind != ISD::ANY_EXTEND && CLI.RetSExt == Args[i].IsSExt &&
11218 CLI.RetZExt == Args[i].IsZExt))
11222 getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts, PartVT, CLI.CB,
11223 CLI.CallConv, ExtendKind);
11231 i < CLI.NumFixedArgs, i,
11241 CLI.Outs.push_back(MyFlags);
11242 CLI.OutVals.push_back(Parts[j]);
11246 CLI.Outs[CLI.Outs.size() - 1].Flags.setInConsecutiveRegsLast();
11251 CLI.Chain = LowerCall(CLI, InVals);
11253 // Update CLI.InVals to use outside of this function.
11254 CLI.InVals = InVals;
11257 assert(CLI.Chain.getNode() && CLI.Chain.getValueType() == MVT::Other &&
11259 assert((!CLI.IsTailCall || InVals.empty()) &&
11261 assert((CLI.IsTailCall || InVals.size() == CLI.Ins.size()) &&
11268 if (CLI.IsTailCall) {
11269 CLI.DAG.setRoot(CLI.Chain);
11274 for (unsigned i = 0, e = CLI.Ins.size(); i != e; ++i) {
11276 assert(EVT(CLI.Ins[i].VT) == InVals[i].getValueType() &&
11293 MachineFunction &MF = CLI.DAG.getMachineFunction();
11297 CLI.DAG.getNode(ISD::ADD, CLI.DL, PtrVT, DemoteStackSlot,
11298 CLI.DAG.getConstant(Offsets[i], CLI.DL, PtrVT),
11300 SDValue L = CLI.DAG.getLoad(
11301 RetTys[i], CLI.DL, CLI.Chain, Add,
11302 MachinePointerInfo::getFixedStack(CLI.DAG.getMachineFunction(),
11309 CLI.Chain = CLI.DAG.getNode(ISD::TokenFactor, CLI.DL, MVT::Other, Chains);
11314 if (CLI.RetSExt)
11316 else if (CLI.RetZExt)
11320 MVT RegisterVT = getRegisterTypeForCallingConv(CLI.RetTy->getContext(),
11321 CLI.CallConv, VT);
11322 unsigned NumRegs = getNumRegistersForCallingConv(CLI.RetTy->getContext(),
11323 CLI.CallConv, VT);
11326 CLI.DAG, CLI.DL, &InVals[CurReg], NumRegs, RegisterVT, VT, nullptr,
11327 CLI.Chain, CLI.CallConv, AssertOp));
11335 return std::make_pair(SDValue(), CLI.Chain);
11338 SDValue Res = CLI.DAG.getNode(ISD::MERGE_VALUES, CLI.DL,
11339 CLI.DAG.getVTList(RetTys), ReturnValues);
11340 return std::make_pair(Res, CLI.Chain);