Lines Matching refs:Context

106   const ASTContext &Context;  member in __anon146c45a90111::EmptySubobjectMap
148 return Context.toCharUnitsFromBits(FieldOffset); in getFieldOffset()
170 EmptySubobjectMap(const ASTContext &Context, const CXXRecordDecl *Class) in EmptySubobjectMap() argument
171 : Context(Context), CharWidth(Context.getCharWidth()), Class(Class) { in EmptySubobjectMap()
193 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl); in ComputeEmptySubobjectSizes()
209 Context.getBaseElementType(FD->getType())->getAs<RecordType>(); in ComputeEmptySubobjectSizes()
217 const ASTRecordLayout &Layout = Context.getASTRecordLayout(MemberDecl); in ComputeEmptySubobjectSizes()
281 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class); in CanPlaceBaseSubobjectAtOffset()
331 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class); in UpdateEmptyBaseSubobjects()
388 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); in CanPlaceFieldSubobjectAtOffset()
442 if (const ConstantArrayType *AT = Context.getAsConstantArrayType(T)) { in CanPlaceFieldSubobjectAtOffset()
443 QualType ElemTy = Context.getBaseElementType(AT); in CanPlaceFieldSubobjectAtOffset()
449 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); in CanPlaceFieldSubobjectAtOffset()
451 uint64_t NumElements = Context.getConstantArrayElementCount(AT); in CanPlaceFieldSubobjectAtOffset()
499 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); in UpdateEmptyFieldSubobjects()
546 if (const ConstantArrayType *AT = Context.getAsConstantArrayType(T)) { in UpdateEmptyFieldSubobjects()
547 QualType ElemTy = Context.getBaseElementType(AT); in UpdateEmptyFieldSubobjects()
553 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); in UpdateEmptyFieldSubobjects()
555 uint64_t NumElements = Context.getConstantArrayElementCount(AT); in UpdateEmptyFieldSubobjects()
582 const ASTContext &Context; member in __anon146c45a90111::ItaniumRecordLayoutBuilder
691 ItaniumRecordLayoutBuilder(const ASTContext &Context, in ItaniumRecordLayoutBuilder() argument
693 : Context(Context), EmptySubobjects(EmptySubobjects), Size(0), in ItaniumRecordLayoutBuilder()
699 IsNaturalAlign(!Context.getTargetInfo().getTriple().isOSAIX()), in ItaniumRecordLayoutBuilder()
721 return Context.getTargetInfo().getCXXABI(); in getCXXABI()
807 assert(Size % Context.getCharWidth() == 0); in getSize()
808 return Context.toCharUnitsFromBits(Size); in getSize()
812 void setSize(CharUnits NewSize) { Size = Context.toBits(NewSize); } in setSize()
818 assert(DataSize % Context.getCharWidth() == 0); in getDataSize()
819 return Context.toCharUnitsFromBits(DataSize); in getDataSize()
823 void setDataSize(CharUnits NewSize) { DataSize = Context.toBits(NewSize); } in setDataSize()
839 if (I.isVirtual() && Context.isNearlyEmpty(Base)) { in SelectPrimaryVBase()
936 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); in ComputeBaseSubobjectInfo()
1063 Context.toCharUnitsFromBits(Context.getTargetInfo().getPointerWidth(0)); in LayoutNonVirtualBases()
1065 Context.toCharUnitsFromBits(Context.getTargetInfo().getPointerAlign(0)); in LayoutNonVirtualBases()
1134 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class); in AddPrimaryVirtualBaseOffsets()
1153 const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); in LayoutVirtualBases()
1209 const ASTRecordLayout &Layout = Context.getASTRecordLayout(Base->Class); in LayoutBase()
1224 return (Packed && ((Context.getLangOpts().getClangABICompat() <= in LayoutBase()
1226 Context.getTargetInfo().getTriple().isPS4() || in LayoutBase()
1227 Context.getTargetInfo().getTriple().isOSAIX())) in LayoutBase()
1240 Context.getTargetInfo().defaultsToAIXPowerAlignment(); in LayoutBase()
1316 IsMsStruct = RD->isMsStruct(Context); in InitializeLayout()
1322 if (unsigned DefaultMaxFieldAlignment = Context.getLangOpts().PackStruct) { in InitializeLayout()
1343 MaxFieldAlignment = Context.toCharUnitsFromBits(MFAA->getAlignment()); in InitializeLayout()
1346 UpdateAlignment(Context.toCharUnitsFromBits(MaxAlign)); in InitializeLayout()
1350 !Context.getTargetInfo().defaultsToAIXPowerAlignment() || IsNaturalAlign; in InitializeLayout()
1354 if (ExternalASTSource *Source = Context.getExternalSource()) { in InitializeLayout()
1362 Alignment = Context.toCharUnitsFromBits(External.Align); in InitializeLayout()
1363 PreferredAlignment = Context.toCharUnitsFromBits(External.Align); in InitializeLayout()
1389 NonVirtualSize = Context.toCharUnitsFromBits( in Layout()
1390 llvm::alignTo(getSizeInBits(), Context.getTargetInfo().getCharAlign())); in Layout()
1423 const ASTRecordLayout &SL = Context.getASTObjCInterfaceLayout(SD); in Layout()
1460 const ASTContext &Context) { in roundUpSizeToCharAlignment() argument
1461 uint64_t CharAlignment = Context.getTargetInfo().getCharAlign(); in roundUpSizeToCharAlignment()
1469 assert(Context.getLangOpts().CPlusPlus && in LayoutWideBitField()
1477 Context.UnsignedCharTy, Context.UnsignedShortTy, Context.UnsignedIntTy, in LayoutWideBitField()
1478 Context.UnsignedLongTy, Context.UnsignedLongLongTy in LayoutWideBitField()
1483 uint64_t Size = Context.getTypeSize(QT); in LayoutWideBitField()
1492 CharUnits TypeAlign = Context.getTypeAlignInChars(Type); in LayoutWideBitField()
1503 Context); in LayoutWideBitField()
1509 FieldOffset = llvm::alignTo(getDataSizeInBits(), Context.toBits(TypeAlign)); in LayoutWideBitField()
1514 llvm::alignTo(NewSizeInBits, Context.getTargetInfo().getCharAlign())); in LayoutWideBitField()
1522 Context.toBits(TypeAlign), FieldPacked, D); in LayoutWideBitField()
1531 static bool isAIXLayout(const ASTContext &Context) { in isAIXLayout() argument
1532 return Context.getTargetInfo().getTriple().getOS() == llvm::Triple::AIX; in isAIXLayout()
1537 uint64_t FieldSize = D->getBitWidthValue(Context); in LayoutBitField()
1538 TypeInfo FieldInfo = Context.getTypeInfo(D->getType()); in LayoutBitField()
1619 if (isAIXLayout(Context)) { in LayoutBitField()
1620 if (StorageUnitSize < Context.getTypeSize(Context.UnsignedIntTy)) { in LayoutBitField()
1623 StorageUnitSize = Context.getTypeSize(Context.UnsignedIntTy); in LayoutBitField()
1624 } else if (StorageUnitSize > Context.getTypeSize(Context.UnsignedIntTy) && in LayoutBitField()
1625 Context.getTargetInfo().getTriple().isArch32Bit() && in LayoutBitField()
1645 if (FieldSize > StorageUnitSize && !isAIXLayout(Context)) { in LayoutBitField()
1655 if (!IsMsStruct && !Context.getTargetInfo().useBitFieldTypeAlignment()) { in LayoutBitField()
1658 Context.getTargetInfo().useZeroLengthBitfieldAlignment()) { in LayoutBitField()
1661 !Context.getTargetInfo().useLeadingZeroLengthBitfield()) in LayoutBitField()
1667 Context.getTargetInfo().getZeroLengthBitfieldBoundary(); in LayoutBitField()
1692 unsigned MaxFieldAlignmentInBits = Context.toBits(MaxFieldAlignment); in LayoutBitField()
1740 Context.getTargetInfo().useExplicitBitFieldAlignment()) { in LayoutBitField()
1756 Context.getTargetInfo().useExplicitBitFieldAlignment()) in LayoutBitField()
1774 !Context.getTargetInfo().useZeroLengthBitfieldAlignment() && in LayoutBitField()
1781 if (isAIXLayout(Context) && !MaxFieldAlignment.isZero() && !FieldSize) in LayoutBitField()
1798 : Context.getTargetInfo().getCharWidth()); in LayoutBitField()
1803 RoundedFieldSize = roundUpSizeToCharAlignment(FieldSize, Context); in LayoutBitField()
1824 uint64_t CharAlignment = Context.getTargetInfo().getCharAlign(); in LayoutBitField()
1839 std::max(UnadjustedAlignment, Context.toCharUnitsFromBits(FieldAlign)); in LayoutBitField()
1840 UpdateAlignment(Context.toCharUnitsFromBits(FieldAlign), in LayoutBitField()
1841 Context.toCharUnitsFromBits(UnpackedFieldAlign)); in LayoutBitField()
1855 Context.getTargetInfo().defaultsToAIXPowerAlignment(); in LayoutField()
1894 auto TI = Context.getTypeInfoInChars(D->getType()); in LayoutField()
1906 unsigned AS = Context.getTargetAddressSpace(RT->getPointeeType()); in LayoutField()
1907 EffectiveFieldSize = FieldSize = Context.toCharUnitsFromBits( in LayoutField()
1908 Context.getTargetInfo().getPointerWidth(AS)); in LayoutField()
1909 FieldAlign = Context.toCharUnitsFromBits( in LayoutField()
1910 Context.getTargetInfo().getPointerAlign(AS)); in LayoutField()
1917 const ASTRecordLayout &Layout = Context.getASTRecordLayout(FieldClass); in LayoutField()
1928 QualType T = Context.getBaseElementType(D->getType()); in LayoutField()
1930 CharUnits TypeSize = Context.getTypeSizeInChars(BTy); in LayoutField()
1934 !Context.getTargetInfo().getTriple().isWindowsMSVCEnvironment() && in LayoutField()
1954 if (!Context.getTargetInfo().getTriple().isWindowsGNUEnvironment()) in LayoutField()
1993 const ASTRecordLayout &FieldRecord = Context.getASTRecordLayout(RD); in LayoutField()
2009 Context.toCharUnitsFromBits(D->getMaxAlignment()); in LayoutField()
2028 FieldOffset = Context.toCharUnitsFromBits( in LayoutField()
2029 updateExternalFieldOffset(D, Context.toBits(FieldOffset))); in LayoutField()
2053 FieldOffsets.push_back(Context.toBits(FieldOffset)); in LayoutField()
2056 CheckFieldPadding(Context.toBits(FieldOffset), UnpaddedFieldOffset, in LayoutField()
2057 Context.toBits(UnpackedFieldOffset), in LayoutField()
2058 Context.toBits(UnpackedFieldAlign), FieldPacked, D); in LayoutField()
2071 uint64_t EffectiveFieldSizeInBits = Context.toBits(EffectiveFieldSize); in LayoutField()
2081 (uint64_t)Context.toBits(FieldOffset + FieldSize))); in LayoutField()
2091 if (Context.getLangOpts().CPlusPlus && getSizeInBits() == 0) { in FinishLayout()
2105 setSize(std::max(getSizeInBits(), (uint64_t)Context.toBits(PaddedFieldSize))); in FinishLayout()
2111 llvm::alignTo(getSizeInBits(), Context.toBits(UnpackedAlignment)); in FinishLayout()
2115 Context.toBits(!Context.getTargetInfo().defaultsToAIXPowerAlignment() in FinishLayout()
2135 unsigned CharBitNum = Context.getTargetInfo().getCharWidth(); in FinishLayout()
2146 << Context.getTypeDeclType(RD) in FinishLayout()
2157 << Context.getTypeDeclType(RD); in FinishLayout()
2232 unsigned CharBitNum = Context.getTargetInfo().getCharWidth(); in CheckFieldPadding()
2245 << Context.getTypeDeclType(D->getParent()) in CheckFieldPadding()
2252 << Context.getTypeDeclType(D->getParent()) in CheckFieldPadding()
2261 static const CXXMethodDecl *computeKeyFunction(ASTContext &Context, in computeKeyFunction() argument
2282 Context.getTargetInfo().getCXXABI().canKeyFunctionBeInline(); in computeKeyFunction()
2313 if (Context.getLangOpts().CUDA) { in computeKeyFunction()
2317 if (Context.getLangOpts().CUDAIsDevice) { in computeKeyFunction()
2332 !Context.getTargetInfo().hasPS4DLLImportExport()) in computeKeyFunction()
2344 return Context.getDiagnostics().Report(Loc, DiagID); in Diag()
2389 static bool isMsLayout(const ASTContext &Context) { in isMsLayout() argument
2390 return Context.getTargetInfo().getCXXABI().isMicrosoft(); in isMsLayout()
2490 MicrosoftRecordLayoutBuilder(const ASTContext &Context) : Context(Context) {} in MicrosoftRecordLayoutBuilder()
2529 FieldOffsets.push_back(Context.toBits(FieldOffset)); in placeFieldAtOffset()
2539 const ASTContext &Context; member
2628 Context.getTypeInfoInChars(FD->getType()->getUnqualifiedDesugaredType()); in getAdjustedElementInfo()
2632 Context.toCharUnitsFromBits(FD->getMaxAlignment()); in getAdjustedElementInfo()
2634 if (Context.isAlignmentRequired(FD->getType())) in getAdjustedElementInfo()
2636 Context.getTypeAlignInChars(FD->getType()), FieldRequiredAlignment); in getAdjustedElementInfo()
2645 auto const &Layout = Context.getASTRecordLayout(RT->getDecl()); in getAdjustedElementInfo()
2669 RequiredAlignment, Context.toCharUnitsFromBits(RD->getMaxAlignment())); in layout()
2691 RequiredAlignment, Context.toCharUnitsFromBits(RD->getMaxAlignment())); in cxxLayout()
2703 RequiredAlignment = Context.getTargetInfo().getTriple().isArch64Bit() in initializeLayout()
2709 if (unsigned DefaultMaxFieldAlignment = Context.getLangOpts().PackStruct) in initializeLayout()
2715 if (PackedAlignment <= Context.getTargetInfo().getPointerWidth(0)) in initializeLayout()
2716 MaxFieldAlignment = Context.toCharUnitsFromBits(PackedAlignment); in initializeLayout()
2724 if (ExternalASTSource *Source = Context.getExternalSource()) in initializeLayout()
2741 Context.toCharUnitsFromBits(Context.getTargetInfo().getPointerWidth(0)); in initializeCXXLayout()
2743 Context.toCharUnitsFromBits(Context.getTargetInfo().getPointerAlign(0)); in initializeCXXLayout()
2763 const ASTRecordLayout &BaseLayout = Context.getASTRecordLayout(BaseDecl); in layoutNonVirtualBases()
2811 const ASTRecordLayout &BaseLayout = Context.getASTRecordLayout(BaseDecl); in layoutNonVirtualBases()
2831 const ASTRecordLayout &Layout = Context.getASTRecordLayout(SharedVBPtrBase); in layoutNonVirtualBases()
2907 Context.toCharUnitsFromBits(External.getExternalFieldOffset(FD)); in layoutField()
2917 unsigned Width = FD->getBitWidthValue(Context); in layoutBitField()
2925 if (Width > Context.toBits(Info.Size)) in layoutBitField()
2926 Width = Context.toBits(Info.Size); in layoutBitField()
2932 placeFieldAtBitOffset(Context.toBits(Size) - RemainingBitsInField); in layoutBitField()
2941 auto NewSize = Context.toCharUnitsFromBits( in layoutBitField()
2942 llvm::alignDown(FieldBitOffset, Context.toBits(Info.Alignment)) + in layoutBitField()
2943 Context.toBits(Info.Size)); in layoutBitField()
2956 RemainingBitsInField = Context.toBits(Info.Size) - Width; in layoutBitField()
3009 FieldOffset += Context.toBits(Offset); in injectVBPtr()
3041 FieldOffset += Context.toBits(Offset); in injectVFPtr()
3060 const ASTRecordLayout &BaseLayout = Context.getASTRecordLayout(BaseDecl); in layoutVirtualBases()
3072 const ASTRecordLayout &BaseLayout = Context.getASTRecordLayout(BaseDecl); in layoutVirtualBases()
3131 Size = Context.toCharUnitsFromBits(External.Size); in finalizeLayout()
3133 Alignment = Context.toCharUnitsFromBits(External.Align); in finalizeLayout()
3163 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl); in computeVtorDispSet()
3174 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl); in computeVtorDispSet()