Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:Types

36   /// FieldTypes - Holds the LLVM types that the struct is created from.
86 CodeGenTypes &Types;
150 /// ComputeNonVirtualBaseType - Compute the non-virtual base field types.
187 /// LLVM element types.
195 CGRecordLayoutBuilder(CodeGenTypes &Types)
199 Types(Types) { }
208 Alignment = Types.getContext().getASTRecordLayout(D).getAlignment();
211 IsMsStruct = D->isMsStruct(Types.getContext());
234 CGBitFieldInfo CGBitFieldInfo::MakeInfo(CodeGenTypes &Types,
239 llvm::Type *Ty = Types.ConvertTypeForMem(FD->getType());
241 CharUnits::fromQuantity(Types.getDataLayout().getTypeAllocSize(Ty));
242 uint64_t TypeSizeInBits = Types.getContext().toBits(TypeSizeInBytes);
263 if (Types.getDataLayout().isBigEndian()) {
277 uint64_t NextFieldOffsetInBits = Types.getContext().toBits(NextFieldOffset);
279 unsigned CharAlign = Types.getContext().getTargetInfo().getCharAlign();
283 = Types.getContext().toCharUnitsFromBits(FirstFieldOffset);
291 Types.getContext().toCharUnitsFromBits(FirstFieldOffset);
298 NextFieldOffsetInBits = Types.getContext().toBits(NextFieldOffset);
303 AppendPadding(Types.getContext().toCharUnitsFromBits(FirstFieldOffset),
313 (*FJ)->getBitWidthValue(Types.getContext()) != 0); FI = FJ++) {
314 NextContiguousFieldOffset += (*FJ)->getBitWidthValue(Types.getContext());
330 uint64_t LastFieldSize = LastFD->getBitWidthValue(Types.getContext());
332 CharUnits StorageBytes = Types.getContext().toCharUnitsFromBits(
334 uint64_t StorageBits = Types.getContext().toBits(StorageBytes);
347 uint64_t EndOffset = Types.getContext().toBits(Layout.getDataSize());
355 uint64_t LongBits = Types.getContext().getTargetInfo().getLongWidth();
361 StorageBytes = Types.getContext().toCharUnitsFromBits(StorageBits);
362 assert(StorageBits == (uint64_t)Types.getContext().toBits(StorageBytes));
374 uint64_t FieldSize = FD->getBitWidthValue(Types.getContext());
376 BitFields[FD] = CGBitFieldInfo::MakeInfo(Types, FD, FieldOffset, FieldSize,
393 assert(fieldOffset % Types.getTarget().getCharWidth() == 0
396 = Types.getContext().toCharUnitsFromBits(fieldOffset);
398 llvm::Type *Ty = Types.ConvertTypeForMem(D->getType());
413 if (MFAA->getAlignment() != Types.getContext().toBits(typeAlignment))
451 uint64_t FieldSize = Field->getBitWidthValue(Types.getContext());
458 FieldSize, Types.getContext().getTargetInfo().getCharAlign());
460 = Types.getContext().toCharUnitsFromBits(StorageBits);
462 llvm::Type *FieldTy = llvm::Type::getInt8Ty(Types.getLLVMContext());
467 BitFields[Field] = CGBitFieldInfo::MakeInfo(Types, Field, 0, FieldSize,
474 return Types.ConvertTypeForMem(Field->getType());
480 const ASTRecordLayout &layout = Types.getContext().getASTRecordLayout(D);
507 Types.getDataLayout().getABITypeAlignment(fieldType));
509 Types.getDataLayout().getTypeAllocSize(fieldType));
552 = Types.getContext().getASTRecordLayout(base);
570 const CGRecordLayout &baseLayout = Types.getCGRecordLayout(base);
591 const CGRecordLayout &baseLayout = Types.getCGRecordLayout(base);
672 llvm::FunctionType::get(llvm::Type::getInt32Ty(Types.getLLVMContext()),
707 llvm::Type *Vbptr = llvm::Type::getInt32PtrTy(Types.getLLVMContext());
717 const ASTRecordLayout &Layout = Types.getContext().getASTRecordLayout(RD);
744 BaseSubobjectType = llvm::StructType::create(Types.getLLVMContext(),
746 Types.addRecordTypeName(RD, BaseSubobjectType, ".base");
759 const ASTRecordLayout &Layout = Types.getContext().getASTRecordLayout(D);
775 if (Types.getContext().ZeroBitfieldFollowsNonBitfield(FD, LastFD)) {
787 if (FD->getBitWidthValue(Types.getContext()) == 0)
809 // non-virtual base field types.
817 if (Types.getContext().getTargetInfo().getCXXABI().hasPrimaryVBases()) {
856 CharUnits::fromQuantity(Types.getDataLayout().getTypeAllocSize(fieldType));
909 llvm::Type *Ty = llvm::Type::getInt8Ty(Types.getLLVMContext());
928 return CharUnits::fromQuantity(Types.getDataLayout().getABITypeAlignment(Ty));
949 if (!Types.getContext().getLangOpts().CPlusPlus)
955 if (!Types.getCXXABI().isZeroInitializable(MPT))
959 const CGRecordLayout &Layout = Types.getCGRecordLayout(RD);