Home | History | Annotate | Download | only in AST

Lines Matching refs:CharUnits

69   typedef llvm::DenseMap<CharUnits, ClassVectorTy> EmptyClassOffsetsMapTy;
74 CharUnits MaxEmptyClassOffset;
80 void AddSubobjectAtOffset(const CXXRecordDecl *RD, CharUnits Offset);
83 CharUnits Offset, bool PlacingEmptyBase);
87 CharUnits Offset);
88 void UpdateEmptyFieldSubobjects(const FieldDecl *FD, CharUnits Offset);
92 bool AnyEmptySubobjectsBeyondOffset(CharUnits Offset) const {
96 CharUnits
107 CharUnits Offset) const;
110 CharUnits Offset);
114 CharUnits Offset) const;
116 CharUnits Offset) const;
122 CharUnits SizeOfLargestEmptySubobject;
134 CharUnits Offset);
138 bool CanPlaceFieldAtOffset(const FieldDecl *FD, CharUnits Offset);
146 CharUnits EmptySize;
169 CharUnits EmptySize;
187 CharUnits Offset) const {
205 CharUnits Offset) {
225 CharUnits Offset) {
241 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
263 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
272 CharUnits Offset,
292 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
311 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
317 CharUnits Offset) {
335 CharUnits Offset) const {
353 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(BaseDecl);
363 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBaseDecl);
376 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
387 CharUnits Offset) const {
408 CharUnits ElementOffset = Offset;
427 CharUnits Offset) {
439 CharUnits Offset) {
459 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(BaseDecl);
468 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBaseDecl);
480 CharUnits FieldOffset = Offset + getFieldOffset(Layout, FieldNo);
487 CharUnits Offset) {
505 CharUnits ElementOffset = Offset;
537 CharUnits Alignment;
540 CharUnits UnpackedAlignment;
572 CharUnits MaxFieldAlignment;
577 CharUnits NonVirtualSize;
578 CharUnits NonVirtualAlignment;
592 typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits> BaseOffsetsMapTy;
622 llvm::DenseMap<const CXXRecordDecl *, CharUnits> ExternalBaseOffsets;
625 llvm::DenseMap<const CXXRecordDecl *, CharUnits> ExternalVirtualBaseOffsets;
630 Alignment(CharUnits::One()), UnpackedAlignment(CharUnits::One()),
634 MaxFieldAlignment(CharUnits::Zero()),
635 DataSize(0), NonVirtualSize(CharUnits::Zero()),
636 NonVirtualAlignment(CharUnits::One()),
644 void resetWithTargetAlignment(CharUnits TargetAlignment) {
695 void EnsureVTablePointerAlignment(CharUnits UnpackedBaseAlign);
705 CharUnits Offset);
716 CharUnits LayoutBase(const BaseSubobjectInfo *Base);
725 void UpdateAlignment(CharUnits NewAlignment, CharUnits UnpackedNewAlignment);
726 void UpdateAlignment(CharUnits NewAlignment) {
744 CharUnits getSize() const {
750 void setSize(CharUnits NewSize) { Size = Context.toBits(NewSize); }
753 CharUnits getAligment() const { return Alignment; }
755 CharUnits getDataSize() const {
761 void setDataSize(CharUnits NewSize) { DataSize = Context.toBits(NewSize); }
949 RecordLayoutBuilder::EnsureVTablePointerAlignment(CharUnits UnpackedBaseAlign) {
950 CharUnits BaseAlign = (Packed) ? CharUnits::One() : UnpackedBaseAlign;
1003 CharUnits PtrWidth =
1005 CharUnits PtrAlign =
1038 CharUnits Offset = LayoutBase(Base);
1049 CharUnits Offset) {
1077 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
1133 CharUnits Offset = LayoutBase(Base);
1143 CharUnits RecordLayoutBuilder::LayoutBase(const BaseSubobjectInfo *Base) {
1147 CharUnits Offset;
1152 llvm::DenseMap<const CXXRecordDecl *, CharUnits>::iterator Known;
1168 CharUnits UnpackedBaseAlign = Layout.getNonVirtualAlignment();
1169 CharUnits BaseAlign = (Packed) ? CharUnits::One() : UnpackedBaseAlign;
1173 (!HasExternalLayout || Offset == CharUnits::Zero()) &&
1174 EmptySubobjects->CanPlaceBaseAtOffset(Base, CharUnits::Zero())) {
1178 return CharUnits::Zero();
1202 Alignment = CharUnits::One();
1231 MaxFieldAlignment = CharUnits::fromQuantity(DefaultMaxFieldAlignment);
1240 MaxFieldAlignment = CharUnits::fromQuantity(2);
1241 Alignment = CharUnits::fromQuantity(2);
1379 CharUnits TypeAlign = Context.getTypeAlignInChars(Type);
1665 CharUnits FieldOffset =
1666 IsUnion ? CharUnits::Zero() : getDataSize();
1667 CharUnits FieldSize;
1668 CharUnits FieldAlign;
1675 FieldSize = CharUnits::Zero();
1685 std::pair<CharUnits, CharUnits> FieldInfo =
1698 CharUnits TypeSize = Context.getTypeSizeInChars(BTy);
1707 CharUnits UnpackedFieldAlign = FieldAlign;
1708 CharUnits UnpackedFieldOffset = FieldOffset;
1711 FieldAlign = CharUnits::One();
1712 CharUnits MaxAlignmentInChars =
1778 setSize(CharUnits::One());
1781 setSize(CharUnits::One());
1790 CharUnits
1799 Alignment = CharUnits::One();
1827 if (Packed && UnpackedAlignment > CharUnits::One() &&
1834 void RecordLayoutBuilder::UpdateAlignment(CharUnits NewAlignment,
1835 CharUnits UnpackedNewAlignment) {
1865 Alignment = CharUnits::One();
2138 CharUnits Size;
2139 CharUnits Alignment;
2141 typedef llvm::DenseMap<const CXXRecordDecl *, CharUnits> BaseOffsetsMapTy;
2179 /// \brief Places a field at an offset in CharUnits.
2180 void placeFieldAtOffset(CharUnits FieldOffset) {
2192 CharUnits Size;
2194 CharUnits NonVirtualSize;
2196 CharUnits DataSize;
2198 CharUnits Alignment;
2200 CharUnits MaxFieldAlignment;
2203 CharUnits RequiredAlignment;
2207 CharUnits CurrentBitfieldSize;
2209 CharUnits VBPtrOffset;
2271 CharUnits FieldRequiredAlignment =
2293 Info.Alignment = CharUnits::One();
2328 Size = CharUnits::Zero();
2329 Alignment = CharUnits::One();
2334 CharUnits::One() : CharUnits::Zero();
2336 MaxFieldAlignment = CharUnits::Zero();
2339 MaxFieldAlignment = CharUnits::fromQuantity(DefaultMaxFieldAlignment);
2349 MaxFieldAlignment = CharUnits::One();
2436 VBPtrOffset = CharUnits::fromQuantity(-1);
2454 CharUnits BaseOffset = Size.RoundUpToAlignment(Info.Alignment);
2475 placeFieldAtOffset(CharUnits::Zero());
2478 CharUnits FieldOffset = Size.RoundUpToAlignment(Info.Alignment);
2507 placeFieldAtOffset(CharUnits::Zero());
2512 CharUnits FieldOffset = Size.RoundUpToAlignment(Info.Alignment);
2525 placeFieldAtOffset(IsUnion ? CharUnits::Zero() : Size);
2533 placeFieldAtOffset(CharUnits::Zero());
2538 CharUnits FieldOffset = Size.RoundUpToAlignment(Info.Alignment);
2549 CharUnits InjectionSite = VBPtrOffset;
2553 CharUnits FieldStart = VBPtrOffset + PointerInfo.Size;
2556 CharUnits Offset = (FieldStart - InjectionSite).RoundUpToAlignment(
2576 CharUnits Offset = PointerInfo.Size.RoundUpToAlignment(
2596 CharUnits VtorDispSize = CharUnits::fromQuantity(4);
2597 CharUnits VtorDispAlignment = VtorDispSize;
2630 CharUnits BaseOffset = Size.RoundUpToAlignment(Info.Alignment);
2758 Builder.Alignment, CharUnits::Zero(), Builder.PrimaryBase,
2810 CharUnits DataSize =
2812 CharUnits NonVirtualSize =
2821 CharUnits::fromQuantity(-1),
2971 CharUnits Offset, unsigned IndentLevel) {
2983 CharUnits Offset,
3033 CharUnits BaseOffset = Offset + Layout.getBaseClassOffset(Base);
3050 CharUnits FieldOffset = Offset +
3074 CharUnits VBaseOffset = Offset + Layout.getVBaseClassOffset(VBase);
3077 PrintOffset(OS, VBaseOffset - CharUnits::fromQuantity(4), IndentLevel);
3105 return DumpCXXRecordLayout(OS, CXXRD, *this, CharUnits(), 0, nullptr,