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,
155 bool CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info,
179 bool CanPlaceBaseAtOffset(const BaseSubobjectInfo *Info,
270 EmptySubobjectMap::CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info, in CanPlaceBaseSubobjectAtOffset()
282 for (const BaseSubobjectInfo *Base : Info->Bases) { in CanPlaceBaseSubobjectAtOffset()
293 BaseSubobjectInfo *PrimaryVirtualBaseInfo = Info->PrimaryVirtualBaseInfo; in CanPlaceBaseSubobjectAtOffset()
316 void EmptySubobjectMap::UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info, in UpdateEmptyBaseSubobjects()
332 for (const BaseSubobjectInfo *Base : Info->Bases) { in UpdateEmptyBaseSubobjects()
341 BaseSubobjectInfo *PrimaryVirtualBaseInfo = Info->PrimaryVirtualBaseInfo; in UpdateEmptyBaseSubobjects()
360 bool EmptySubobjectMap::CanPlaceBaseAtOffset(const BaseSubobjectInfo *Info, in CanPlaceBaseAtOffset()
725 llvm::SpecificBumpPtrAllocator<BaseSubobjectInfo> BaseSubobjectInfoAllocator;
727 typedef llvm::DenseMap<const CXXRecordDecl *, BaseSubobjectInfo *>
744 BaseSubobjectInfo *ComputeBaseSubobjectInfo(const CXXRecordDecl *RD,
746 BaseSubobjectInfo *Derived);
760 void LayoutNonVirtualBase(const BaseSubobjectInfo *Base);
762 void AddPrimaryVirtualBaseOffsets(const BaseSubobjectInfo *Info,
770 void LayoutVirtualBase(const BaseSubobjectInfo *Base);
774 CharUnits LayoutBase(const BaseSubobjectInfo *Base);
907 BaseSubobjectInfo *ItaniumRecordLayoutBuilder::ComputeBaseSubobjectInfo( in ComputeBaseSubobjectInfo()
908 const CXXRecordDecl *RD, bool IsVirtual, BaseSubobjectInfo *Derived) { in ComputeBaseSubobjectInfo()
909 BaseSubobjectInfo *Info; in ComputeBaseSubobjectInfo()
913 BaseSubobjectInfo *&InfoSlot = VirtualBaseInfo[RD]; in ComputeBaseSubobjectInfo()
920 InfoSlot = new (BaseSubobjectInfoAllocator.Allocate()) BaseSubobjectInfo; in ComputeBaseSubobjectInfo()
923 Info = new (BaseSubobjectInfoAllocator.Allocate()) BaseSubobjectInfo; in ComputeBaseSubobjectInfo()
932 BaseSubobjectInfo *PrimaryVirtualBaseInfo = nullptr; in ComputeBaseSubobjectInfo()
992 BaseSubobjectInfo *Info = ComputeBaseSubobjectInfo(BaseDecl, IsVirtual, in ComputeBaseSubobjectInfo()
1038 BaseSubobjectInfo *PrimaryBaseInfo = VirtualBaseInfo.lookup(PrimaryBase); in LayoutNonVirtualBases()
1050 BaseSubobjectInfo *PrimaryBaseInfo = in LayoutNonVirtualBases()
1092 BaseSubobjectInfo *BaseInfo = NonVirtualBaseInfo.lookup(BaseDecl); in LayoutNonVirtualBases()
1100 const BaseSubobjectInfo *Base) { in LayoutNonVirtualBase()
1112 const BaseSubobjectInfo *Info, CharUnits Offset) { in AddPrimaryVirtualBaseOffsets()
1135 for (const BaseSubobjectInfo *Base : Info->Bases) { in AddPrimaryVirtualBaseOffsets()
1174 const BaseSubobjectInfo *BaseInfo = VirtualBaseInfo.lookup(BaseDecl); in LayoutVirtualBases()
1191 const BaseSubobjectInfo *Base) { in LayoutVirtualBase()
1206 ItaniumRecordLayoutBuilder::LayoutBase(const BaseSubobjectInfo *Base) { in LayoutBase()