reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
64 ASTContext &getContext() const;
82 return ABIArgInfo::getIndirect(getContext().getTypeAlignInChars(Ty), 88 return ABIArgInfo::getIndirectInReg(getContext().getTypeAlignInChars(Ty), 801 if (isEmptyRecord(getContext(), Ty, true)) 806 if (const Type *SeltTy = isSingleElementStruct(Ty, getContext())) 820 if (isEmptyRecord(getContext(), RetTy, true)) 825 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) 837 !isEmptyRecord(getContext(), Ty, true) && 838 !isSingleElementStruct(Ty, getContext()); 840 getContext().getTypeInfoInChars(Ty), 1026 return isX86VectorTypeForVectorCall(getContext(), Ty); 1357 if (!addBaseAndFieldSizes(getContext(), CXXRD, Size)) 1360 if (!addFieldSizes(getContext(), RD, Size)) 1365 return Size == getContext().getTypeSize(Ty); 1396 uint64_t Size = getContext().getTypeSize(RetTy); 1430 if (isEmptyRecord(getContext(), RetTy, true)) 1435 if (shouldReturnTypeInRegister(RetTy, getContext())) { 1436 uint64_t Size = getContext().getTypeSize(RetTy); 1443 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) 1507 if (Align >= 16 && (isSSEVectorType(getContext(), Ty) || 1508 isRecordWithSSEVectorType(getContext(), Ty))) 1526 unsigned TypeAlign = getContext().getTypeAlign(Ty) / 8; 1539 const Type *T = isSingleElementStruct(Ty, getContext()); 1558 unsigned Size = getContext().getTypeSize(Ty); 1603 if (getContext().getTypeSize(Ty) <= 32 && State.FreeRegs) 1622 if (getContext().getTypeSize(Ty) > 32) 1673 if (!IsWin32StructABI && isEmptyRecord(getContext(), Ty, true)) 1681 unsigned SizeInRegs = (getContext().getTypeSize(Ty) + 31) / 32; 1697 if (getContext().getTypeSize(Ty) <= 4 * 32 && 1712 uint64_t Size = getContext().getTypeSize(Ty); 1854 StackOffset += getContext().getTypeSizeInChars(Type); 1915 CanQualType PtrTy = getContext().getPointerType(FI.getReturnType()); 1939 auto TypeInfo = getContext().getTypeInfoInChars(Ty); 2171 if (getContext().getLangOpts().getClangABICompat() <= 2186 if (getContext().getLangOpts().getClangABICompat() <= 2252 return isX86VectorTypeForVectorCall(getContext(), Ty); 2635 uint64_t Size = getContext().getTypeSize(VT); 2703 QualType ET = getContext().getCanonicalType(CT->getElementType()); 2705 uint64_t Size = getContext().getTypeSize(Ty); 2711 } else if (ET == getContext().FloatTy) { 2713 } else if (ET == getContext().DoubleTy) { 2715 } else if (ET == getContext().LongDoubleTy) { 2730 uint64_t EB_Imag = (OffsetBase + getContext().getTypeSize(ET)) / 64; 2737 if (const ConstantArrayType *AT = getContext().getAsConstantArrayType(Ty)) { 2740 uint64_t Size = getContext().getTypeSize(Ty); 2751 if (OffsetBase % getContext().getTypeAlign(AT->getElementType())) 2757 uint64_t EltSize = getContext().getTypeSize(AT->getElementType()); 2783 uint64_t Size = getContext().getTypeSize(Ty); 2802 const ASTRecordLayout &Layout = getContext().getASTRecordLayout(RD); 2822 OffsetBase + getContext().toBits(Layout.getBaseClassOffset(Base)); 2851 if (Size > 128 && (Size != getContext().getTypeSize(i->getType()) || 2858 if (!BitField && Offset % getContext().getTypeAlign(i->getType())) { 2878 uint64_t Size = i->getBitWidthValue(getContext()); 2920 uint64_t Size = getContext().getTypeSize(VecTy); 2958 unsigned Align = std::max(getContext().getTypeAlign(Ty) / 8, 8U); 2982 uint64_t Size = getContext().getTypeSize(Ty); 2999 if (const Type *InnerTy = isSingleElementStruct(Ty, getContext())) 3009 uint64_t Size = getContext().getTypeSize(Ty); 3021 uint64_t Size = getContext().getTypeSize(Ty); 3153 SourceOffset*8+64, getContext())) 3205 SourceOffset*8+64, getContext())) 3233 (unsigned)getContext().getTypeSizeInChars(SourceTy).getQuantity(); 3637 if (getContext().getCanonicalType(CT->getElementType()) == 3638 getContext().LongDoubleTy) 3730 Ty = getContext().getCanonicalType(Ty); 3832 getContext().getTypeInfoInChars(Ty); 3938 TypeInfo Info = getContext().getTypeInfo(Ty); 3940 CharUnits Align = getContext().toCharUnitsFromBits(Info.Align); 4114 uint64_t Width = getContext().getTypeSize(Ty); 4161 return CharUnits::fromQuantity(getContext().getTypeSize(Ty) == 128 ? 16 4167 if (const Type *EltType = isSingleElementStruct(Ty, getContext())) { 4169 if ((EltType->isVectorType() && getContext().getTypeSize(EltType) == 128) || 4184 auto TI = getContext().getTypeInfoInChars(Ty); 4208 bool isI64 = Ty->isIntegerType() && getContext().getTypeSize(Ty) == 64; 4211 bool isF64 = Ty->isFloatingType() && getContext().getTypeSize(Ty) == 64; 4328 getContext().getTypeAlignInChars(Ty)); 4404 if (getContext().getTypeSize(Ty) <= 256) 4408 if (getContext().getTypeSize(Ty) <= 128) 4449 const Type *T = isSingleElementStruct(I.type, getContext()); 4453 (T->isVectorType() && getContext().getTypeSize(T) == 128) || 4546 if (getContext().getTypeSize(Ty) > 128) 4551 return CharUnits::fromQuantity(getContext().getTypeSize(Ty) == 128 ? 16 : 8); 4557 const Type *EltType = isSingleElementStruct(Ty, getContext()); 4561 getContext().getTypeSize(EltType) == 128) || 4575 if (getContext().getTypeSize(AlignAsType) > 128) 4585 if (isAggregateTypeForABI(Ty) && getContext().getTypeAlign(Ty) >= 128) { 4586 if (HasQPX && getContext().getTypeAlign(Ty) >= 256) 4599 if (const ConstantArrayType *AT = getContext().getAsConstantArrayType(Ty)) { 4617 if (isEmptyRecord(getContext(), I.getType(), true)) 4632 getContext().getAsConstantArrayType(FT)) { 4637 if (isEmptyRecord(getContext(), FT, true)) 4641 if (getContext().getLangOpts().CPlusPlus && 4642 FD->isZeroLengthBitField(getContext())) 4657 if (getContext().getTypeSize(Base) * Members != 4658 getContext().getTypeSize(Ty)) 4682 getContext().getTypeSize(VT) / getContext().getTypeSize(EltTy); 4682 getContext().getTypeSize(VT) / getContext().getTypeSize(EltTy); 4683 Base = getContext() 4690 getContext().getTypeSize(Base) != getContext().getTypeSize(TyPtr)) 4690 getContext().getTypeSize(Base) != getContext().getTypeSize(TyPtr)) 4703 (getContext().getTargetInfo().hasFloat128Type() && 4711 if (getContext().getTypeSize(VT) == 128 || IsQPXVectorTy(Ty)) 4722 ((getContext().getTargetInfo().hasFloat128Type() && 4725 : (getContext().getTypeSize(Base) + 63) / 64; 4741 uint64_t Size = getContext().getTypeSize(Ty); 4755 uint64_t TyAlign = getContext().getTypeAlignInChars(Ty).getQuantity(); 4771 uint64_t Bits = getContext().getTypeSize(Ty); 4813 uint64_t Size = getContext().getTypeSize(RetTy); 4834 uint64_t Bits = getContext().getTypeSize(RetTy); 4860 auto TypeInfo = getContext().getTypeInfoInChars(Ty); 5112 uint64_t Size = getContext().getTypeSize(Ty); 5154 uint64_t Size = getContext().getTypeSize(Ty); 5155 bool IsEmpty = isEmptyRecord(getContext(), Ty, true); 5157 if (!getContext().getLangOpts().CPlusPlus || isDarwinPCS()) 5180 return coerceToIntArray(Ty, getContext(), getVMContext()); 5184 Alignment = getContext().getTypeUnadjustedAlign(Ty); 5187 Alignment = getContext().getTypeAlign(Ty); 5208 if (RetTy->isVectorType() && getContext().getTypeSize(RetTy) > 128) 5221 uint64_t Size = getContext().getTypeSize(RetTy); 5222 if (isEmptyRecord(getContext(), RetTy, true) || Size == 0) 5236 return coerceToIntArray(RetTy, getContext(), getVMContext()); 5238 unsigned Alignment = getContext().getTypeAlign(RetTy); 5258 uint64_t Size = getContext().getTypeSize(VT); 5287 unsigned VecSize = getContext().getTypeSize(VT); 5334 CharUnits TySize = getContext().getTypeSizeInChars(Ty); 5335 CharUnits TyAlign = getContext().getTypeUnadjustedAlignInChars(Ty); 5436 auto BaseTyInfo = getContext().getTypeInfoInChars(QualType(Base, 0)); 5556 if (isEmptyRecord(getContext(), Ty, true)) { 5564 auto TyInfo = getContext().getTypeInfoInChars(Ty); 5827 uint64_t Size = getContext().getTypeSize(Ty); 5849 uint64_t Size = getContext().getTypeSize(VT); 5882 !getContext().getLangOpts().NativeHalfArgsAndReturns) { 5904 if (isEmptyRecord(getContext(), Ty, true)) 5929 getContext().getTypeSizeInChars(Ty) > CharUnits::fromQuantity(16)) { 5934 CharUnits::fromQuantity(getContext().getTypeAlign(Ty) / 8), false); 5945 TyAlign = getContext().getTypeUnadjustedAlignInChars(Ty).getQuantity(); 5948 TyAlign = getContext().getTypeAlignInChars(Ty).getQuantity(); 5950 if (getContext().getTypeSizeInChars(Ty) > CharUnits::fromQuantity(64)) { 5960 return coerceToIntArray(Ty, getContext(), getVMContext()); 5970 SizeRegs = (getContext().getTypeSize(Ty) + 31) / 32; 5973 SizeRegs = (getContext().getTypeSize(Ty) + 63) / 64; 6076 if (getContext().getTypeSize(RetTy) > 128) 6089 !getContext().getLangOpts().NativeHalfArgsAndReturns) { 6107 if (isEmptyRecord(getContext(), RetTy, false)) 6116 getVMContext(), getContext().getTypeSize(RetTy))); 6119 if (isIntegerLikeType(RetTy, getContext(), getVMContext())) { 6121 uint64_t Size = getContext().getTypeSize(RetTy); 6135 if (isEmptyRecord(getContext(), RetTy, true)) 6148 uint64_t Size = getContext().getTypeSize(RetTy); 6153 return coerceToIntArray(RetTy, getContext(), getVMContext()); 6198 uint64_t Size = getContext().getTypeSize(VT); 6211 if (const ConstantArrayType *AT = getContext().getAsConstantArrayType(Ty)) { 6263 unsigned VecSize = getContext().getTypeSize(VT); 6290 if (isEmptyRecord(getContext(), Ty, true)) { 6296 CharUnits TySize = getContext().getTypeSizeInChars(Ty); 6297 CharUnits TyAlignForABI = getContext().getTypeUnadjustedAlignInChars(Ty); 6414 if (getContext().getLangOpts().OpenMP && 6415 getContext().getLangOpts().OpenMPIsDevice && 6416 isUnsupportedType(getContext(), RetTy)) 6417 return coerceToIntArrayWithLimit(RetTy, getContext(), getVMContext(), 64); 6614 getContext().getTypeSize(Ty) <= 128); 6641 if (isEmptyRecord(getContext(), Base, true)) 6654 if (getContext().getLangOpts().CPlusPlus && 6655 FD->isZeroLengthBitField(getContext())) 6687 Ty = getContext().getCanonicalType(Ty); 6688 auto TyInfo = getContext().getTypeInfoInChars(Ty); 6834 if (isCompoundType(RetTy) || getContext().getTypeSize(RetTy) > 64) 6852 uint64_t Size = getContext().getTypeSize(Ty); 6855 getContext().getTypeSize(SingleElementTy) == Size) 7060 const ASTRecordLayout &Layout = getContext().getASTRecordLayout(RD); 7109 uint64_t TySize = getContext().getTypeSize(Ty); 7110 uint64_t Align = getContext().getTypeAlign(Ty) / 8; 7156 const ASTRecordLayout &Layout = getContext().getASTRecordLayout(RD); 7192 uint64_t Size = getContext().getTypeSize(RetTy); 7257 getContext().getIntWidth(Ty) < SlotSizeInBits) || 7260 Ty = getContext().getIntTypeForBitwidth(SlotSizeInBits, 7264 auto TyInfo = getContext().getTypeInfoInChars(Ty); 7299 int TySize = getContext().getTypeSize(Ty); 7483 if (isEmptyRecord(getContext(), Ty, true)) 7486 uint64_t Size = getContext().getTypeSize(Ty); 7505 if (RetTy->isVectorType() && getContext().getTypeSize(RetTy) > 64) 7517 if (isEmptyRecord(getContext(), RetTy, true)) 7522 uint64_t Size = getContext().getTypeSize(RetTy); 7541 getContext().getTypeInfoInChars(Ty), 7579 unsigned Size = getContext().getTypeSize(Ty); 7607 unsigned TypeAlign = getContext().getTypeAlign(Ty) / 8; 7632 if (isEmptyRecord(getContext(), Ty, true)) 7636 unsigned SizeInRegs = (getContext().getTypeSize(Ty) + 31) / 32; 7707 uint32_t NumRegs = (getContext().getTypeSize(Base) + 31) / 32; 7721 unsigned EltSize = getContext().getTypeSize(EltTy); 7743 return (getContext().getTypeSize(Ty) + 31) / 32; 7773 if (isEmptyRecord(getContext(), RetTy, true)) 7777 if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext())) 7787 uint64_t Size = getContext().getTypeSize(RetTy); 7816 if (const Type *SeltTy = isSingleElementStruct(Ty, getContext())) 7838 if (isEmptyRecord(getContext(), Ty, true)) 7844 if (const Type *SeltTy = isSingleElementStruct(Ty, getContext())) 7854 uint64_t Size = getContext().getTypeSize(Ty); 8111 FT = getABIInfo().getContext().adjustFunctionType( 8308 uint64_t Size = getContext().getTypeSize(Ty); 8364 auto TypeInfo = getContext().getTypeInfoInChars(Ty); 8478 unsigned sz = (getContext().getTypeSize(Ty) + 31) / 32; 8521 unsigned TypeAlign = getContext().getTypeAlign(Ty) / 8; 8529 getContext().getTypeInfoInChars(Ty), 8550 auto SizeInRegs = llvm::alignTo(getContext().getTypeSize(Ty), 32) / 32; 8558 if (isEmptyRecord(getContext(), Ty, true)) 8584 auto RetSize = llvm::alignTo(getContext().getTypeSize(RetTy), 32) / 32; 8721 CharUnits TypeAlign = getContext().getTypeAlignInChars(Ty); 9298 getContext().getTypeSize(RetTy) > (2 * XLen); 9331 uint64_t Size = getContext().getTypeSize(Ty); 9360 if (getContext().getTypeSize(EltTy) > FLen) 9366 Field2Off = Field1Off + getContext().getTypeSizeInChars(EltTy); 9370 if (const ConstantArrayType *ATy = getContext().getAsConstantArrayType(Ty)) { 9373 CharUnits EltSize = getContext().getTypeSizeInChars(EltTy); 9389 if (isEmptyRecord(getContext(), Ty, true)) 9397 const ASTRecordLayout &Layout = getContext().getASTRecordLayout(RD); 9401 unsigned BitWidth = FD->getBitWidthValue(getContext()); 9404 if (getContext().getTypeSize(QTy) > XLen && BitWidth <= XLen) 9405 QTy = getContext().getIntTypeForBitwidth(XLen, false); 9413 QTy, CurOff + getContext().toCharUnitsFromBits(FieldOffInBits), 9528 if (isEmptyRecord(getContext(), Ty, true)) 9531 uint64_t Size = getContext().getTypeSize(Ty); 9543 if (getContext().getTypeSize(EltTy) <= FLen) { 9568 uint64_t NeededAlign = getContext().getTypeAlign(Ty); 9603 unsigned Alignment = getContext().getTypeAlign(Ty); 9639 if (isEmptyRecord(getContext(), Ty, true)) { 9646 getContext().getTypeInfoInChars(Ty); 9656 int TySize = getContext().getTypeSize(Ty);