Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:CLI

2069     TargetLowering::CallLoweringInfo CLI(DAG);
2070 CLI.setDebugLoc(getCurSDLoc())
2075 std::pair<SDValue, SDValue> Result = TLI.LowerCallTo(CLI);
5486 TargetLowering::CallLoweringInfo CLI(DAG);
5487 CLI.setDebugLoc(sdl).setChain(getRoot()).setCallee(
5493 std::pair<SDValue, SDValue> Result = TLI.LowerCallTo(CLI);
5689 SelectionDAGBuilder::lowerInvokable(TargetLowering::CallLoweringInfo &CLI,
5715 CLI.setChain(getRoot());
5718 std::pair<SDValue, SDValue> Result = TLI.LowerCallTo(CLI);
5720 assert((CLI.IsTailCall || Result.second.getNode()) &&
5745 assert(CLI.CS);
5747 CLI.CS->getInstruction()),
5807 TargetLowering::CallLoweringInfo CLI(DAG);
5808 CLI.setDebugLoc(getCurSDLoc())
5813 std::pair<SDValue, SDValue> Result = lowerInvokable(CLI, EHPadBB);
5821 // The last element of CLI.InVals has the SDValue for swifterror return.
5826 SDValue Src = CLI.InVals.back();
5829 SDValue CopyNode = CLI.DAG.getCopyToReg(Result.second, CLI.DL, VReg, Src);
7177 /// \brief Populate a CallLowerinInfo (into \p CLI) based on the properties of
7184 TargetLowering::CallLoweringInfo &CLI, ImmutableCallSite CS,
7205 CLI.setDebugLoc(getCurSDLoc())
7351 TargetLowering::CallLoweringInfo CLI(DAG);
7352 populateCallLoweringInfo(CLI, CS, NumMetaOpers, NumCallArgs, Callee, ReturnTy,
7354 std::pair<SDValue, SDValue> Result = lowerInvokable(CLI, EHPadBB);
7464 static AttributeSet getReturnAttrs(TargetLowering::CallLoweringInfo &CLI) {
7466 if (CLI.RetSExt)
7468 if (CLI.RetZExt)
7470 if (CLI.IsInReg)
7473 return AttributeSet::get(CLI.RetTy->getContext(), AttributeSet::ReturnIndex,
7482 TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const {
7484 CLI.Ins.clear();
7485 Type *OrigRetTy = CLI.RetTy;
7488 auto &DL = CLI.DAG.getDataLayout();
7489 ComputeValueVTs(*this, DL, CLI.RetTy, RetTys, &Offsets);
7492 GetReturnInfo(CLI.RetTy, getReturnAttrs(CLI), Outs, *this, DL);
7495 this->CanLowerReturn(CLI.CallConv, CLI.DAG.getMachineFunction(),
7496 CLI.IsVarArg, Outs, CLI.RetTy->getContext());
7504 uint64_t TySize = DL.getTypeAllocSize(CLI.RetTy);
7505 unsigned Align = DL.getPrefTypeAlignment(CLI.RetTy);
7506 MachineFunction &MF = CLI.DAG.getMachineFunction();
7508 Type *StackSlotPtrType = PointerType::getUnqual(CLI.RetTy);
7510 DemoteStackSlot = CLI.DAG.getFrameIndex(DemoteStackIdx, getPointerTy(DL));
7524 CLI.getArgs().insert(CLI.getArgs().begin(), Entry);
7525 CLI.RetTy = Type::getVoidTy(CLI.RetTy->getContext());
7529 CLI.IsTailCall = false;
7533 MVT RegisterVT = getRegisterType(CLI.RetTy->getContext(), VT);
7534 unsigned NumRegs = getNumRegisters(CLI.RetTy->getContext(), VT);
7539 MyFlags.Used = CLI.IsReturnValueUsed;
7540 if (CLI.RetSExt)
7542 if (CLI.RetZExt)
7544 if (CLI.IsInReg)
7546 CLI.Ins.push_back(MyFlags);
7551 // We push in swifterror return as the last element of CLI.Ins.
7552 ArgListTy &Args = CLI.getArgs();
7560 CLI.Ins.push_back(MyFlags);
7566 CLI.Outs.clear();
7567 CLI.OutVals.clear();
7575 FinalType, CLI.CallConv, CLI.IsVarArg);
7579 Type *ArgTy = VT.getTypeForEVT(CLI.RetTy->getContext());
7627 MVT PartVT = getRegisterType(CLI.RetTy->getContext(), VT);
7628 unsigned NumParts = getNumRegisters(CLI.RetTy->getContext(), VT);
7639 assert(CLI.RetTy == Args[i].Ty && RetTys.size() == NumValues &&
7653 CLI.RetSExt == Args[i].isSExt && CLI.RetZExt == Args[i].isZExt))
7657 getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts, PartVT,
7658 CLI.CS ? CLI.CS->getInstruction() : nullptr, ExtendKind);
7663 i < CLI.NumFixedArgs,
7673 CLI.Outs.push_back(MyFlags);
7674 CLI.OutVals.push_back(Parts[j]);
7678 CLI.Outs[CLI.Outs.size() - 1].Flags.setInConsecutiveRegsLast();
7683 CLI.Chain = LowerCall(CLI, InVals);
7685 // Update CLI.InVals to use outside of this function.
7686 CLI.InVals = InVals;
7689 assert(CLI.Chain.getNode() && CLI.Chain.getValueType() == MVT::Other &&
7691 assert((!CLI.IsTailCall || InVals.empty()) &&
7693 assert((CLI.IsTailCall || InVals.size() == CLI.Ins.size()) &&
7700 if (CLI.IsTailCall) {
7701 CLI.DAG.setRoot(CLI.Chain);
7706 for (unsigned i = 0, e = CLI.Ins.size(); i != e; ++i) {
7708 assert(EVT(CLI.Ins[i].VT) == InVals[i].getValueType() &&
7734 SDValue Add = CLI.DAG.getNode(ISD::ADD, CLI.DL, PtrVT, DemoteStackSlot,
7735 CLI.DAG.getConstant(Offsets[i], CLI.DL,
7737 SDValue L = CLI.DAG.getLoad(
7738 RetTys[i], CLI.DL, CLI.Chain, Add,
7739 MachinePointerInfo::getFixedStack(CLI.DAG.getMachineFunction(),
7746 CLI.Chain = CLI.DAG.getNode(ISD::TokenFactor, CLI.DL, MVT::Other, Chains);
7751 if (CLI.RetSExt)
7753 else if (CLI.RetZExt)
7758 MVT RegisterVT = getRegisterType(CLI.RetTy->getContext(), VT);
7759 unsigned NumRegs = getNumRegisters(CLI.RetTy->getContext(), VT);
7761 ReturnValues.push_back(getCopyFromParts(CLI.DAG, CLI.DL, &InVals[CurReg],
7771 return std::make_pair(SDValue(), CLI.Chain);
7774 SDValue Res = CLI.DAG.getNode(ISD::MERGE_VALUES, CLI.DL,
7775 CLI.DAG.getVTList(RetTys), ReturnValues);
7776 return std::make_pair(Res, CLI.Chain);