Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:CLI

5060     TargetLowering::CallLoweringInfo CLI(DAG);
5061 CLI.setDebugLoc(sdl).setChain(getRoot()).setCallee(
5067 std::pair<SDValue, SDValue> Result = TLI.LowerCallTo(CLI);
5274 SelectionDAGBuilder::lowerInvokable(TargetLowering::CallLoweringInfo &CLI,
5300 CLI.setChain(getRoot());
5303 std::pair<SDValue, SDValue> Result = TLI.LowerCallTo(CLI);
5305 assert((CLI.IsTailCall || Result.second.getNode()) &&
5330 assert(CLI.CS);
5332 EHInfo->addIPToStateRange(cast<InvokeInst>(CLI.CS->getInstruction()),
5379 TargetLowering::CallLoweringInfo CLI(DAG);
5380 CLI.setDebugLoc(getCurSDLoc()).setChain(getRoot())
5383 std::pair<SDValue, SDValue> Result = lowerInvokable(CLI, EHPadBB);
6710 TargetLowering::CallLoweringInfo CLI(DAG);
6711 CLI.setDebugLoc(getCurSDLoc()).setChain(getRoot())
6715 return lowerInvokable(CLI, EHPadBB);
6967 static AttributeSet getReturnAttrs(TargetLowering::CallLoweringInfo &CLI) {
6969 if (CLI.RetSExt)
6971 if (CLI.RetZExt)
6973 if (CLI.IsInReg)
6976 return AttributeSet::get(CLI.RetTy->getContext(), AttributeSet::ReturnIndex,
6985 TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const {
6987 CLI.Ins.clear();
6988 Type *OrigRetTy = CLI.RetTy;
6991 auto &DL = CLI.DAG.getDataLayout();
6992 ComputeValueVTs(*this, DL, CLI.RetTy, RetTys, &Offsets);
6995 GetReturnInfo(CLI.RetTy, getReturnAttrs(CLI), Outs, *this, DL);
6998 this->CanLowerReturn(CLI.CallConv, CLI.DAG.getMachineFunction(),
6999 CLI.IsVarArg, Outs, CLI.RetTy->getContext());
7007 uint64_t TySize = DL.getTypeAllocSize(CLI.RetTy);
7008 unsigned Align = DL.getPrefTypeAlignment(CLI.RetTy);
7009 MachineFunction &MF = CLI.DAG.getMachineFunction();
7011 Type *StackSlotPtrType = PointerType::getUnqual(CLI.RetTy);
7013 DemoteStackSlot = CLI.DAG.getFrameIndex(DemoteStackIdx, getPointerTy(DL));
7025 CLI.getArgs().insert(CLI.getArgs().begin(), Entry);
7026 CLI.RetTy = Type::getVoidTy(CLI.RetTy->getContext());
7030 CLI.IsTailCall = false;
7034 MVT RegisterVT = getRegisterType(CLI.RetTy->getContext(), VT);
7035 unsigned NumRegs = getNumRegisters(CLI.RetTy->getContext(), VT);
7040 MyFlags.Used = CLI.IsReturnValueUsed;
7041 if (CLI.RetSExt)
7043 if (CLI.RetZExt)
7045 if (CLI.IsInReg)
7047 CLI.Ins.push_back(MyFlags);
7053 CLI.Outs.clear();
7054 CLI.OutVals.clear();
7055 ArgListTy &Args = CLI.getArgs();
7063 FinalType, CLI.CallConv, CLI.IsVarArg);
7067 Type *ArgTy = VT.getTypeForEVT(CLI.RetTy->getContext());
7111 MVT PartVT = getRegisterType(CLI.RetTy->getContext(), VT);
7112 unsigned NumParts = getNumRegisters(CLI.RetTy->getContext(), VT);
7123 assert(CLI.RetTy == Args[i].Ty && RetTys.size() == NumValues &&
7137 CLI.RetSExt == Args[i].isSExt && CLI.RetZExt == Args[i].isZExt))
7141 getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts, PartVT,
7142 CLI.CS ? CLI.CS->getInstruction() : nullptr, ExtendKind);
7147 i < CLI.NumFixedArgs,
7154 CLI.Outs.push_back(MyFlags);
7155 CLI.OutVals.push_back(Parts[j]);
7159 CLI.Outs[CLI.Outs.size() - 1].Flags.setInConsecutiveRegsLast();
7164 CLI.Chain = LowerCall(CLI, InVals);
7167 assert(CLI.Chain.getNode() && CLI.Chain.getValueType() == MVT::Other &&
7169 assert((!CLI.IsTailCall || InVals.empty()) &&
7171 assert((CLI.IsTailCall || InVals.size() == CLI.Ins.size()) &&
7178 if (CLI.IsTailCall) {
7179 CLI.DAG.setRoot(CLI.Chain);
7183 DEBUG(for (unsigned i = 0, e = CLI.Ins.size(); i != e; ++i) {
7186 assert(EVT(CLI.Ins[i].VT) == InVals[i].getValueType() &&
7206 SDValue Add = CLI.DAG.getNode(ISD::ADD, CLI.DL, PtrVT, DemoteStackSlot,
7207 CLI.DAG.getConstant(Offsets[i], CLI.DL,
7209 SDValue L = CLI.DAG.getLoad(
7210 RetTys[i], CLI.DL, CLI.Chain, Add,
7211 MachinePointerInfo::getFixedStack(CLI.DAG.getMachineFunction(),
7218 CLI.Chain = CLI.DAG.getNode(ISD::TokenFactor, CLI.DL, MVT::Other, Chains);
7223 if (CLI.RetSExt)
7225 else if (CLI.RetZExt)
7230 MVT RegisterVT = getRegisterType(CLI.RetTy->getContext(), VT);
7231 unsigned NumRegs = getNumRegisters(CLI.RetTy->getContext(), VT);
7233 ReturnValues.push_back(getCopyFromParts(CLI.DAG, CLI.DL, &InVals[CurReg],
7243 return std::make_pair(SDValue(), CLI.Chain);
7246 SDValue Res = CLI.DAG.getNode(ISD::MERGE_VALUES, CLI.DL,
7247 CLI.DAG.getVTList(RetTys), ReturnValues);
7248 return std::make_pair(Res, CLI.Chain);