Home | History | Annotate | Download | only in SelectionDAG

Lines Matching defs:CLI

681                                  bool ForceRetVoidTy, CallLoweringInfo &CLI) {
703 CLI.setCallee(CI->getCallingConv(), RetTy, Callee, std::move(Args), NumArgs);
705 return lowerCallTo(CLI);
744 CallLoweringInfo CLI;
745 CLI.setIsPatchPoint();
746 if (!lowerCallOperands(I, NumMetaOpers, NumCallArgs, Callee, IsAnyRegCC, CLI))
749 assert(CLI.Call && "No call instruction specified.");
755 assert(CLI.NumResultRegs == 0 && "Unexpected result register.");
756 CLI.ResultReg = createResultReg(TLI.getRegClassFor(MVT::i64));
757 CLI.NumResultRegs = 1;
758 Ops.push_back(MachineOperand::CreateReg(CLI.ResultReg, /*IsDef=*/true));
794 unsigned NumCallRegArgs = IsAnyRegCC ? NumArgs : CLI.OutRegs.size();
812 for (auto Reg : CLI.OutRegs)
831 for (auto Reg : CLI.InRegs)
836 MachineInstrBuilder MIB = BuildMI(*FuncInfo.MBB, CLI.Call, DbgLoc,
842 MIB->setPhysRegsDeadExcept(CLI.InRegs, TRI);
845 CLI.Call->eraseFromParent();
850 if (CLI.NumResultRegs)
851 updateValueMap(I, CLI.ResultReg, CLI.NumResultRegs);
857 static AttributeSet getReturnAttrs(FastISel::CallLoweringInfo &CLI) {
859 if (CLI.RetSExt)
861 if (CLI.RetZExt)
863 if (CLI.IsInReg)
866 return AttributeSet::get(CLI.RetTy->getContext(), AttributeSet::ReturnIndex,
904 CallLoweringInfo CLI;
905 CLI.setCallee(RetTy, FTy, Symbol, std::move(Args), CS, NumArgs);
907 return lowerCallTo(CLI);
910 bool FastISel::lowerCallTo(CallLoweringInfo &CLI) {
912 CLI.clearIns();
914 ComputeValueVTs(TLI, DL, CLI.RetTy, RetTys);
917 GetReturnInfo(CLI.RetTy, getReturnAttrs(CLI), Outs, TLI, DL);
920 CLI.CallConv, *FuncInfo.MF, CLI.IsVarArg, Outs, CLI.RetTy->getContext());
928 MVT RegisterVT = TLI.getRegisterType(CLI.RetTy->getContext(), VT);
929 unsigned NumRegs = TLI.getNumRegisters(CLI.RetTy->getContext(), VT);
934 MyFlags.Used = CLI.IsReturnValueUsed;
935 if (CLI.RetSExt)
937 if (CLI.RetZExt)
939 if (CLI.IsInReg)
941 CLI.Ins.push_back(MyFlags);
946 CLI.clearOuts();
947 for (auto &Arg : CLI.getArgs()) {
952 FinalType, CLI.CallConv, CLI.IsVarArg);
993 CLI.OutVals.push_back(Arg.Val);
994 CLI.OutFlags.push_back(Flags);
997 if (!fastLowerCall(CLI))
1001 assert(CLI.Call && "No call instruction specified.");
1002 CLI.Call->setPhysRegsDeadExcept(CLI.InRegs, TRI);
1004 if (CLI.NumResultRegs && CLI.CS)
1005 updateValueMap(CLI.CS->getInstruction(), CLI.ResultReg, CLI.NumResultRegs);
1043 CallLoweringInfo CLI;
1044 CLI.setCallee(RetTy, FuncTy, CI->getCalledValue(), std::move(Args), CS)
1047 return lowerCallTo(CLI);
1670 bool FastISel::fastLowerCall(CallLoweringInfo & /*CLI*/) { return false; }