Lines Matching refs:CharUnits
89 CharUnits Offset;
90 CharUnits NonVirtualSize;
93 void invalidate() { NonVirtualSize = CharUnits::Zero(); }
98 CharUnits Alignment;
101 CharUnits NextFieldOffset;
124 CharUnits baseOffset);
128 CharUnits baseOffset);
141 CharUnits baseOffset);
158 void AppendField(CharUnits fieldOffset, llvm::Type *FieldTy);
162 void AppendPadding(CharUnits fieldOffset, CharUnits fieldAlignment);
168 bool ResizeLastBaseFieldIfNecessary(CharUnits offset);
172 llvm::Type *getByteArrayType(CharUnits NumBytes);
175 void AppendBytes(CharUnits numBytes);
179 void AppendTailPadding(CharUnits RecordSize);
181 CharUnits getTypeAlignment(llvm::Type *Ty) const;
185 CharUnits getAlignmentAsLLVMStruct() const;
218 NextFieldOffset = CharUnits::Zero();
234 CharUnits TypeSizeInBytes =
235 CharUnits::fromQuantity(Types.getDataLayout().getTypeAllocSize(Ty));
276 CharUnits FirstFieldOffsetInBytes
284 CharUnits FieldOffsetInCharUnits =
298 CharUnits::One());
326 CharUnits StorageBytes = Types.getContext().toCharUnitsFromBits(
389 CharUnits fieldOffsetInBytes
393 CharUnits typeAlignment = getTypeAlignment(Ty);
414 CharUnits alignedNextFieldOffsetInBytes =
453 CharUnits NumBytesToAppend
457 if (NumBytesToAppend > CharUnits::One())
477 CharUnits unionSize = CharUnits::Zero();
478 CharUnits unionAlign = CharUnits::Zero();
500 CharUnits fieldAlign = CharUnits::fromQuantity(
502 CharUnits fieldSize = CharUnits::fromQuantity(
517 AppendField(CharUnits::Zero(), unionType);
522 unionAlign = CharUnits::One();
529 unionAlign = CharUnits::One();
533 CharUnits recordSize = layout.getSize();
540 CharUnits baseOffset) {
543 AppendPadding(baseOffset, CharUnits::One());
560 CharUnits baseOffset) {
581 CharUnits baseOffset) {
609 CharUnits vbaseOffset = Layout.getVBaseClassOffset(BaseDecl);
632 CharUnits vbaseOffset = Layout.getVBaseClassOffset(BaseDecl);
656 if (!LayoutNonVirtualBase(PrimaryBase, CharUnits::Zero()))
659 if (!LayoutVirtualBase(PrimaryBase, CharUnits::Zero()))
678 AppendField(CharUnits::Zero(), VTableTy->getPointerTo());
699 if (Layout.getVBPtrOffset() != CharUnits::fromQuantity(-1)) {
700 CharUnits VBPtrOffset = Layout.getVBPtrOffset();
713 CharUnits NonVirtualSize = Layout.getNonVirtualSize();
714 CharUnits NonVirtualAlign = Layout.getNonVirtualAlign();
715 CharUnits AlignedNonVirtualTypeSize =
719 CharUnits RecordSize = Layout.getSize();
724 CharUnits AlignedNextFieldOffset =
734 CharUnits NumBytes = AlignedNonVirtualTypeSize - AlignedNextFieldOffset;
820 void CGRecordLayoutBuilder::AppendTailPadding(CharUnits RecordSize) {
825 CharUnits AlignedNextFieldOffset =
833 CharUnits NumPadBytes = RecordSize - NextFieldOffset;
837 void CGRecordLayoutBuilder::AppendField(CharUnits fieldOffset,
839 CharUnits fieldSize =
840 CharUnits::fromQuantity(Types.getDataLayout().getTypeAllocSize(fieldType));
847 void CGRecordLayoutBuilder::AppendPadding(CharUnits fieldOffset,
848 CharUnits fieldAlignment) {
859 CharUnits alignedNextFieldOffset =
868 CharUnits padding = fieldOffset - NextFieldOffset;
872 bool CGRecordLayoutBuilder::ResizeLastBaseFieldIfNecessary(CharUnits offset) {
890 llvm::Type *CGRecordLayoutBuilder::getByteArrayType(CharUnits numBytes) {
894 if (numBytes > CharUnits::One())
900 void CGRecordLayoutBuilder::AppendBytes(CharUnits numBytes) {
908 CharUnits CGRecordLayoutBuilder::getTypeAlignment(llvm::Type *Ty) const {
910 return CharUnits::One();
912 return CharUnits::fromQuantity(Types.getDataLayout().getABITypeAlignment(Ty));
915 CharUnits CGRecordLayoutBuilder::getAlignmentAsLLVMStruct() const {
917 return CharUnits::One();
919 CharUnits maxAlignment = CharUnits::One();
995 CharUnits NonVirtualSize = Layout.getNonVirtualSize();
996 CharUnits NonVirtualAlign = Layout.getNonVirtualAlign();
997 CharUnits AlignedNonVirtualTypeSize =