reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
35 class ABIArgInfo;
tools/clang/lib/CodeGen/ABIInfo.h 30 class ABIArgInfo;
119 static ABIArgInfo getDirect(llvm::Type *T = nullptr, unsigned Offset = 0, 122 auto AI = ABIArgInfo(Direct); 129 static ABIArgInfo getDirectInReg(llvm::Type *T = nullptr) { 130 auto AI = getDirect(T); 135 static ABIArgInfo getSignExtend(QualType Ty, llvm::Type *T = nullptr) { 137 auto AI = ABIArgInfo(Extend); 145 static ABIArgInfo getZeroExtend(QualType Ty, llvm::Type *T = nullptr) { 147 auto AI = ABIArgInfo(Extend); 157 static ABIArgInfo getExtend(QualType Ty, llvm::Type *T = nullptr) { 164 static ABIArgInfo getExtendInReg(QualType Ty, llvm::Type *T = nullptr) { 165 auto AI = getExtend(Ty, T); 169 static ABIArgInfo getIgnore() { 172 static ABIArgInfo getIndirect(CharUnits Alignment, bool ByVal = true, 175 auto AI = ABIArgInfo(Indirect); 183 static ABIArgInfo getIndirectInReg(CharUnits Alignment, bool ByVal = true, 185 auto AI = getIndirect(Alignment, ByVal, Realign); 189 static ABIArgInfo getInAlloca(unsigned FieldIndex) { 190 auto AI = ABIArgInfo(InAlloca); 194 static ABIArgInfo getExpand() { 195 auto AI = ABIArgInfo(Expand); 199 static ABIArgInfo getExpandWithPadding(bool PaddingInReg, 201 auto AI = getExpand(); 210 static ABIArgInfo getCoerceAndExpand(llvm::StructType *coerceToType, 240 auto AI = ABIArgInfo(CoerceAndExpand); 472 ABIArgInfo info; 634 ABIArgInfo &getReturnInfo() { return getArgsBuffer()[0].info; } 635 const ABIArgInfo &getReturnInfo() const { return getArgsBuffer()[0].info; }tools/clang/include/clang/CodeGen/SwiftCallingConv.h
168 ABIArgInfo classifyReturnType(CodeGenModule &CGM, CanQualType type); 171 ABIArgInfo classifyArgumentType(CodeGenModule &CGM, CanQualType type);tools/clang/lib/CodeGen/ABIInfo.h
107 CodeGen::ABIArgInfo 112 CodeGen::ABIArgInfotools/clang/lib/CodeGen/CGCall.cpp
781 ABIArgInfo &retInfo = FI->getReturnInfo(); 1344 const ABIArgInfo &info) { 1428 const ABIArgInfo &RetAI = FI.getReturnInfo(); 1430 if (RetAI.getKind() == ABIArgInfo::Indirect) { 1441 const ABIArgInfo &AI = I->info; 1449 case ABIArgInfo::Extend: 1450 case ABIArgInfo::Direct: { 1460 case ABIArgInfo::Indirect: 1463 case ABIArgInfo::Ignore: 1464 case ABIArgInfo::InAlloca: 1468 case ABIArgInfo::CoerceAndExpand: 1471 case ABIArgInfo::Expand: 1498 const auto &RI = FI.getReturnInfo(); 1548 const ABIArgInfo &retAI = FI.getReturnInfo(); 1550 case ABIArgInfo::Expand: 1553 case ABIArgInfo::Extend: 1554 case ABIArgInfo::Direct: 1558 case ABIArgInfo::InAlloca: 1570 case ABIArgInfo::Indirect: 1571 case ABIArgInfo::Ignore: 1575 case ABIArgInfo::CoerceAndExpand: 1604 const ABIArgInfo &ArgInfo = it->info; 1615 case ABIArgInfo::Ignore: 1616 case ABIArgInfo::InAlloca: 1620 case ABIArgInfo::Indirect: { 1629 case ABIArgInfo::Extend: 1630 case ABIArgInfo::Direct: { 1646 case ABIArgInfo::CoerceAndExpand: { 1655 case ABIArgInfo::Expand: 1959 const ABIArgInfo &RetAI = FI.getReturnInfo(); 1961 case ABIArgInfo::Extend: 1967 case ABIArgInfo::Direct: 1971 case ABIArgInfo::Ignore: 1974 case ABIArgInfo::InAlloca: 1975 case ABIArgInfo::Indirect: { 1982 case ABIArgInfo::CoerceAndExpand: 1985 case ABIArgInfo::Expand: 2026 const ABIArgInfo &AI = I->info; 2043 case ABIArgInfo::Extend: 2049 case ABIArgInfo::Direct: 2056 case ABIArgInfo::Indirect: { 2087 case ABIArgInfo::Ignore: 2088 case ABIArgInfo::Expand: 2089 case ABIArgInfo::CoerceAndExpand: 2092 case ABIArgInfo::InAlloca: 2288 const ABIArgInfo &ArgI = info_it->info; 2303 case ABIArgInfo::InAlloca: { 2312 case ABIArgInfo::Indirect: { 2348 case ABIArgInfo::Extend: 2349 case ABIArgInfo::Direct: { 2512 case ABIArgInfo::CoerceAndExpand: { 2523 if (ABIArgInfo::isPaddingForCoerceAndExpand(eltType)) 2534 case ABIArgInfo::Expand: { 2552 case ABIArgInfo::Ignore: 2817 const ABIArgInfo &RetAI = FI.getReturnInfo(); 2820 case ABIArgInfo::InAlloca: 2834 case ABIArgInfo::Indirect: { 2858 case ABIArgInfo::Extend: 2859 case ABIArgInfo::Direct: 2917 case ABIArgInfo::Ignore: 2920 case ABIArgInfo::CoerceAndExpand: { 2928 if (ABIArgInfo::isPaddingForCoerceAndExpand(coercedEltType)) 2953 case ABIArgInfo::Expand: 3792 const ABIArgInfo &RetAI = CallInfo.getReturnInfo(); 3893 const ABIArgInfo &ArgInfo = info_it->info; 3904 case ABIArgInfo::InAlloca: { 3936 case ABIArgInfo::Indirect: { 4027 case ABIArgInfo::Ignore: 4031 case ABIArgInfo::Extend: 4032 case ABIArgInfo::Direct: { 4132 case ABIArgInfo::CoerceAndExpand: { 4168 if (ABIArgInfo::isPaddingForCoerceAndExpand(eltType)) continue; 4182 case ABIArgInfo::Expand: 4469 case ABIArgInfo::CoerceAndExpand: { 4481 if (ABIArgInfo::isPaddingForCoerceAndExpand(eltType)) continue; 4494 case ABIArgInfo::InAlloca: 4495 case ABIArgInfo::Indirect: { 4502 case ABIArgInfo::Ignore: 4507 case ABIArgInfo::Extend: 4508 case ABIArgInfo::Direct: { 4555 case ABIArgInfo::Expand:tools/clang/lib/CodeGen/CGClass.cpp
2851 calleeFnInfo.getReturnInfo().getKind() == ABIArgInfo::Indirect &&
tools/clang/lib/CodeGen/CGStmt.cpp 2127 const ABIArgInfo &RetAI = CurFnInfo->getReturnInfo();
tools/clang/lib/CodeGen/CGVTables.cpp59 static bool similar(const ABIArgInfo &infoL, CanQualType typeL, 60 const ABIArgInfo &infoR, CanQualType typeR) { 365 CurFnInfo->getReturnInfo().getKind() == ABIArgInfo::Indirect) 401 const ABIArgInfo &ThisAI = CurFnInfo->arg_begin()->info; 403 const ABIArgInfo &RetAI = CurFnInfo->getReturnInfo();tools/clang/lib/CodeGen/CodeGenFunction.cpp
902 } else if (CurFnInfo->getReturnInfo().getKind() == ABIArgInfo::Indirect) { 916 } else if (CurFnInfo->getReturnInfo().getKind() == ABIArgInfo::InAlloca &&tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
1155 FI.getReturnInfo() = ABIArgInfo::getIndirect(Align, /*ByVal=*/false);
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp 1098 FI.getReturnInfo() = ABIArgInfo::getIndirect(Align, /*ByVal=*/false);
tools/clang/lib/CodeGen/SwiftCallingConv.cpp784 static ABIArgInfo classifyExpandedType(SwiftAggLowering &lowering, 788 return ABIArgInfo::getIgnore(); 790 return ABIArgInfo::getIndirect(alignmentForIndirect, /*byval*/ false); 793 return ABIArgInfo::getCoerceAndExpand(types.first, types.second); 797 static ABIArgInfo classifyType(CodeGenModule &CGM, CanQualType type, 804 return ABIArgInfo::getIndirect(layout.getAlignment(), /*byval*/ false); 816 return (forReturn ? ABIArgInfo::getDirect() : ABIArgInfo::getExpand()); 816 return (forReturn ? ABIArgInfo::getDirect() : ABIArgInfo::getExpand()); 835 return ABIArgInfo::getIgnore(); 839 return ABIArgInfo::getDirect(); 842 ABIArgInfo swiftcall::classifyReturnType(CodeGenModule &CGM, CanQualType type) { 846 ABIArgInfo swiftcall::classifyArgumentType(CodeGenModule &CGM, 852 auto &retInfo = FI.getReturnInfo();tools/clang/lib/CodeGen/TargetInfo.cpp
50 static ABIArgInfo coerceToIntArray(QualType Ty, 58 return ABIArgInfo::getDirect(llvm::ArrayType::get(IntType, NumElements)); 79 ABIArgInfo 82 return ABIArgInfo::getIndirect(getContext().getTypeAlignInChars(Ty), 86 ABIArgInfo 88 return ABIArgInfo::getIndirectInReg(getContext().getTypeAlignInChars(Ty), 608 const ABIArgInfo &AI) { 663 ABIArgInfo classifyReturnType(QualType RetTy) const; 664 ABIArgInfo classifyArgumentType(QualType RetTy) const; 685 ABIArgInfo DefaultABIInfo::classifyArgumentType(QualType Ty) const { 701 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty) 702 : ABIArgInfo::getDirect()); 705 ABIArgInfo DefaultABIInfo::classifyReturnType(QualType RetTy) const { 707 return ABIArgInfo::getIgnore(); 716 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy) 717 : ABIArgInfo::getDirect()); 734 ABIArgInfo classifyReturnType(QualType RetTy) const; 735 ABIArgInfo classifyArgumentType(QualType Ty) const; 792 ABIArgInfo WebAssemblyABIInfo::classifyArgumentType(QualType Ty) const { 802 return ABIArgInfo::getIgnore(); 807 return ABIArgInfo::getDirect(CGT.ConvertType(QualType(SeltTy, 0))); 814 ABIArgInfo WebAssemblyABIInfo::classifyReturnType(QualType RetTy) const { 821 return ABIArgInfo::getIgnore(); 826 return ABIArgInfo::getDirect(CGT.ConvertType(QualType(SeltTy, 0))); 856 ABIArgInfo classifyReturnType(QualType RetTy) const; 857 ABIArgInfo classifyArgumentType(QualType RetTy) const; 886 return EmitVAArgInstr(CGF, VAListAddr, Ty, ABIArgInfo::getDirect()); 890 ABIArgInfo PNaClABIInfo::classifyArgumentType(QualType Ty) const { 900 return ABIArgInfo::getDirect(); 903 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty) 904 : ABIArgInfo::getDirect()); 907 ABIArgInfo PNaClABIInfo::classifyReturnType(QualType RetTy) const { 909 return ABIArgInfo::getIgnore(); 919 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy) 920 : ABIArgInfo::getDirect()); 979 static ABIArgInfo getDirectX86Hva(llvm::Type* T = nullptr) { 980 auto AI = ABIArgInfo::getDirect(T); 980 auto AI = ABIArgInfo::getDirect(T); 1039 ABIArgInfo getIndirectResult(QualType Ty, bool ByVal, CCState &State) const; 1041 ABIArgInfo getIndirectReturnResult(QualType Ty, CCState &State) const; 1047 ABIArgInfo classifyReturnType(QualType RetTy, CCState &State) const; 1048 ABIArgInfo classifyArgumentType(QualType RetTy, CCState &State) const; 1065 CharUnits &StackOffset, ABIArgInfo &Info, 1368 ABIArgInfo X86_32ABIInfo::getIndirectReturnResult(QualType RetTy, CCState &State) const { 1379 ABIArgInfo X86_32ABIInfo::classifyReturnType(QualType RetTy, 1382 return ABIArgInfo::getIgnore(); 1390 return ABIArgInfo::getDirect(); 1402 return ABIArgInfo::getDirect(llvm::VectorType::get( 1409 return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), 1415 return ABIArgInfo::getDirect(); 1431 return ABIArgInfo::getIgnore(); 1446 return ABIArgInfo::getDirect(CGT.ConvertType(QualType(SeltTy, 0))); 1450 return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(),Size)); 1460 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy) 1461 : ABIArgInfo::getDirect()); 1514 ABIArgInfo X86_32ABIInfo::getIndirectResult(QualType Ty, bool ByVal, 1529 return ABIArgInfo::getIndirect(CharUnits::fromQuantity(4), /*ByVal=*/true); 1534 return ABIArgInfo::getIndirect(CharUnits::fromQuantity(StackAlign), 1632 ABIArgInfo X86_32ABIInfo::classifyArgumentType(QualType Ty, 1646 return ABIArgInfo::getInAlloca(/*FieldIndex=*/0); 1660 return ABIArgInfo::getDirect(); 1661 return ABIArgInfo::getExpand(); 1674 return ABIArgInfo::getIgnore(); 1685 return ABIArgInfo::getDirectInReg(Result); 1687 return ABIArgInfo::getDirect(Result); 1699 return ABIArgInfo::getExpandWithPadding( 1715 return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), 1720 return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), 64)); 1722 return ABIArgInfo::getDirect(); 1733 return ABIArgInfo::getExtendInReg(Ty); 1734 return ABIArgInfo::getExtend(Ty); 1738 return ABIArgInfo::getDirectInReg(); 1739 return ABIArgInfo::getDirect(); 1763 I.info = ABIArgInfo::getDirect(); 1767 UsedInAlloca |= (I.info.getKind() == ABIArgInfo::InAlloca); 1789 UsedInAlloca |= (I.info.getKind() == ABIArgInfo::InAlloca); 1834 UsedInAlloca |= (I.info.getKind() == ABIArgInfo::InAlloca); 1846 CharUnits &StackOffset, ABIArgInfo &Info, 1852 Info = ABIArgInfo::getInAlloca(FrameFields.size()); 1867 static bool isArgInAlloca(const ABIArgInfo &Info) { 1870 case ABIArgInfo::InAlloca: 1872 case ABIArgInfo::Indirect: 1875 case ABIArgInfo::Ignore: 1877 case ABIArgInfo::Direct: 1878 case ABIArgInfo::Extend: 1882 case ABIArgInfo::Expand: 1883 case ABIArgInfo::CoerceAndExpand: 1906 ABIArgInfo &Ret = FI.getReturnInfo(); 2135 ABIArgInfo getIndirectReturnResult(QualType Ty) const; 2142 ABIArgInfo getIndirectResult(QualType Ty, unsigned freeIntRegs) const; 2144 ABIArgInfo classifyReturnType(QualType RetTy) const; 2146 ABIArgInfo classifyArgumentType(QualType Ty, unsigned freeIntRegs, 2150 ABIArgInfo classifyRegCallStructType(QualType Ty, unsigned &NeededInt, 2153 ABIArgInfo classifyRegCallStructTypeImpl(QualType Ty, unsigned &NeededInt, 2208 ABIArgInfo info = classifyArgumentType(type, 0, neededInt, neededSSE, 2271 ABIArgInfo classify(QualType Ty, unsigned &FreeSSERegs, bool IsReturnType, 2273 ABIArgInfo reclassifyHvaArgType(QualType Ty, unsigned &FreeSSERegs, 2274 const ABIArgInfo ¤t) const; 2903 ABIArgInfo X86_64ABIInfo::getIndirectReturnResult(QualType Ty) const { 2911 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty) 2912 : ABIArgInfo::getDirect()); 2934 ABIArgInfo X86_64ABIInfo::getIndirectResult(QualType Ty, 2949 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty) 2950 : ABIArgInfo::getDirect()); 2987 return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), 2991 return ABIArgInfo::getIndirect(CharUnits::fromQuantity(Align)); 3288 ABIArgInfo X86_64ABIInfo:: 3303 return ABIArgInfo::getIgnore(); 3333 return ABIArgInfo::getExtend(RetTy); 3374 return ABIArgInfo::getDirect(HighPart, 8); 3379 return ABIArgInfo::getDirect(HighPart, 8); 3402 return ABIArgInfo::getDirect(HighPart, 8); 3413 return ABIArgInfo::getDirect(ResType); 3416 ABIArgInfo X86_64ABIInfo::classifyArgumentType( 3437 return ABIArgInfo::getIgnore(); 3478 return ABIArgInfo::getExtend(Ty); 3512 return ABIArgInfo::getDirect(HighPart, 8); 3522 return ABIArgInfo::getDirect(HighPart, 8); 3542 return ABIArgInfo::getDirect(ResType); 3545 ABIArgInfo 3590 return ABIArgInfo::getDirect(); 3593 ABIArgInfo X86_64ABIInfo::classifyRegCallStructType(QualType Ty, 3731 ABIArgInfo AI = classifyArgumentType(Ty, 0, neededInt, neededSSE, 3913 ABIArgInfo 3915 const ABIArgInfo ¤t) const { 3928 ABIArgInfo WinX86_64ABIInfo::classify(QualType Ty, unsigned &FreeSSERegs, 3933 return ABIArgInfo::getIgnore(); 3964 return ABIArgInfo::getDirect(); 3965 return ABIArgInfo::getExpand(); 3967 return ABIArgInfo::getIndirect(Align, /*ByVal=*/false); 3972 return ABIArgInfo::getDirect(); 3974 return ABIArgInfo::getExpand(); 3977 return ABIArgInfo::getIndirect(Align, /*ByVal=*/false); 3987 return ABIArgInfo::getDirect(); 3997 return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), Width)); 4005 return ABIArgInfo::getExtend(Ty); 4013 return ABIArgInfo::getIndirect(Align, /*ByVal=*/false); 4023 return ABIArgInfo::getIndirect(Align, /*ByVal=*/false); 4027 return ABIArgInfo::getDirect( 4035 return ABIArgInfo::getDirect(); 4429 ABIArgInfo classifyReturnType(QualType RetTy) const; 4430 ABIArgInfo classifyArgumentType(QualType Ty) const; 4456 I.info = ABIArgInfo::getDirectInReg(CGT.ConvertType(QT)); 4731 ABIArgInfo 4736 return ABIArgInfo::getDirect(); 4746 return ABIArgInfo::getDirect(CoerceTy); 4764 return ABIArgInfo::getDirect(CoerceTy); 4789 return ABIArgInfo::getDirect(CoerceTy); 4793 return ABIArgInfo::getIndirect(CharUnits::fromQuantity(ABIAlign), 4798 return (isPromotableTypeForABI(Ty) ? ABIArgInfo::getExtend(Ty) 4799 : ABIArgInfo::getDirect()); 4802 ABIArgInfo 4805 return ABIArgInfo::getIgnore(); 4808 return ABIArgInfo::getDirect(); 4818 return ABIArgInfo::getDirect(CoerceTy); 4830 return ABIArgInfo::getDirect(CoerceTy); 4837 return ABIArgInfo::getIgnore(); 4846 return ABIArgInfo::getDirect(CoerceTy); 4853 return (isPromotableTypeForABI(RetTy) ? ABIArgInfo::getExtend(RetTy) 4854 : ABIArgInfo::getDirect()); 4994 ABIArgInfo classifyReturnType(QualType RetTy) const; 4995 ABIArgInfo classifyArgumentType(QualType RetTy) const; 5107 ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType Ty) const { 5116 return ABIArgInfo::getDirect(ResType); 5120 return ABIArgInfo::getDirect(ResType); 5125 return ABIArgInfo::getDirect(ResType); 5130 return ABIArgInfo::getDirect(ResType); 5141 ? ABIArgInfo::getExtend(Ty) 5142 : ABIArgInfo::getDirect()); 5158 return ABIArgInfo::getIgnore(); 5163 return ABIArgInfo::getIgnore(); 5164 return ABIArgInfo::getDirect(llvm::Type::getInt8Ty(getVMContext())); 5171 return ABIArgInfo::getDirect( 5195 return ABIArgInfo::getDirect(llvm::ArrayType::get(BaseTy, Size / 64)); 5197 return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), Size)); 5203 ABIArgInfo AArch64ABIInfo::classifyReturnType(QualType RetTy) const { 5205 return ABIArgInfo::getIgnore(); 5217 ? ABIArgInfo::getExtend(RetTy) 5218 : ABIArgInfo::getDirect()); 5223 return ABIArgInfo::getIgnore(); 5229 return ABIArgInfo::getDirect(); 5245 return ABIArgInfo::getDirect(llvm::ArrayType::get(BaseTy, Size / 64)); 5247 return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), Size)); 5302 ABIArgInfo AI = classifyArgumentType(Ty); 5551 return EmitVAArgInstr(CGF, VAListAddr, Ty, ABIArgInfo::getDirect()); 5640 ABIArgInfo classifyReturnType(QualType RetTy, bool isVariadic, 5642 ABIArgInfo classifyArgumentType(QualType RetTy, bool isVariadic, 5644 ABIArgInfo classifyHomogeneousAggregate(QualType Ty, const Type *Base, 5646 ABIArgInfo coerceIllegalVector(QualType Ty) const; 5826 ABIArgInfo ARMABIInfo::coerceIllegalVector(QualType Ty) const { 5831 return ABIArgInfo::getDirect(ResType); 5836 return ABIArgInfo::getDirect(ResType); 5841 ABIArgInfo ARMABIInfo::classifyHomogeneousAggregate(QualType Ty, 5853 return ABIArgInfo::getDirect(Ty, 0, nullptr, false); 5856 return ABIArgInfo::getDirect(nullptr, 0, nullptr, false); 5859 ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty, bool isVariadic, 5886 return ABIArgInfo::getDirect(ResType); 5895 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty) 5896 : ABIArgInfo::getDirect()); 5905 return ABIArgInfo::getIgnore(); 5924 return ABIArgInfo::getDirect(Ty, 0, nullptr, false); 5933 return ABIArgInfo::getIndirect( 5952 return ABIArgInfo::getIndirect(CharUnits::fromQuantity(ABIAlign), 5976 return ABIArgInfo::getDirect(llvm::ArrayType::get(ElemTy, SizeRegs)); 6064 ABIArgInfo ARMABIInfo::classifyReturnType(QualType RetTy, bool isVariadic, 6072 return ABIArgInfo::getIgnore(); 6093 return ABIArgInfo::getDirect(ResType); 6101 return RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy) 6102 : ABIArgInfo::getDirect(); 6108 return ABIArgInfo::getIgnore(); 6115 return ABIArgInfo::getDirect(llvm::IntegerType::get( 6123 return ABIArgInfo::getDirect(llvm::Type::getInt8Ty(getVMContext())); 6125 return ABIArgInfo::getDirect(llvm::Type::getInt16Ty(getVMContext())); 6126 return ABIArgInfo::getDirect(llvm::Type::getInt32Ty(getVMContext())); 6136 return ABIArgInfo::getIgnore(); 6157 return ABIArgInfo::getDirect(llvm::Type::getInt32Ty(getVMContext())); 6161 return ABIArgInfo::getDirect(llvm::Type::getInt8Ty(getVMContext())); 6163 return ABIArgInfo::getDirect(llvm::Type::getInt16Ty(getVMContext())); 6164 return ABIArgInfo::getDirect(llvm::Type::getInt32Ty(getVMContext())); 6169 return ABIArgInfo::getDirect(CoerceTy); 6344 ABIArgInfo classifyReturnType(QualType RetTy) const; 6345 ABIArgInfo classifyArgumentType(QualType Ty) const; 6398 static ABIArgInfo coerceToIntArrayWithLimit(QualType Ty, ASTContext &Context, 6407 return ABIArgInfo::getDirect(llvm::ArrayType::get(IntType, NumElements)); 6410 ABIArgInfo NVPTXABIInfo::classifyReturnType(QualType RetTy) const { 6412 return ABIArgInfo::getIgnore(); 6421 return ABIArgInfo::getDirect(); 6427 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy) 6428 : ABIArgInfo::getDirect()); 6431 ABIArgInfo NVPTXABIInfo::classifyArgumentType(QualType Ty) const { 6440 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty) 6441 : ABIArgInfo::getDirect()); 6554 ABIArgInfo classifyReturnType(QualType RetTy) const; 6555 ABIArgInfo classifyArgumentType(QualType ArgTy) const; 6691 ABIArgInfo AI = classifyArgumentType(Ty); 6829 ABIArgInfo SystemZABIInfo::classifyReturnType(QualType RetTy) const { 6831 return ABIArgInfo::getIgnore(); 6833 return ABIArgInfo::getDirect(); 6836 return (isPromotableIntegerType(RetTy) ? ABIArgInfo::getExtend(RetTy) 6837 : ABIArgInfo::getDirect()); 6840 ABIArgInfo SystemZABIInfo::classifyArgumentType(QualType Ty) const { 6847 return ABIArgInfo::getExtend(Ty); 6856 return ABIArgInfo::getDirect(CGT.ConvertType(SingleElementTy)); 6880 return ABIArgInfo::getDirect(PassTy); 6887 return ABIArgInfo::getDirect(nullptr); 6946 ABIArgInfo classifyReturnType(QualType RetTy) const; 6947 ABIArgInfo classifyArgumentType(QualType RetTy, uint64_t &Offset) const; 6951 ABIArgInfo extendType(QualType Ty) const; 7104 ABIArgInfo 7120 return ABIArgInfo::getIgnore(); 7130 ABIArgInfo ArgInfo = 7131 ABIArgInfo::getDirect(HandleAggregates(Ty, TySize), 0, 7145 return ABIArgInfo::getDirect( 7191 ABIArgInfo MipsABIInfo::classifyReturnType(QualType RetTy) const { 7195 return ABIArgInfo::getIgnore(); 7200 return ABIArgInfo::getIgnore(); 7205 return ABIArgInfo::getDirect(); 7211 ABIArgInfo ArgInfo = 7212 ABIArgInfo::getDirect(returnAggregateInRegs(RetTy, Size)); 7226 return ABIArgInfo::getExtend(RetTy); 7230 return ABIArgInfo::getSignExtend(RetTy); 7232 return ABIArgInfo::getDirect(); 7236 ABIArgInfo &RetInfo = FI.getReturnInfo(); 7298 ABIArgInfo MipsABIInfo::extendType(QualType Ty) const { 7303 return ABIArgInfo::getSignExtend(Ty); 7305 return ABIArgInfo::getExtend(Ty); 7441 ABIArgInfo classifyReturnType(QualType RetTy) const; 7442 ABIArgInfo classifyArgumentType(QualType RetTy) const; 7469 ABIArgInfo HexagonABIInfo::classifyArgumentType(QualType Ty) const { 7475 return (Ty->isPromotableIntegerType() ? ABIArgInfo::getExtend(Ty) 7476 : ABIArgInfo::getDirect()); 7484 return ABIArgInfo::getIgnore(); 7491 return ABIArgInfo::getDirect(llvm::Type::getInt64Ty(getVMContext())); 7493 return ABIArgInfo::getDirect(llvm::Type::getInt32Ty(getVMContext())); 7495 return ABIArgInfo::getDirect(llvm::Type::getInt16Ty(getVMContext())); 7497 return ABIArgInfo::getDirect(llvm::Type::getInt8Ty(getVMContext())); 7500 ABIArgInfo HexagonABIInfo::classifyReturnType(QualType RetTy) const { 7502 return ABIArgInfo::getIgnore(); 7513 return (RetTy->isPromotableIntegerType() ? ABIArgInfo::getExtend(RetTy) 7514 : ABIArgInfo::getDirect()); 7518 return ABIArgInfo::getIgnore(); 7526 return ABIArgInfo::getDirect(llvm::Type::getInt8Ty(getVMContext())); 7528 return ABIArgInfo::getDirect(llvm::Type::getInt16Ty(getVMContext())); 7530 return ABIArgInfo::getDirect(llvm::Type::getInt32Ty(getVMContext())); 7531 return ABIArgInfo::getDirect(llvm::Type::getInt64Ty(getVMContext())); 7573 ABIArgInfo getIndirectResult(QualType Ty, bool ByVal, CCState &State) const; 7574 ABIArgInfo classifyArgumentType(QualType RetTy, CCState &State) const; 7595 ABIArgInfo LanaiABIInfo::getIndirectResult(QualType Ty, bool ByVal, 7608 return ABIArgInfo::getIndirect(CharUnits::fromQuantity(4), /*ByVal=*/true, 7613 ABIArgInfo LanaiABIInfo::classifyArgumentType(QualType Ty, 7633 return ABIArgInfo::getIgnore(); 7642 return ABIArgInfo::getDirectInReg(Result); 7656 return ABIArgInfo::getDirectInReg(); 7657 return ABIArgInfo::getExtend(Ty); 7660 return ABIArgInfo::getDirectInReg(); 7661 return ABIArgInfo::getDirect(); 7692 ABIArgInfo classifyReturnType(QualType RetTy) const; 7693 ABIArgInfo classifyKernelArgumentType(QualType Ty) const; 7694 ABIArgInfo classifyArgumentType(QualType Ty, unsigned &NumRegsLeft) const; 7767 ABIArgInfo AMDGPUABIInfo::classifyReturnType(QualType RetTy) const { 7774 return ABIArgInfo::getIgnore(); 7778 return ABIArgInfo::getDirect(CGT.ConvertType(QualType(SeltTy, 0))); 7789 return ABIArgInfo::getDirect(llvm::Type::getInt16Ty(getVMContext())); 7792 return ABIArgInfo::getDirect(llvm::Type::getInt32Ty(getVMContext())); 7796 return ABIArgInfo::getDirect(llvm::ArrayType::get(I32Ty, 2)); 7800 return ABIArgInfo::getDirect(); 7810 ABIArgInfo AMDGPUABIInfo::classifyKernelArgumentType(QualType Ty) const { 7817 return ABIArgInfo::getDirect(CGT.ConvertType(QualType(SeltTy, 0))); 7822 return ABIArgInfo::getDirect(nullptr, 0, nullptr, false); 7825 ABIArgInfo AMDGPUABIInfo::classifyArgumentType(QualType Ty, 7839 return ABIArgInfo::getIgnore(); 7845 return ABIArgInfo::getDirect(CGT.ConvertType(QualType(SeltTy, 0))); 7860 return ABIArgInfo::getDirect(llvm::Type::getInt16Ty(getVMContext())); 7863 return ABIArgInfo::getDirect(llvm::Type::getInt32Ty(getVMContext())); 7867 return ABIArgInfo::getDirect(llvm::ArrayType::get(I32Ty, 2)); 7874 return ABIArgInfo::getDirect(); 7880 ABIArgInfo ArgInfo = DefaultABIInfo::classifyArgumentType(Ty); 8127 ABIArgInfo classifyReturnType(QualType RetTy) const; 8133 ABIArgInfo 8136 return ABIArgInfo::getDirect(); 8190 ABIArgInfo classifyType(QualType RetTy, unsigned SizeLimit) const; 8303 ABIArgInfo 8306 return ABIArgInfo::getIgnore(); 8321 return ABIArgInfo::getExtend(Ty); 8325 return ABIArgInfo::getDirect(); 8336 return ABIArgInfo::getDirect(); 8346 return ABIArgInfo::getDirectInReg(CoerceTy); 8348 return ABIArgInfo::getDirect(CoerceTy); 8353 ABIArgInfo AI = classifyType(Ty, 16 * 8); 8369 case ABIArgInfo::Expand: 8370 case ABIArgInfo::CoerceAndExpand: 8371 case ABIArgInfo::InAlloca: 8374 case ABIArgInfo::Extend: { 8381 case ABIArgInfo::Direct: { 8388 case ABIArgInfo::Indirect: 8395 case ABIArgInfo::Ignore: 8472 void updateState(const ABIArgInfo &Info, QualType Ty, CCState &State) const { 8500 ABIArgInfo getIndirectByRef(QualType Ty, bool HasFreeRegs) const; 8501 ABIArgInfo getIndirectByValue(QualType Ty) const; 8502 ABIArgInfo classifyArgumentType(QualType Ty, uint8_t FreeRegs) const; 8503 ABIArgInfo classifyReturnType(QualType RetTy) const; 8513 ABIArgInfo ARCABIInfo::getIndirectByRef(QualType Ty, bool HasFreeRegs) const { 8518 ABIArgInfo ARCABIInfo::getIndirectByValue(QualType Ty) const { 8522 return ABIArgInfo::getIndirect(CharUnits::fromQuantity(4), /*ByVal=*/true, 8533 ABIArgInfo ARCABIInfo::classifyArgumentType(QualType Ty, 8559 return ABIArgInfo::getIgnore(); 8568 ABIArgInfo::getDirectInReg(Result) : 8569 ABIArgInfo::getDirect(Result, 0, nullptr, false); 8573 (FreeRegs >= SizeInRegs ? ABIArgInfo::getExtendInReg(Ty) : 8574 ABIArgInfo::getExtend(Ty)) : 8575 (FreeRegs >= SizeInRegs ? ABIArgInfo::getDirectInReg() : 8576 ABIArgInfo::getDirect()); 8579 ABIArgInfo ARCABIInfo::classifyReturnType(QualType RetTy) const { 8581 return ABIArgInfo::getDirectInReg(); 8720 ABIArgInfo AI = classifyArgumentType(Ty); 8730 case ABIArgInfo::Expand: 8731 case ABIArgInfo::CoerceAndExpand: 8732 case ABIArgInfo::InAlloca: 8734 case ABIArgInfo::Ignore: 8738 case ABIArgInfo::Extend: 8739 case ABIArgInfo::Direct: 8745 case ABIArgInfo::Indirect: 9268 ABIArgInfo classifyArgumentType(QualType Ty, bool IsFixed, int &ArgGPRsLeft, 9270 ABIArgInfo classifyReturnType(QualType RetTy) const; 9275 ABIArgInfo extendType(QualType Ty) const; 9281 ABIArgInfo coerceAndExpandFPCCEligibleStruct(llvm::Type *Field1Ty, 9297 bool IsRetIndirect = FI.getReturnInfo().getKind() == ABIArgInfo::Indirect || 9465 ABIArgInfo RISCVABIInfo::coerceAndExpandFPCCEligibleStruct( 9478 return ABIArgInfo::getCoerceAndExpand( 9509 return ABIArgInfo::getCoerceAndExpand(CoerceToType, UnpaddedCoerceToType); 9512 ABIArgInfo RISCVABIInfo::classifyArgumentType(QualType Ty, bool IsFixed, 9529 return ABIArgInfo::getIgnore(); 9536 return ABIArgInfo::getDirect(); 9545 return ABIArgInfo::getDirect(); 9597 return ABIArgInfo::getDirect(); 9608 return ABIArgInfo::getDirect( 9611 return ABIArgInfo::getDirect( 9614 return ABIArgInfo::getDirect(llvm::ArrayType::get( 9621 ABIArgInfo RISCVABIInfo::classifyReturnType(QualType RetTy) const { 9623 return ABIArgInfo::getIgnore(); 9655 ABIArgInfo RISCVABIInfo::extendType(QualType Ty) const { 9659 return ABIArgInfo::getSignExtend(Ty); 9660 return ABIArgInfo::getExtend(Ty);