reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

tools/clang/lib/CodeGen/ABIInfo.h
   64     ASTContext &getContext() const;

References

tools/clang/lib/CodeGen/TargetInfo.cpp
   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);