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

References

include/llvm/Support/Alignment.h
  103     return Constant<std::alignment_of<T>::value>();
include/llvm/Support/Allocator.h
   81   template <typename T> T *Allocate(size_t Num = 1) {
   82     return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
   82     return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
  470       for (char *Ptr = Begin; Ptr + sizeof(T) <= End; Ptr += sizeof(T))
  470       for (char *Ptr = Begin; Ptr + sizeof(T) <= End; Ptr += sizeof(T))
  478       char *Begin = (char *)alignAddr(*I, Align::Of<T>());
  488       DestroyElements((char *)alignAddr(Ptr, Align::Of<T>()),
  496   T *Allocate(size_t num = 1) { return Allocator.Allocate<T>(num); }
  496   T *Allocate(size_t num = 1) { return Allocator.Allocate<T>(num); }
tools/clang/lib/AST/RecordLayoutBuilder.cpp
   46   SmallVector<BaseSubobjectInfo*, 4> Bases;
   50   BaseSubobjectInfo *PrimaryVirtualBaseInfo;
   53   const BaseSubobjectInfo *Derived;
  126   void UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info,
  154   bool CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info,
  178   bool CanPlaceBaseAtOffset(const BaseSubobjectInfo *Info,
  269 EmptySubobjectMap::CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info,
  281   for (const BaseSubobjectInfo *Base : Info->Bases) {
  292     BaseSubobjectInfo *PrimaryVirtualBaseInfo = Info->PrimaryVirtualBaseInfo;
  315 void EmptySubobjectMap::UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info,
  331   for (const BaseSubobjectInfo *Base : Info->Bases) {
  340     BaseSubobjectInfo *PrimaryVirtualBaseInfo = Info->PrimaryVirtualBaseInfo;
  359 bool EmptySubobjectMap::CanPlaceBaseAtOffset(const BaseSubobjectInfo *Info,
  707   llvm::SpecificBumpPtrAllocator<BaseSubobjectInfo> BaseSubobjectInfoAllocator;
  709   typedef llvm::DenseMap<const CXXRecordDecl *, BaseSubobjectInfo *>
  726   BaseSubobjectInfo *ComputeBaseSubobjectInfo(const CXXRecordDecl *RD,
  728                                               BaseSubobjectInfo *Derived);
  742   void LayoutNonVirtualBase(const BaseSubobjectInfo *Base);
  744   void AddPrimaryVirtualBaseOffsets(const BaseSubobjectInfo *Info,
  752   void LayoutVirtualBase(const BaseSubobjectInfo *Base);
  756   CharUnits LayoutBase(const BaseSubobjectInfo *Base);
  885 BaseSubobjectInfo *ItaniumRecordLayoutBuilder::ComputeBaseSubobjectInfo(
  886     const CXXRecordDecl *RD, bool IsVirtual, BaseSubobjectInfo *Derived) {
  887   BaseSubobjectInfo *Info;
  891     BaseSubobjectInfo *&InfoSlot = VirtualBaseInfo[RD];
  898     InfoSlot = new (BaseSubobjectInfoAllocator.Allocate()) BaseSubobjectInfo;
  901     Info = new (BaseSubobjectInfoAllocator.Allocate()) BaseSubobjectInfo;
  910   BaseSubobjectInfo *PrimaryVirtualBaseInfo = nullptr;
  970     BaseSubobjectInfo *Info = ComputeBaseSubobjectInfo(BaseDecl, IsVirtual,
 1016       BaseSubobjectInfo *PrimaryBaseInfo = VirtualBaseInfo.lookup(PrimaryBase);
 1028       BaseSubobjectInfo *PrimaryBaseInfo =
 1066     BaseSubobjectInfo *BaseInfo = NonVirtualBaseInfo.lookup(BaseDecl);
 1074     const BaseSubobjectInfo *Base) {
 1086     const BaseSubobjectInfo *Info, CharUnits Offset) {
 1109   for (const BaseSubobjectInfo *Base : Info->Bases) {
 1148           const BaseSubobjectInfo *BaseInfo = VirtualBaseInfo.lookup(BaseDecl);
 1165     const BaseSubobjectInfo *Base) {
 1180 ItaniumRecordLayoutBuilder::LayoutBase(const BaseSubobjectInfo *Base) {