Lines Matching defs:CLI
721 bool ForceRetVoidTy, CallLoweringInfo &CLI) {
740 CLI.setCallee(CI->getCallingConv(), RetTy, Callee, std::move(Args), NumArgs);
742 return lowerCallTo(CLI);
789 CallLoweringInfo CLI;
790 CLI.setIsPatchPoint();
791 if (!lowerCallOperands(I, NumMetaOpers, NumCallArgs, Callee, IsAnyRegCC, CLI))
794 assert(CLI.Call && "No call instruction specified.");
800 assert(CLI.NumResultRegs == 0 && "Unexpected result register.");
802 CLI.ResultReg = createResultReg(TLI.getRegClassFor(ValueType));
803 CLI.NumResultRegs = 1;
804 Ops.push_back(MachineOperand::CreateReg(CLI.ResultReg, /*isDef=*/true));
840 unsigned NumCallRegArgs = IsAnyRegCC ? NumArgs : CLI.OutRegs.size();
858 for (auto Reg : CLI.OutRegs)
877 for (auto Reg : CLI.InRegs)
882 MachineInstrBuilder MIB = BuildMI(*FuncInfo.MBB, CLI.Call, MIMD,
888 MIB->setPhysRegsDeadExcept(CLI.InRegs, TRI);
891 CLI.Call->eraseFromParent();
896 if (CLI.NumResultRegs)
897 updateValueMap(I, CLI.ResultReg, CLI.NumResultRegs);
943 static AttributeList getReturnAttrs(FastISel::CallLoweringInfo &CLI) {
945 if (CLI.RetSExt)
947 if (CLI.RetZExt)
949 if (CLI.IsInReg)
952 return AttributeList::get(CLI.RetTy->getContext(), AttributeList::ReturnIndex,
988 CallLoweringInfo CLI;
989 CLI.setCallee(RetTy, FTy, Symbol, std::move(Args), *CI, NumArgs);
991 return lowerCallTo(CLI);
994 bool FastISel::lowerCallTo(CallLoweringInfo &CLI) {
996 CLI.clearIns();
998 ComputeValueVTs(TLI, DL, CLI.RetTy, RetTys);
1001 GetReturnInfo(CLI.CallConv, CLI.RetTy, getReturnAttrs(CLI), Outs, TLI, DL);
1004 CLI.CallConv, *FuncInfo.MF, CLI.IsVarArg, Outs, CLI.RetTy->getContext(), CLI.RetTy);
1011 MVT RegisterVT = TLI.getRegisterType(CLI.RetTy->getContext(), VT);
1012 unsigned NumRegs = TLI.getNumRegisters(CLI.RetTy->getContext(), VT);
1017 MyFlags.Used = CLI.IsReturnValueUsed;
1018 if (CLI.RetSExt)
1020 if (CLI.RetZExt)
1022 if (CLI.IsInReg)
1024 CLI.Ins.push_back(MyFlags);
1029 CLI.clearOuts();
1030 for (auto &Arg : CLI.getArgs()) {
1035 FinalType, CLI.CallConv, CLI.IsVarArg, DL);
1092 CLI.OutVals.push_back(Arg.Val);
1093 CLI.OutFlags.push_back(Flags);
1096 if (!fastLowerCall(CLI))
1100 assert(CLI.Call && "No call instruction specified.");
1101 CLI.Call->setPhysRegsDeadExcept(CLI.InRegs, TRI);
1103 if (CLI.NumResultRegs && CLI.CB)
1104 updateValueMap(CLI.CB, CLI.ResultReg, CLI.NumResultRegs);
1107 if (CLI.CB)
1108 if (MDNode *MD = CLI.CB->getMetadata("heapallocsite"))
1109 CLI.Call->setHeapAllocMarker(*MF, MD);
1146 CallLoweringInfo CLI;
1147 CLI.setCallee(RetTy, FuncTy, CI->getCalledOperand(), std::move(Args), *CI)
1152 return lowerCallTo(CLI);
1946 bool FastISel::fastLowerCall(CallLoweringInfo & /*CLI*/) { return false; }