Lines Matching refs:Context

106   const ASTContext &Context;  member in __anonb9bd28ab0111::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 __anonb9bd28ab0111::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()
1062 CharUnits PtrWidth = Context.toCharUnitsFromBits( in LayoutNonVirtualBases()
1063 Context.getTargetInfo().getPointerWidth(LangAS::Default)); in LayoutNonVirtualBases()
1064 CharUnits PtrAlign = Context.toCharUnitsFromBits( in LayoutNonVirtualBases()
1065 Context.getTargetInfo().getPointerAlign(LangAS::Default)); 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().isPS() || in LayoutBase()
1227 Context.getTargetInfo().getTriple().isOSAIX())) in LayoutBase()
1240 Context.getTargetInfo().defaultsToAIXPowerAlignment(); in LayoutBase()
1265 if (!Context.getTargetInfo().getTriple().isPS()) in LayoutBase()
1318 IsMsStruct = RD->isMsStruct(Context); in InitializeLayout()
1324 if (unsigned DefaultMaxFieldAlignment = Context.getLangOpts().PackStruct) { in InitializeLayout()
1345 MaxFieldAlignment = Context.toCharUnitsFromBits(MFAA->getAlignment()); in InitializeLayout()
1348 UpdateAlignment(Context.toCharUnitsFromBits(MaxAlign)); in InitializeLayout()
1352 !Context.getTargetInfo().defaultsToAIXPowerAlignment() || IsNaturalAlign; in InitializeLayout()
1356 if (ExternalASTSource *Source = Context.getExternalSource()) { in InitializeLayout()
1364 Alignment = Context.toCharUnitsFromBits(External.Align); in InitializeLayout()
1365 PreferredAlignment = Context.toCharUnitsFromBits(External.Align); in InitializeLayout()
1391 NonVirtualSize = Context.toCharUnitsFromBits( in Layout()
1392 llvm::alignTo(getSizeInBits(), Context.getTargetInfo().getCharAlign())); in Layout()
1425 const ASTRecordLayout &SL = Context.getASTObjCInterfaceLayout(SD); in Layout()
1462 const ASTContext &Context) { in roundUpSizeToCharAlignment() argument
1463 uint64_t CharAlignment = Context.getTargetInfo().getCharAlign(); in roundUpSizeToCharAlignment()
1471 assert(Context.getLangOpts().CPlusPlus && in LayoutWideBitField()
1479 Context.UnsignedCharTy, Context.UnsignedShortTy, Context.UnsignedIntTy, in LayoutWideBitField()
1480 Context.UnsignedLongTy, Context.UnsignedLongLongTy in LayoutWideBitField()
1485 uint64_t Size = Context.getTypeSize(QT); in LayoutWideBitField()
1494 CharUnits TypeAlign = Context.getTypeAlignInChars(Type); in LayoutWideBitField()
1505 Context); in LayoutWideBitField()
1511 FieldOffset = llvm::alignTo(getDataSizeInBits(), Context.toBits(TypeAlign)); in LayoutWideBitField()
1516 llvm::alignTo(NewSizeInBits, Context.getTargetInfo().getCharAlign())); in LayoutWideBitField()
1524 Context.toBits(TypeAlign), FieldPacked, D); in LayoutWideBitField()
1533 static bool isAIXLayout(const ASTContext &Context) { in isAIXLayout() argument
1534 return Context.getTargetInfo().getTriple().getOS() == llvm::Triple::AIX; in isAIXLayout()
1539 uint64_t FieldSize = D->getBitWidthValue(Context); in LayoutBitField()
1540 TypeInfo FieldInfo = Context.getTypeInfo(D->getType()); in LayoutBitField()
1621 if (isAIXLayout(Context)) { in LayoutBitField()
1622 if (StorageUnitSize < Context.getTypeSize(Context.UnsignedIntTy)) { in LayoutBitField()
1625 StorageUnitSize = Context.getTypeSize(Context.UnsignedIntTy); in LayoutBitField()
1626 } else if (StorageUnitSize > Context.getTypeSize(Context.UnsignedIntTy) && in LayoutBitField()
1627 Context.getTargetInfo().getTriple().isArch32Bit() && in LayoutBitField()
1647 if (FieldSize > StorageUnitSize && !isAIXLayout(Context)) { in LayoutBitField()
1657 if (!IsMsStruct && !Context.getTargetInfo().useBitFieldTypeAlignment()) { in LayoutBitField()
1660 Context.getTargetInfo().useZeroLengthBitfieldAlignment()) { in LayoutBitField()
1663 !Context.getTargetInfo().useLeadingZeroLengthBitfield()) in LayoutBitField()
1669 Context.getTargetInfo().getZeroLengthBitfieldBoundary(); in LayoutBitField()
1694 unsigned MaxFieldAlignmentInBits = Context.toBits(MaxFieldAlignment); in LayoutBitField()
1742 Context.getTargetInfo().useExplicitBitFieldAlignment()) { in LayoutBitField()
1758 Context.getTargetInfo().useExplicitBitFieldAlignment()) in LayoutBitField()
1776 !Context.getTargetInfo().useZeroLengthBitfieldAlignment() && in LayoutBitField()
1783 if (isAIXLayout(Context) && !FieldSize) { in LayoutBitField()
1807 : Context.getTargetInfo().getCharWidth()); in LayoutBitField()
1812 RoundedFieldSize = roundUpSizeToCharAlignment(FieldSize, Context); in LayoutBitField()
1833 uint64_t CharAlignment = Context.getTargetInfo().getCharAlign(); in LayoutBitField()
1848 std::max(UnadjustedAlignment, Context.toCharUnitsFromBits(FieldAlign)); in LayoutBitField()
1849 UpdateAlignment(Context.toCharUnitsFromBits(FieldAlign), in LayoutBitField()
1850 Context.toCharUnitsFromBits(UnpackedFieldAlign)); in LayoutBitField()
1863 Context.getTargetInfo().defaultsToAIXPowerAlignment(); in LayoutField()
1891 llvm::Triple Target = Context.getTargetInfo().getTriple(); in LayoutField()
1902 auto TI = Context.getTypeInfoInChars(D->getType()); in LayoutField()
1919 const ASTRecordLayout &Layout = Context.getASTRecordLayout(FieldClass); in LayoutField()
1930 QualType T = Context.getBaseElementType(D->getType()); in LayoutField()
1932 CharUnits TypeSize = Context.getTypeSizeInChars(BTy); in LayoutField()
1936 !Context.getTargetInfo().getTriple().isWindowsMSVCEnvironment() && in LayoutField()
1956 if (!Context.getTargetInfo().getTriple().isWindowsGNUEnvironment()) in LayoutField()
1968 Context.getLangOpts().getClangABICompat() <= in LayoutField()
2017 const ASTRecordLayout &FieldRecord = Context.getASTRecordLayout(RD); in LayoutField()
2030 Context.toCharUnitsFromBits(D->getMaxAlignment()); in LayoutField()
2059 FieldOffset = Context.toCharUnitsFromBits( in LayoutField()
2060 updateExternalFieldOffset(D, Context.toBits(FieldOffset))); in LayoutField()
2084 FieldOffsets.push_back(Context.toBits(FieldOffset)); in LayoutField()
2087 CheckFieldPadding(Context.toBits(FieldOffset), UnpaddedFieldOffset, in LayoutField()
2088 Context.toBits(UnpackedFieldOffset), in LayoutField()
2089 Context.toBits(UnpackedFieldAlign), FieldPacked, D); in LayoutField()
2102 uint64_t EffectiveFieldSizeInBits = Context.toBits(EffectiveFieldSize); in LayoutField()
2112 (uint64_t)Context.toBits(FieldOffset + FieldSize))); in LayoutField()
2131 << Context.getTypeDeclType(RD) << D->getName() << D->getType(); in LayoutField()
2141 if (Context.getLangOpts().CPlusPlus && getSizeInBits() == 0) { in FinishLayout()
2155 setSize(std::max(getSizeInBits(), (uint64_t)Context.toBits(PaddedFieldSize))); in FinishLayout()
2161 llvm::alignTo(getSizeInBits(), Context.toBits(UnpackedAlignment)); in FinishLayout()
2165 Context.toBits(!Context.getTargetInfo().defaultsToAIXPowerAlignment() in FinishLayout()
2185 unsigned CharBitNum = Context.getTargetInfo().getCharWidth(); in FinishLayout()
2196 << Context.getTypeDeclType(RD) in FinishLayout()
2212 Context.getLangOpts().getClangABICompat() <= in FinishLayout()
2215 << Context.getTypeDeclType(RD); in FinishLayout()
2293 unsigned CharBitNum = Context.getTargetInfo().getCharWidth(); in CheckFieldPadding()
2308 << Context.getTypeDeclType(D->getParent()) << PadSize in CheckFieldPadding()
2316 << Context.getTypeDeclType(D->getParent()) << PadSize in CheckFieldPadding()
2325 static const CXXMethodDecl *computeKeyFunction(ASTContext &Context, in computeKeyFunction() argument
2346 Context.getTargetInfo().getCXXABI().canKeyFunctionBeInline(); in computeKeyFunction()
2377 if (Context.getLangOpts().CUDA) { in computeKeyFunction()
2381 if (Context.getLangOpts().CUDAIsDevice) { in computeKeyFunction()
2396 !Context.getTargetInfo().hasPS4DLLImportExport()) in computeKeyFunction()
2408 return Context.getDiagnostics().Report(Loc, DiagID); in Diag()
2453 static bool isMsLayout(const ASTContext &Context) { in isMsLayout() argument
2454 return Context.getTargetInfo().getCXXABI().isMicrosoft(); in isMsLayout()
2554 MicrosoftRecordLayoutBuilder(const ASTContext &Context, in MicrosoftRecordLayoutBuilder()
2556 : Context(Context), EmptySubobjects(EmptySubobjects) {} in MicrosoftRecordLayoutBuilder()
2596 FieldOffsets.push_back(Context.toBits(FieldOffset)); in placeFieldAtOffset()
2606 const ASTContext &Context; member
2697 Context.getTypeInfoInChars(FD->getType()->getUnqualifiedDesugaredType()); in getAdjustedElementInfo()
2701 Context.toCharUnitsFromBits(FD->getMaxAlignment()); in getAdjustedElementInfo()
2703 if (Context.isAlignmentRequired(FD->getType())) in getAdjustedElementInfo()
2705 Context.getTypeAlignInChars(FD->getType()), FieldRequiredAlignment); in getAdjustedElementInfo()
2714 auto const &Layout = Context.getASTRecordLayout(RT->getDecl()); in getAdjustedElementInfo()
2738 RequiredAlignment, Context.toCharUnitsFromBits(RD->getMaxAlignment())); in layout()
2760 RequiredAlignment, Context.toCharUnitsFromBits(RD->getMaxAlignment())); in cxxLayout()
2772 RequiredAlignment = Context.getTargetInfo().getTriple().isArch64Bit() in initializeLayout()
2778 if (unsigned DefaultMaxFieldAlignment = Context.getLangOpts().PackStruct) in initializeLayout()
2785 Context.getTargetInfo().getPointerWidth(LangAS::Default)) in initializeLayout()
2786 MaxFieldAlignment = Context.toCharUnitsFromBits(PackedAlignment); in initializeLayout()
2794 if (ExternalASTSource *Source = Context.getExternalSource()) in initializeLayout()
2810 PointerInfo.Size = Context.toCharUnitsFromBits( in initializeCXXLayout()
2811 Context.getTargetInfo().getPointerWidth(LangAS::Default)); in initializeCXXLayout()
2812 PointerInfo.Alignment = Context.toCharUnitsFromBits( in initializeCXXLayout()
2813 Context.getTargetInfo().getPointerAlign(LangAS::Default)); in initializeCXXLayout()
2833 const ASTRecordLayout &BaseLayout = Context.getASTRecordLayout(BaseDecl); in layoutNonVirtualBases()
2881 const ASTRecordLayout &BaseLayout = Context.getASTRecordLayout(BaseDecl); in layoutNonVirtualBases()
2901 const ASTRecordLayout &Layout = Context.getASTRecordLayout(SharedVBPtrBase); in layoutNonVirtualBases()
2982 Context.toCharUnitsFromBits(External.getExternalFieldOffset(FD)); in layoutField()
3014 unsigned Width = FD->getBitWidthValue(Context); in layoutBitField()
3022 if (Width > Context.toBits(Info.Size)) in layoutBitField()
3023 Width = Context.toBits(Info.Size); in layoutBitField()
3029 placeFieldAtBitOffset(Context.toBits(Size) - RemainingBitsInField); in layoutBitField()
3038 auto NewSize = Context.toCharUnitsFromBits( in layoutBitField()
3039 llvm::alignDown(FieldBitOffset, Context.toBits(Info.Alignment)) + in layoutBitField()
3040 Context.toBits(Info.Size)); in layoutBitField()
3053 RemainingBitsInField = Context.toBits(Info.Size) - Width; in layoutBitField()
3108 FieldOffset += Context.toBits(Offset); in injectVBPtr()
3139 FieldOffset += Context.toBits(Offset); in injectVFPtr()
3158 const ASTRecordLayout &BaseLayout = Context.getASTRecordLayout(BaseDecl); in layoutVirtualBases()
3170 const ASTRecordLayout &BaseLayout = Context.getASTRecordLayout(BaseDecl); in layoutVirtualBases()
3229 Size = Context.toCharUnitsFromBits(External.Size); in finalizeLayout()
3231 Alignment = Context.toCharUnitsFromBits(External.Align); in finalizeLayout()
3261 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl); in computeVtorDispSet()
3272 const ASTRecordLayout &Layout = Context.getASTRecordLayout(BaseDecl); in computeVtorDispSet()