Lines Matching refs:BaseSubobjectInfo
39 struct BaseSubobjectInfo { struct
47 SmallVector<BaseSubobjectInfo*, 4> Bases; argument
51 BaseSubobjectInfo *PrimaryVirtualBaseInfo; argument
54 const BaseSubobjectInfo *Derived; argument
127 void UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info,
154 bool CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info,
178 bool CanPlaceBaseAtOffset(const BaseSubobjectInfo *Info,
269 EmptySubobjectMap::CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info, in CanPlaceBaseSubobjectAtOffset()
281 for (const BaseSubobjectInfo *Base : Info->Bases) { in CanPlaceBaseSubobjectAtOffset()
292 BaseSubobjectInfo *PrimaryVirtualBaseInfo = Info->PrimaryVirtualBaseInfo; in CanPlaceBaseSubobjectAtOffset()
315 void EmptySubobjectMap::UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info, in UpdateEmptyBaseSubobjects()
331 for (const BaseSubobjectInfo *Base : Info->Bases) { in UpdateEmptyBaseSubobjects()
340 BaseSubobjectInfo *PrimaryVirtualBaseInfo = Info->PrimaryVirtualBaseInfo; in UpdateEmptyBaseSubobjects()
359 bool EmptySubobjectMap::CanPlaceBaseAtOffset(const BaseSubobjectInfo *Info, in CanPlaceBaseAtOffset()
686 llvm::SpecificBumpPtrAllocator<BaseSubobjectInfo> BaseSubobjectInfoAllocator;
688 typedef llvm::DenseMap<const CXXRecordDecl *, BaseSubobjectInfo *>
705 BaseSubobjectInfo *ComputeBaseSubobjectInfo(const CXXRecordDecl *RD,
707 BaseSubobjectInfo *Derived);
721 void LayoutNonVirtualBase(const BaseSubobjectInfo *Base);
723 void AddPrimaryVirtualBaseOffsets(const BaseSubobjectInfo *Info,
731 void LayoutVirtualBase(const BaseSubobjectInfo *Base);
735 CharUnits LayoutBase(const BaseSubobjectInfo *Base);
864 BaseSubobjectInfo *ItaniumRecordLayoutBuilder::ComputeBaseSubobjectInfo( in ComputeBaseSubobjectInfo()
865 const CXXRecordDecl *RD, bool IsVirtual, BaseSubobjectInfo *Derived) { in ComputeBaseSubobjectInfo()
866 BaseSubobjectInfo *Info; in ComputeBaseSubobjectInfo()
870 BaseSubobjectInfo *&InfoSlot = VirtualBaseInfo[RD]; in ComputeBaseSubobjectInfo()
877 InfoSlot = new (BaseSubobjectInfoAllocator.Allocate()) BaseSubobjectInfo; in ComputeBaseSubobjectInfo()
880 Info = new (BaseSubobjectInfoAllocator.Allocate()) BaseSubobjectInfo; in ComputeBaseSubobjectInfo()
889 BaseSubobjectInfo *PrimaryVirtualBaseInfo = nullptr; in ComputeBaseSubobjectInfo()
949 BaseSubobjectInfo *Info = ComputeBaseSubobjectInfo(BaseDecl, IsVirtual, in ComputeBaseSubobjectInfo()
996 BaseSubobjectInfo *PrimaryBaseInfo = VirtualBaseInfo.lookup(PrimaryBase); in LayoutNonVirtualBases()
1008 BaseSubobjectInfo *PrimaryBaseInfo = in LayoutNonVirtualBases()
1046 BaseSubobjectInfo *BaseInfo = NonVirtualBaseInfo.lookup(BaseDecl); in LayoutNonVirtualBases()
1054 const BaseSubobjectInfo *Base) { in LayoutNonVirtualBase()
1066 const BaseSubobjectInfo *Info, CharUnits Offset) { in AddPrimaryVirtualBaseOffsets()
1089 for (const BaseSubobjectInfo *Base : Info->Bases) { in AddPrimaryVirtualBaseOffsets()
1128 const BaseSubobjectInfo *BaseInfo = VirtualBaseInfo.lookup(BaseDecl); in LayoutVirtualBases()
1145 const BaseSubobjectInfo *Base) { in LayoutVirtualBase()
1160 ItaniumRecordLayoutBuilder::LayoutBase(const BaseSubobjectInfo *Base) { in LayoutBase()