Lines Matching refs:RetTy

696   ABIArgInfo classifyReturnType(QualType RetTy) const;
697 ABIArgInfo classifyArgumentType(QualType RetTy) const;
746 ABIArgInfo DefaultABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
747 if (RetTy->isVoidType()) in classifyReturnType()
750 if (isAggregateTypeForABI(RetTy)) in classifyReturnType()
751 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
754 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
755 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
757 if (const auto *EIT = RetTy->getAs<ExtIntType>()) in classifyReturnType()
762 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
764 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
790 ABIArgInfo classifyReturnType(QualType RetTy) const;
891 ABIArgInfo WebAssemblyABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
892 if (isAggregateTypeForABI(RetTy)) { in classifyReturnType()
895 if (!getRecordArgABI(RetTy, getCXXABI())) { in classifyReturnType()
897 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
902 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) in classifyReturnType()
911 return defaultInfo.classifyReturnType(RetTy); in classifyReturnType()
936 ABIArgInfo classifyReturnType(QualType RetTy) const;
937 ABIArgInfo classifyArgumentType(QualType RetTy) const;
992 ABIArgInfo PNaClABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
993 if (RetTy->isVoidType()) in classifyReturnType()
997 if (isAggregateTypeForABI(RetTy)) in classifyReturnType()
998 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
1001 if (const auto *EIT = RetTy->getAs<ExtIntType>()) { in classifyReturnType()
1003 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
1008 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
1009 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
1011 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
1138 ABIArgInfo classifyReturnType(QualType RetTy, CCState &State) const;
1139 ABIArgInfo classifyArgumentType(QualType RetTy, CCState &State) const;
1462 ABIArgInfo X86_32ABIInfo::getIndirectReturnResult(QualType RetTy, CCState &State) const { in getIndirectReturnResult() argument
1468 return getNaturalAlignIndirectInReg(RetTy); in getIndirectReturnResult()
1470 return getNaturalAlignIndirect(RetTy, /*ByVal=*/false); in getIndirectReturnResult()
1473 ABIArgInfo X86_32ABIInfo::classifyReturnType(QualType RetTy, in classifyReturnType() argument
1475 if (RetTy->isVoidType()) in classifyReturnType()
1482 isHomogeneousAggregate(RetTy, Base, NumElts)) { in classifyReturnType()
1487 if (const VectorType *VT = RetTy->getAs<VectorType>()) { in classifyReturnType()
1490 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
1506 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1512 if (isAggregateTypeForABI(RetTy)) { in classifyReturnType()
1513 if (const RecordType *RT = RetTy->getAs<RecordType>()) { in classifyReturnType()
1516 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1520 if (!IsRetSmallStructInRegABI && !RetTy->isAnyComplexType()) in classifyReturnType()
1521 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1524 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
1529 if (shouldReturnTypeInRegister(RetTy, getContext())) { in classifyReturnType()
1530 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
1537 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) in classifyReturnType()
1547 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1551 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
1552 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
1554 if (const auto *EIT = RetTy->getAs<ExtIntType>()) in classifyReturnType()
1556 return getIndirectReturnResult(RetTy, State); in classifyReturnType()
1558 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
2285 ABIArgInfo classifyReturnType(QualType RetTy) const;
3546 classifyReturnType(QualType RetTy) const { in classifyReturnType()
3550 classify(RetTy, 0, Lo, Hi, /*isNamedArg*/ true); in classifyReturnType()
3574 return getIndirectReturnResult(RetTy); in classifyReturnType()
3579 ResType = GetINTEGERTypeAtOffset(CGT.ConvertType(RetTy), 0, RetTy, 0); in classifyReturnType()
3585 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
3586 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
3588 if (RetTy->isIntegralOrEnumerationType() && in classifyReturnType()
3589 isPromotableIntegerTypeForABI(RetTy)) in classifyReturnType()
3590 return ABIArgInfo::getExtend(RetTy); in classifyReturnType()
3597 ResType = GetSSETypeAtOffset(CGT.ConvertType(RetTy), 0, RetTy, 0); in classifyReturnType()
3629 HighPart = GetINTEGERTypeAtOffset(CGT.ConvertType(RetTy), 8, RetTy, 8); in classifyReturnType()
3634 HighPart = GetSSETypeAtOffset(CGT.ConvertType(RetTy), 8, RetTy, 8); in classifyReturnType()
3646 ResType = GetByteVectorType(RetTy); in classifyReturnType()
3657 HighPart = GetSSETypeAtOffset(CGT.ConvertType(RetTy), 8, RetTy, 8); in classifyReturnType()
4455 ABIArgInfo classifyReturnType(QualType RetTy) const;
4515 ABIArgInfo AIXABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
4516 if (RetTy->isAnyComplexType()) in classifyReturnType()
4519 if (RetTy->isVectorType()) in classifyReturnType()
4522 if (RetTy->isVoidType()) in classifyReturnType()
4525 if (isAggregateTypeForABI(RetTy)) in classifyReturnType()
4526 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
4528 return (isPromotableTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
4607 ABIArgInfo classifyReturnType(QualType RetTy) const;
4664 ABIArgInfo PPC32_SVR4_ABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
4668 if (isAggregateTypeForABI(RetTy) && IsRetSmallStructInRegABI && in classifyReturnType()
4669 (Size = getContext().getTypeSize(RetTy)) <= 64) { in classifyReturnType()
4689 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
4896 ABIArgInfo classifyReturnType(QualType RetTy) const;
5275 PPC64_SVR4_ABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
5276 if (RetTy->isVoidType()) in classifyReturnType()
5279 if (RetTy->isAnyComplexType()) in classifyReturnType()
5284 if (RetTy->isVectorType()) { in classifyReturnType()
5285 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
5287 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
5294 if (const auto *EIT = RetTy->getAs<ExtIntType>()) in classifyReturnType()
5296 return getNaturalAlignIndirect(RetTy, /*ByVal=*/false); in classifyReturnType()
5298 if (isAggregateTypeForABI(RetTy)) { in classifyReturnType()
5303 isHomogeneousAggregate(RetTy, Base, Members)) { in classifyReturnType()
5310 uint64_t Bits = getContext().getTypeSize(RetTy); in classifyReturnType()
5326 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
5329 return (isPromotableTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
5423 ABIArgInfo classifyReturnType(QualType RetTy, bool IsVariadic) const;
5424 ABIArgInfo classifyArgumentType(QualType RetTy, bool IsVariadic,
5753 ABIArgInfo AArch64ABIInfo::classifyReturnType(QualType RetTy, in classifyReturnType() argument
5755 if (RetTy->isVoidType()) in classifyReturnType()
5758 if (const auto *VT = RetTy->getAs<VectorType>()) { in classifyReturnType()
5761 return coerceIllegalVector(RetTy); in classifyReturnType()
5765 if (RetTy->isVectorType() && getContext().getTypeSize(RetTy) > 128) in classifyReturnType()
5766 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
5768 if (!isAggregateTypeForABI(RetTy)) { in classifyReturnType()
5770 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
5771 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
5773 if (const auto *EIT = RetTy->getAs<ExtIntType>()) in classifyReturnType()
5775 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
5777 return (isPromotableIntegerTypeForABI(RetTy) && isDarwinPCS() in classifyReturnType()
5778 ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
5782 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
5783 if (isEmptyRecord(getContext(), RetTy, true) || Size == 0) in classifyReturnType()
5788 if (isHomogeneousAggregate(RetTy, Base, Members) && in classifyReturnType()
5799 return coerceToIntArray(RetTy, getContext(), getVMContext()); in classifyReturnType()
5813 unsigned Alignment = getContext().getTypeAlign(RetTy); in classifyReturnType()
5825 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
6244 ABIArgInfo classifyReturnType(QualType RetTy, bool isVariadic,
6246 ABIArgInfo classifyArgumentType(QualType RetTy, bool isVariadic,
6670 ABIArgInfo ARMABIInfo::classifyReturnType(QualType RetTy, bool isVariadic, in classifyReturnType() argument
6677 if (RetTy->isVoidType()) in classifyReturnType()
6680 if (const VectorType *VT = RetTy->getAs<VectorType>()) { in classifyReturnType()
6682 if (getContext().getTypeSize(RetTy) > 128) in classifyReturnType()
6683 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
6691 return coerceIllegalVector(RetTy); in classifyReturnType()
6694 if (!isAggregateTypeForABI(RetTy)) { in classifyReturnType()
6696 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
6697 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
6699 if (const auto *EIT = RetTy->getAs<ExtIntType>()) in classifyReturnType()
6701 return getNaturalAlignIndirect(RetTy, /*ByVal=*/false); in classifyReturnType()
6703 return isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
6709 if (isEmptyRecord(getContext(), RetTy, false)) in classifyReturnType()
6716 if (RetTy->isAnyComplexType()) in classifyReturnType()
6718 getVMContext(), getContext().getTypeSize(RetTy))); in classifyReturnType()
6721 if (isIntegerLikeType(RetTy, getContext(), getVMContext())) { in classifyReturnType()
6723 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
6732 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
6737 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
6744 if (isHomogeneousAggregate(RetTy, Base, Members)) in classifyReturnType()
6745 return classifyHomogeneousAggregate(RetTy, Base, Members); in classifyReturnType()
6750 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
6755 return coerceToIntArray(RetTy, getContext(), getVMContext()); in classifyReturnType()
6774 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
6957 ABIArgInfo classifyReturnType(QualType RetTy) const;
7073 ABIArgInfo NVPTXABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
7074 if (RetTy->isVoidType()) in classifyReturnType()
7078 getContext().getLangOpts().OpenMPIsDevice && isUnsupportedType(RetTy)) in classifyReturnType()
7079 return coerceToIntArrayWithLimit(RetTy, 64); in classifyReturnType()
7082 if (!RetTy->isScalarType()) in classifyReturnType()
7086 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
7087 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
7089 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
7246 ABIArgInfo classifyReturnType(QualType RetTy) const;
7578 ABIArgInfo SystemZABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
7579 if (RetTy->isVoidType()) in classifyReturnType()
7581 if (isVectorArgumentType(RetTy)) in classifyReturnType()
7583 if (isCompoundType(RetTy) || getContext().getTypeSize(RetTy) > 64) in classifyReturnType()
7584 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
7585 return (isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
7655 ABIArgInfo classifyReturnType(QualType RetTy) const { in classifyReturnType()
7656 if (RetTy->isAnyComplexType()) in classifyReturnType()
7659 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
7662 ABIArgInfo classifyArgumentType(QualType RetTy) const { in classifyArgumentType()
7663 if (RetTy->isAnyComplexType()) in classifyArgumentType()
7666 return DefaultABIInfo::classifyArgumentType(RetTy); in classifyArgumentType()
7727 llvm::Type* returnAggregateInRegs(QualType RetTy, uint64_t Size) const;
7734 ABIArgInfo classifyReturnType(QualType RetTy) const;
7735 ABIArgInfo classifyArgumentType(QualType RetTy, uint64_t &Offset) const;
7945 MipsABIInfo::returnAggregateInRegs(QualType RetTy, uint64_t Size) const { in returnAggregateInRegs() argument
7946 const RecordType *RT = RetTy->getAs<RecordType>(); in returnAggregateInRegs()
7986 ABIArgInfo MipsABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
7987 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
7989 if (RetTy->isVoidType()) in classifyReturnType()
7997 if (isAggregateTypeForABI(RetTy) || RetTy->isVectorType()) { in classifyReturnType()
7999 if (RetTy->isAnyComplexType()) in classifyReturnType()
8005 (RetTy->isVectorType() && !RetTy->hasFloatingRepresentation())) { in classifyReturnType()
8007 ABIArgInfo::getDirect(returnAggregateInRegs(RetTy, Size)); in classifyReturnType()
8013 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
8017 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
8018 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
8021 if (const auto *EIT = RetTy->getAs<ExtIntType>()) in classifyReturnType()
8025 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
8027 if (isPromotableIntegerTypeForABI(RetTy)) in classifyReturnType()
8028 return ABIArgInfo::getExtend(RetTy); in classifyReturnType()
8030 if ((RetTy->isUnsignedIntegerOrEnumerationType() || in classifyReturnType()
8031 RetTy->isSignedIntegerOrEnumerationType()) && Size == 32 && !IsO32) in classifyReturnType()
8032 return ABIArgInfo::getSignExtend(RetTy); in classifyReturnType()
8315 ABIArgInfo classifyReturnType(QualType RetTy) const;
8316 ABIArgInfo classifyArgumentType(QualType RetTy) const;
8317 ABIArgInfo classifyArgumentType(QualType RetTy, unsigned *RegsLeft) const;
8427 ABIArgInfo HexagonABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
8428 if (RetTy->isVoidType()) in classifyReturnType()
8432 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
8434 if (RetTy->getAs<VectorType>()) { in classifyReturnType()
8444 return getNaturalAlignIndirect(RetTy); in classifyReturnType()
8447 if (!isAggregateTypeForABI(RetTy)) { in classifyReturnType()
8449 if (const EnumType *EnumTy = RetTy->getAs<EnumType>()) in classifyReturnType()
8450 RetTy = EnumTy->getDecl()->getIntegerType(); in classifyReturnType()
8452 if (Size > 64 && RetTy->isExtIntType()) in classifyReturnType()
8453 return getNaturalAlignIndirect(RetTy, /*ByVal=*/false); in classifyReturnType()
8455 return isPromotableIntegerTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) in classifyReturnType()
8459 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
8470 return getNaturalAlignIndirect(RetTy, /*ByVal=*/true); in classifyReturnType()
8741 ABIArgInfo classifyArgumentType(QualType RetTy, CCState &State) const;
8875 ABIArgInfo classifyReturnType(QualType RetTy) const;
8950 ABIArgInfo AMDGPUABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
8951 if (isAggregateTypeForABI(RetTy)) { in classifyReturnType()
8954 if (!getRecordArgABI(RetTy, getCXXABI())) { in classifyReturnType()
8956 if (isEmptyRecord(getContext(), RetTy, true)) in classifyReturnType()
8960 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) in classifyReturnType()
8963 if (const RecordType *RT = RetTy->getAs<RecordType>()) { in classifyReturnType()
8966 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
8970 uint64_t Size = getContext().getTypeSize(RetTy); in classifyReturnType()
8982 if (numRegsForType(RetTy) <= MaxNumRegsForArgsRet) in classifyReturnType()
8988 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
9338 ABIArgInfo classifyReturnType(QualType RetTy) const;
9401 ABIArgInfo classifyType(QualType RetTy, unsigned SizeLimit) const;
9719 ABIArgInfo classifyReturnType(QualType RetTy) const;
9799 ABIArgInfo ARCABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
9800 if (RetTy->isAnyComplexType()) in classifyReturnType()
9804 auto RetSize = llvm::alignTo(getContext().getTypeSize(RetTy), 32) / 32; in classifyReturnType()
9806 return getIndirectByRef(RetTy, /*HasFreeRegs*/ true); in classifyReturnType()
9808 return DefaultABIInfo::classifyReturnType(RetTy); in classifyReturnType()
10532 ABIArgInfo classifyReturnType(QualType RetTy) const;
10551 QualType RetTy = FI.getReturnType(); in computeInfo() local
10553 FI.getReturnInfo() = classifyReturnType(RetTy); in computeInfo()
10561 if (!IsRetIndirect && RetTy->isScalarType() && in computeInfo()
10562 getContext().getTypeSize(RetTy) > (2 * XLen)) { in computeInfo()
10563 if (RetTy->isComplexType() && FLen) { in computeInfo()
10564 QualType EltTy = RetTy->castAs<ComplexType>()->getElementType(); in computeInfo()
10902 ABIArgInfo RISCVABIInfo::classifyReturnType(QualType RetTy) const { in classifyReturnType()
10903 if (RetTy->isVoidType()) in classifyReturnType()
10911 return classifyArgumentType(RetTy, /*IsFixed=*/true, ArgGPRsLeft, in classifyReturnType()
10982 ABIArgInfo classifyReturnType(QualType RetTy) const;
10983 ABIArgInfo classifyArgumentType(QualType RetTy) const;