Lines Matching refs:Ty

17                                    QualType Ty, CharUnits SlotSize,  in complexTempStructure()  argument
110 CharUnits getParamTypeAlignment(QualType Ty) const;
116 bool isPromotableTypeForABI(QualType Ty) const;
119 ABIArgInfo classifyArgumentType(QualType Ty) const;
129 RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
154 bool AIXABIInfo::isPromotableTypeForABI(QualType Ty) const { in isPromotableTypeForABI()
156 if (const EnumType *EnumTy = Ty->getAs<EnumType>()) in isPromotableTypeForABI()
157 Ty = EnumTy->getDecl()->getIntegerType(); in isPromotableTypeForABI()
160 if (getContext().isPromotableIntegerType(Ty)) in isPromotableTypeForABI()
169 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) in isPromotableTypeForABI()
198 ABIArgInfo AIXABIInfo::classifyArgumentType(QualType Ty) const { in classifyArgumentType()
199 Ty = useFirstFieldIfTransparentUnion(Ty); in classifyArgumentType()
201 if (Ty->isAnyComplexType()) in classifyArgumentType()
204 if (Ty->isVectorType()) in classifyArgumentType()
207 if (isAggregateTypeForABI(Ty)) { in classifyArgumentType()
210 if (CGCXXABI::RecordArgABI RAA = getRecordArgABI(Ty, getCXXABI())) in classifyArgumentType()
211 return getNaturalAlignIndirect(Ty, RAA == CGCXXABI::RAA_DirectInMemory); in classifyArgumentType()
213 CharUnits CCAlign = getParamTypeAlignment(Ty); in classifyArgumentType()
214 CharUnits TyAlign = getContext().getTypeAlignInChars(Ty); in classifyArgumentType()
220 return (isPromotableTypeForABI(Ty) ? ABIArgInfo::getExtend(Ty) in classifyArgumentType()
224 CharUnits AIXABIInfo::getParamTypeAlignment(QualType Ty) const { in getParamTypeAlignment()
226 if (const ComplexType *CTy = Ty->getAs<ComplexType>()) in getParamTypeAlignment()
227 Ty = CTy->getElementType(); in getParamTypeAlignment()
229 if (Ty->isVectorType()) in getParamTypeAlignment()
233 if (isRecordWithSIMDVectorType(getContext(), Ty)) in getParamTypeAlignment()
240 QualType Ty, AggValueSlot Slot) const { in EmitVAArg() argument
242 auto TypeInfo = getContext().getTypeInfoInChars(Ty); in EmitVAArg()
243 TypeInfo.Align = getParamTypeAlignment(Ty); in EmitVAArg()
254 if (const ComplexType *CTy = Ty->getAs<ComplexType>()) { in EmitVAArg()
257 return complexTempStructure(CGF, VAListAddr, Ty, SlotSize, EltSize, CTy); in EmitVAArg()
260 return emitVoidPtrVAArg(CGF, VAListAddr, Ty, /*Indirect*/ false, TypeInfo, in EmitVAArg()
292 const auto *Ty = VarD->getType().getTypePtr(); in setTargetAttributes() local
294 Ty->isRecordType() ? Ty->getAs<RecordType>()->getDecl() : nullptr; in setTargetAttributes()
302 if (!Ty || Ty->isIncompleteType()) in setTargetAttributes()
331 CharUnits getParamTypeAlignment(QualType Ty) const;
348 RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
372 CharUnits PPC32_SVR4_ABIInfo::getParamTypeAlignment(QualType Ty) const { in getParamTypeAlignment()
374 if (const ComplexType *CTy = Ty->getAs<ComplexType>()) in getParamTypeAlignment()
375 Ty = CTy->getElementType(); in getParamTypeAlignment()
377 if (Ty->isVectorType()) in getParamTypeAlignment()
378 return CharUnits::fromQuantity(getContext().getTypeSize(Ty) == 128 ? 16 in getParamTypeAlignment()
384 if (const Type *EltType = isSingleElementStruct(Ty, getContext())) { in getParamTypeAlignment()
427 QualType Ty, AggValueSlot Slot) const { in EmitVAArg() argument
429 auto TI = getContext().getTypeInfoInChars(Ty); in EmitVAArg()
430 TI.Align = getParamTypeAlignment(Ty); in EmitVAArg()
433 return emitVoidPtrVAArg(CGF, VAList, Ty, in EmitVAArg()
434 classifyArgumentType(Ty).isIndirect(), TI, SlotSize, in EmitVAArg()
439 if (const ComplexType *CTy = Ty->getAs<ComplexType>()) { in EmitVAArg()
453 bool isI64 = Ty->isIntegerType() && getContext().getTypeSize(Ty) == 64; in EmitVAArg()
454 bool isInt = !Ty->isFloatingType(); in EmitVAArg()
455 bool isF64 = Ty->isFloatingType() && getContext().getTypeSize(Ty) == 64; in EmitVAArg()
459 bool isIndirect = isAggregateTypeForABI(Ty); in EmitVAArg()
488 llvm::Type *DirectTy = CGF.ConvertType(Ty), *ElementTy = DirectTy; in EmitVAArg()
539 auto TypeInfo = CGF.getContext().getTypeInfoInChars(Ty); in EmitVAArg()
550 CharUnits Align = CGF.getContext().getTypeAlignInChars(Ty); in EmitVAArg()
574 getContext().getTypeAlignInChars(Ty)); in EmitVAArg()
577 return CGF.EmitLoadOfAnyValue(CGF.MakeAddrLValue(Result, Ty), Slot); in EmitVAArg()
621 bool isPromotableTypeForABI(QualType Ty) const;
622 CharUnits getParamTypeAlignment(QualType Ty) const;
625 ABIArgInfo classifyArgumentType(QualType Ty) const;
627 bool isHomogeneousAggregateBaseType(QualType Ty) const override;
628 bool isHomogeneousAggregateSmallEnough(const Type *Ty,
658 RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
703 PPC64_SVR4_ABIInfo::isPromotableTypeForABI(QualType Ty) const { in isPromotableTypeForABI()
705 if (const EnumType *EnumTy = Ty->getAs<EnumType>()) in isPromotableTypeForABI()
706 Ty = EnumTy->getDecl()->getIntegerType(); in isPromotableTypeForABI()
709 if (isPromotableIntegerTypeForABI(Ty)) in isPromotableTypeForABI()
714 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) in isPromotableTypeForABI()
723 if (const auto *EIT = Ty->getAs<BitIntType>()) in isPromotableTypeForABI()
732 CharUnits PPC64_SVR4_ABIInfo::getParamTypeAlignment(QualType Ty) const { in getParamTypeAlignment()
734 if (const ComplexType *CTy = Ty->getAs<ComplexType>()) in getParamTypeAlignment()
735 Ty = CTy->getElementType(); in getParamTypeAlignment()
737 auto FloatUsesVector = [this](QualType Ty){ in getParamTypeAlignment() argument
738 return Ty->isRealFloatingType() && &getContext().getFloatTypeSemantics( in getParamTypeAlignment()
739 Ty) == &llvm::APFloat::IEEEquad(); in getParamTypeAlignment()
744 if (Ty->isVectorType()) { in getParamTypeAlignment()
745 return CharUnits::fromQuantity(getContext().getTypeSize(Ty) == 128 ? 16 : 8); in getParamTypeAlignment()
746 } else if (FloatUsesVector(Ty)) { in getParamTypeAlignment()
756 const Type *EltType = isSingleElementStruct(Ty, getContext()); in getParamTypeAlignment()
768 isAggregateTypeForABI(Ty) && isHomogeneousAggregate(Ty, Base, Members)) in getParamTypeAlignment()
780 if (isAggregateTypeForABI(Ty) && getContext().getTypeAlign(Ty) >= 128) { in getParamTypeAlignment()
787 bool PPC64_SVR4_ABIInfo::isHomogeneousAggregateBaseType(QualType Ty) const { in isHomogeneousAggregateBaseType()
790 if (const BuiltinType *BT = Ty->getAs<BuiltinType>()) { in isHomogeneousAggregateBaseType()
802 if (const VectorType *VT = Ty->getAs<VectorType>()) { in isHomogeneousAggregateBaseType()
824 PPC64_SVR4_ABIInfo::classifyArgumentType(QualType Ty) const { in classifyArgumentType()
825 Ty = useFirstFieldIfTransparentUnion(Ty); in classifyArgumentType()
827 if (Ty->isAnyComplexType()) in classifyArgumentType()
832 if (Ty->isVectorType()) { in classifyArgumentType()
833 uint64_t Size = getContext().getTypeSize(Ty); in classifyArgumentType()
835 return getNaturalAlignIndirect(Ty, /*ByVal=*/false); in classifyArgumentType()
842 if (const auto *EIT = Ty->getAs<BitIntType>()) in classifyArgumentType()
844 return getNaturalAlignIndirect(Ty, /*ByVal=*/true); in classifyArgumentType()
846 if (isAggregateTypeForABI(Ty)) { in classifyArgumentType()
847 if (CGCXXABI::RecordArgABI RAA = getRecordArgABI(Ty, getCXXABI())) in classifyArgumentType()
848 return getNaturalAlignIndirect(Ty, RAA == CGCXXABI::RAA_DirectInMemory); in classifyArgumentType()
850 uint64_t ABIAlign = getParamTypeAlignment(Ty).getQuantity(); in classifyArgumentType()
851 uint64_t TyAlign = getContext().getTypeAlignInChars(Ty).getQuantity(); in classifyArgumentType()
857 isHomogeneousAggregate(Ty, Base, Members)) { in classifyArgumentType()
867 uint64_t Bits = getContext().getTypeSize(Ty); in classifyArgumentType()
894 return (isPromotableTypeForABI(Ty) ? ABIArgInfo::getExtend(Ty) in classifyArgumentType()
959 QualType Ty, AggValueSlot Slot) const { in EmitVAArg() argument
960 auto TypeInfo = getContext().getTypeInfoInChars(Ty); in EmitVAArg()
961 TypeInfo.Align = getParamTypeAlignment(Ty); in EmitVAArg()
971 if (const ComplexType *CTy = Ty->getAs<ComplexType>()) { in EmitVAArg()
974 return complexTempStructure(CGF, VAListAddr, Ty, SlotSize, EltSize, CTy); in EmitVAArg()
990 return emitVoidPtrVAArg(CGF, VAListAddr, Ty, /*Indirect*/ false, TypeInfo, in EmitVAArg()