Lines Matching defs:Ty

27   RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
30 void updateState(const ABIArgInfo &Info, QualType Ty, CCState &State) const {
36 unsigned sz = (getContext().getTypeSize(Ty) + 31) / 32;
58 ABIArgInfo getIndirectByRef(QualType Ty, bool HasFreeRegs) const;
59 ABIArgInfo getIndirectByValue(QualType Ty) const;
60 ABIArgInfo classifyArgumentType(QualType Ty, uint8_t FreeRegs) const;
71 ABIArgInfo ARCABIInfo::getIndirectByRef(QualType Ty, bool HasFreeRegs) const {
72 return HasFreeRegs ? getNaturalAlignIndirectInReg(Ty) :
73 getNaturalAlignIndirect(Ty, false);
76 ABIArgInfo ARCABIInfo::getIndirectByValue(QualType Ty) const {
79 unsigned TypeAlign = getContext().getTypeAlign(Ty) / 8;
85 QualType Ty, AggValueSlot Slot) const {
86 return emitVoidPtrVAArg(CGF, VAListAddr, Ty, /*indirect*/ false,
87 getContext().getTypeInfoInChars(Ty),
91 ABIArgInfo ARCABIInfo::classifyArgumentType(QualType Ty,
94 const RecordType *RT = Ty->getAs<RecordType>();
98 return getIndirectByRef(Ty, FreeRegs > 0);
101 return getIndirectByValue(Ty);
105 if (const EnumType *EnumTy = Ty->getAs<EnumType>())
106 Ty = EnumTy->getDecl()->getIntegerType();
108 auto SizeInRegs = llvm::alignTo(getContext().getTypeSize(Ty), 32) / 32;
110 if (isAggregateTypeForABI(Ty)) {
113 return getIndirectByValue(Ty);
116 if (isEmptyRecord(getContext(), Ty, true))
130 if (const auto *EIT = Ty->getAs<BitIntType>())
132 return getIndirectByValue(Ty);
134 return isPromotableIntegerTypeForABI(Ty)
135 ? (FreeRegs >= SizeInRegs ? ABIArgInfo::getExtendInReg(Ty)
136 : ABIArgInfo::getExtend(Ty))