Lines Matching refs:RetTy
739 ABIArgInfo classifyReturnType(QualType RetTy) const;
740 ABIArgInfo classifyArgumentType(QualType RetTy) const;
789 ABIArgInfo DefaultABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
790 if (RetTy->isVoidType()) in classifyReturnType()
793 if (isAggregateTypeForABI(RetTy)) in classifyReturnType()
794 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
797 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
798 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
800 if (const auto *EIT = RetTy->getAs<BitIntType>()) in classifyReturnType()
805 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
807 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
833 ABIArgInfo classifyReturnType(QualType RetTy) const;
934 ABIArgInfo WebAssemblyABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
935 if (isAggregateTypeForABI(RetTy)) { in classifyReturnType()
938 if (!getRecordArgABI(RetTy, getCXXABI())) { in classifyReturnType()
940 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
945 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) in classifyReturnType()
954 return defaultInfo.classifyReturnType(RetTy); in classifyReturnType()
979 ABIArgInfo classifyReturnType(QualType RetTy) const;
980 ABIArgInfo classifyArgumentType(QualType RetTy) const;
1036 ABIArgInfo PNaClABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
1037 if (RetTy->isVoidType()) in classifyReturnType()
1041 if (isAggregateTypeForABI(RetTy)) in classifyReturnType()
1042 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
1045 if (const auto *EIT = RetTy->getAs<BitIntType>()) { in classifyReturnType()
1047 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
1052 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
1053 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
1055 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
1182 ABIArgInfo classifyReturnType(QualType RetTy, CCState &State) const;
1183 ABIArgInfo classifyArgumentType(QualType RetTy, CCState &State) const;
1507 ABIArgInfo X86_32ABIInfo::getIndirectReturnResult(QualType RetTy, CCState &State) const { in getIndirectReturnResult() argument
1513 return getNaturalAlignIndirectInReg(RetTy); in getIndirectReturnResult()
1515 return getNaturalAlignIndirect(RetTy, /*ByVal=*/false); in getIndirectReturnResult()
1518 ABIArgInfo X86_32ABIInfo::classifyReturnType(QualType RetTy, in classifyReturnType() argument
1520 if (RetTy->isVoidType()) in classifyReturnType()
1527 isHomogeneousAggregate(RetTy, Base, NumElts)) { in classifyReturnType()
1532 if (const VectorType *VT = RetTy->getAs<VectorType>()) { in classifyReturnType()
1535 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
1551 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1557 if (isAggregateTypeForABI(RetTy)) { in classifyReturnType()
1558 if (const RecordType *RT = RetTy->getAs<RecordType>()) { in classifyReturnType()
1561 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1565 if (!IsRetSmallStructInRegABI && !RetTy->isAnyComplexType()) in classifyReturnType()
1566 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1569 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
1573 if (const ComplexType *CT = RetTy->getAs<ComplexType>()) { in classifyReturnType()
1582 if (shouldReturnTypeInRegister(RetTy, getContext())) { in classifyReturnType()
1583 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
1590 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) in classifyReturnType()
1600 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1604 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
1605 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
1607 if (const auto *EIT = RetTy->getAs<BitIntType>()) in classifyReturnType()
1609 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1611 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
2340 ABIArgInfo classifyReturnType(QualType RetTy) const;
3630 classifyReturnType(QualType RetTy) const { in classifyReturnType()
3634 classify(RetTy, 0, Lo, Hi, /*isNamedArg*/ true); in classifyReturnType()
3658 return getIndirectReturnResult(RetTy); in classifyReturnType()
3663 ResType = GetINTEGERTypeAtOffset(CGT.ConvertType(RetTy), 0, RetTy, 0); in classifyReturnType()
3669 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
3670 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
3672 if (RetTy->isIntegralOrEnumerationType() && in classifyReturnType()
3673 isPromotableIntegerTypeForABI(RetTy)) in classifyReturnType()
3674 return ABIArgInfo::getExtend(RetTy); in classifyReturnType()
3681 ResType = GetSSETypeAtOffset(CGT.ConvertType(RetTy), 0, RetTy, 0); in classifyReturnType()
3713 HighPart = GetINTEGERTypeAtOffset(CGT.ConvertType(RetTy), 8, RetTy, 8); in classifyReturnType()
3718 HighPart = GetSSETypeAtOffset(CGT.ConvertType(RetTy), 8, RetTy, 8); in classifyReturnType()
3730 ResType = GetByteVectorType(RetTy); in classifyReturnType()
3741 HighPart = GetSSETypeAtOffset(CGT.ConvertType(RetTy), 8, RetTy, 8); in classifyReturnType()
4555 ABIArgInfo classifyReturnType(QualType RetTy) const;
4615 ABIArgInfo AIXABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
4616 if (RetTy->isAnyComplexType()) in classifyReturnType()
4619 if (RetTy->isVectorType()) in classifyReturnType()
4622 if (RetTy->isVoidType()) in classifyReturnType()
4625 if (isAggregateTypeForABI(RetTy)) in classifyReturnType()
4626 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
4628 return (isPromotableTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
4718 ABIArgInfo classifyReturnType(QualType RetTy) const;
4775 ABIArgInfo PPC32_SVR4_ABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
4779 if (isAggregateTypeForABI(RetTy) && IsRetSmallStructInRegABI && in classifyReturnType()
4780 (Size = getContext().getTypeSize(RetTy)) <= 64) { in classifyReturnType()
4800 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
5008 ABIArgInfo classifyReturnType(QualType RetTy) const;
5392 PPC64_SVR4_ABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
5393 if (RetTy->isVoidType()) in classifyReturnType()
5396 if (RetTy->isAnyComplexType()) in classifyReturnType()
5401 if (RetTy->isVectorType()) { in classifyReturnType()
5402 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
5404 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
5411 if (const auto *EIT = RetTy->getAs<BitIntType>()) in classifyReturnType()
5413 return getNaturalAlignIndirect(RetTy, /*ByVal=*/false); in classifyReturnType()
5415 if (isAggregateTypeForABI(RetTy)) { in classifyReturnType()
5420 isHomogeneousAggregate(RetTy, Base, Members)) { in classifyReturnType()
5427 uint64_t Bits = getContext().getTypeSize(RetTy); in classifyReturnType()
5443 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
5446 return (isPromotableTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
5515 ABIArgInfo classifyReturnType(QualType RetTy, bool IsVariadic) const;
5516 ABIArgInfo classifyArgumentType(QualType RetTy, bool IsVariadic,
5846 ABIArgInfo AArch64ABIInfo::classifyReturnType(QualType RetTy, in classifyReturnType() argument
5848 if (RetTy->isVoidType()) in classifyReturnType()
5851 if (const auto *VT = RetTy->getAs<VectorType>()) { in classifyReturnType()
5854 return coerceIllegalVector(RetTy); in classifyReturnType()
5858 if (RetTy->isVectorType() && getContext().getTypeSize(RetTy) > 128) in classifyReturnType()
5859 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
5861 if (!isAggregateTypeForABI(RetTy)) { in classifyReturnType()
5863 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
5864 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
5866 if (const auto *EIT = RetTy->getAs<BitIntType>()) in classifyReturnType()
5868 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
5870 return (isPromotableIntegerTypeForABI(RetTy) && isDarwinPCS() in classifyReturnType()
5871 ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
5875 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
5876 if (isEmptyRecord(getContext(), RetTy, true) || Size == 0) in classifyReturnType()
5881 if (isHomogeneousAggregate(RetTy, Base, Members) && in classifyReturnType()
5892 return coerceToIntArray(RetTy, getContext(), getVMContext()); in classifyReturnType()
5906 unsigned Alignment = getContext().getTypeAlign(RetTy); in classifyReturnType()
5918 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
6348 ABIArgInfo classifyReturnType(QualType RetTy, bool isVariadic,
6350 ABIArgInfo classifyArgumentType(QualType RetTy, bool isVariadic,
6812 ABIArgInfo ARMABIInfo::classifyReturnType(QualType RetTy, bool isVariadic, in classifyReturnType() argument
6819 if (RetTy->isVoidType()) in classifyReturnType()
6822 if (const VectorType *VT = RetTy->getAs<VectorType>()) { in classifyReturnType()
6824 if (getContext().getTypeSize(RetTy) > 128) in classifyReturnType()
6825 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
6833 return coerceIllegalVector(RetTy); in classifyReturnType()
6836 if (!isAggregateTypeForABI(RetTy)) { in classifyReturnType()
6838 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
6839 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
6841 if (const auto *EIT = RetTy->getAs<BitIntType>()) in classifyReturnType()
6843 return getNaturalAlignIndirect(RetTy, /*ByVal=*/false); in classifyReturnType()
6845 return isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
6851 if (isEmptyRecord(getContext(), RetTy, false)) in classifyReturnType()
6858 if (RetTy->isAnyComplexType()) in classifyReturnType()
6860 getVMContext(), getContext().getTypeSize(RetTy))); in classifyReturnType()
6863 if (isIntegerLikeType(RetTy, getContext(), getVMContext())) { in classifyReturnType()
6865 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
6874 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
6879 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
6886 if (isHomogeneousAggregate(RetTy, Base, Members)) in classifyReturnType()
6887 return classifyHomogeneousAggregate(RetTy, Base, Members); in classifyReturnType()
6892 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
6897 return coerceToIntArray(RetTy, getContext(), getVMContext()); in classifyReturnType()
6916 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
7109 ABIArgInfo classifyReturnType(QualType RetTy) const;
7225 ABIArgInfo NVPTXABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
7226 if (RetTy->isVoidType()) in classifyReturnType()
7230 getContext().getLangOpts().OpenMPIsDevice && isUnsupportedType(RetTy)) in classifyReturnType()
7231 return coerceToIntArrayWithLimit(RetTy, 64); in classifyReturnType()
7234 if (!RetTy->isScalarType()) in classifyReturnType()
7238 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
7239 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
7241 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
7398 ABIArgInfo classifyReturnType(QualType RetTy) const;
7726 ABIArgInfo SystemZABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
7727 if (RetTy->isVoidType()) in classifyReturnType()
7729 if (isVectorArgumentType(RetTy)) in classifyReturnType()
7731 if (isCompoundType(RetTy) || getContext().getTypeSize(RetTy) > 64) in classifyReturnType()
7732 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
7733 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
7803 ABIArgInfo classifyReturnType(QualType RetTy) const { in classifyReturnType()
7804 if (RetTy->isAnyComplexType()) in classifyReturnType()
7807 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
7810 ABIArgInfo classifyArgumentType(QualType RetTy) const { in classifyArgumentType()
7811 if (RetTy->isAnyComplexType()) in classifyArgumentType()
7814 return DefaultABIInfo::classifyArgumentType(RetTy); in classifyArgumentType()
7875 llvm::Type* returnAggregateInRegs(QualType RetTy, uint64_t Size) const;
7882 ABIArgInfo classifyReturnType(QualType RetTy) const;
7883 ABIArgInfo classifyArgumentType(QualType RetTy, uint64_t &Offset) const;
8093 MipsABIInfo::returnAggregateInRegs(QualType RetTy, uint64_t Size) const { in returnAggregateInRegs() argument
8094 const RecordType *RT = RetTy->getAs<RecordType>(); in returnAggregateInRegs()
8134 ABIArgInfo MipsABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
8135 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
8137 if (RetTy->isVoidType()) in classifyReturnType()
8145 if (isAggregateTypeForABI(RetTy) || RetTy->isVectorType()) { in classifyReturnType()
8147 if (RetTy->isAnyComplexType()) in classifyReturnType()
8153 (RetTy->isVectorType() && !RetTy->hasFloatingRepresentation())) { in classifyReturnType()
8155 ABIArgInfo::getDirect(returnAggregateInRegs(RetTy, Size)); in classifyReturnType()
8161 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
8165 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
8166 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
8169 if (const auto *EIT = RetTy->getAs<BitIntType>()) in classifyReturnType()
8173 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
8175 if (isPromotableIntegerTypeForABI(RetTy)) in classifyReturnType()
8176 return ABIArgInfo::getExtend(RetTy); in classifyReturnType()
8178 if ((RetTy->isUnsignedIntegerOrEnumerationType() || in classifyReturnType()
8179 RetTy->isSignedIntegerOrEnumerationType()) && Size == 32 && !IsO32) in classifyReturnType()
8180 return ABIArgInfo::getSignExtend(RetTy); in classifyReturnType()
8527 ABIArgInfo classifyReturnType(QualType RetTy) const;
8528 ABIArgInfo classifyArgumentType(QualType RetTy) const;
8529 ABIArgInfo classifyArgumentType(QualType RetTy, unsigned *RegsLeft) const;
8639 ABIArgInfo HexagonABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
8640 if (RetTy->isVoidType()) in classifyReturnType()
8644 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
8646 if (RetTy->getAs<VectorType>()) { in classifyReturnType()
8656 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
8659 if (!isAggregateTypeForABI(RetTy)) { in classifyReturnType()
8661 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
8662 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
8664 if (Size > 64 && RetTy->isBitIntType()) in classifyReturnType()
8665 return getNaturalAlignIndirect(RetTy, /*ByVal=*/false); in classifyReturnType()
8667 return isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
8671 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
8682 return getNaturalAlignIndirect(RetTy, /*ByVal=*/true); in classifyReturnType()
8954 ABIArgInfo classifyArgumentType(QualType RetTy, CCState &State) const;
9088 ABIArgInfo classifyReturnType(QualType RetTy) const;
9163 ABIArgInfo AMDGPUABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
9164 if (isAggregateTypeForABI(RetTy)) { in classifyReturnType()
9167 if (!getRecordArgABI(RetTy, getCXXABI())) { in classifyReturnType()
9169 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
9173 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) in classifyReturnType()
9176 if (const RecordType *RT = RetTy->getAs<RecordType>()) { in classifyReturnType()
9179 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
9183 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
9195 if (numRegsForType(RetTy) <= MaxNumRegsForArgsRet) in classifyReturnType()
9201 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
9567 ABIArgInfo classifyReturnType(QualType RetTy) const;
9652 ABIArgInfo classifyType(QualType RetTy, unsigned SizeLimit) const;
9983 ABIArgInfo classifyReturnType(QualType RetTy) const;
10063 ABIArgInfo ARCABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
10064 if (RetTy->isAnyComplexType()) in classifyReturnType()
10068 auto RetSize = llvm::alignTo(getContext().getTypeSize(RetTy), 32) / 32; in classifyReturnType()
10070 return getIndirectByRef(RetTy, /*HasFreeRegs*/ true); in classifyReturnType()
10072 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
10871 ABIArgInfo classifyReturnType(QualType RetTy) const;
10890 QualType RetTy = FI.getReturnType(); in computeInfo() local
10892 FI.getReturnInfo() = classifyReturnType(RetTy); in computeInfo()
10900 if (!IsRetIndirect && RetTy->isScalarType() && in computeInfo()
10901 getContext().getTypeSize(RetTy) > (2 * XLen)) { in computeInfo()
10902 if (RetTy->isComplexType() && FLen) { in computeInfo()
10903 QualType EltTy = RetTy->castAs<ComplexType>()->getElementType(); in computeInfo()
11254 ABIArgInfo RISCVABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
11255 if (RetTy->isVoidType()) in classifyReturnType()
11263 return classifyArgumentType(RetTy, /*IsFixed=*/true, ArgGPRsLeft, in classifyReturnType()
11335 ABIArgInfo classifyReturnType(QualType RetTy) const;
11336 ABIArgInfo classifyArgumentType(QualType RetTy) const;
11398 ABIArgInfo classifyReturnType(QualType RetTy) const;
11407 QualType RetTy = FI.getReturnType(); in computeInfo() local
11409 FI.getReturnInfo() = classifyReturnType(RetTy); in computeInfo()
11518 ABIArgInfo CSKYABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
11519 if (RetTy->isVoidType()) in classifyReturnType()
11527 return classifyArgumentType(RetTy, ArgGPRsLeft, ArgFPRsLeft, true); in classifyReturnType()