58 llvm::Module &TheModule;
65 llvm::DenseMap<const ObjCInterfaceType*, llvm::Type *> InterfaceTypes;
68 llvm::DenseMap<const Type*, std::unique_ptr<CGRecordLayout>> CGRecordLayouts;
71 llvm::DenseMap<const Type*, llvm::StructType *> RecordDeclTypes;
74 llvm::FoldingSet<CGFunctionInfo> FunctionInfos{FunctionInfosLog2InitSize};
83 bool LongDoubleReferenced;
87 llvm::DenseMap<const Type *, llvm::Type *> TypeCache;
89 llvm::DenseMap<const Type *, llvm::Type *> RecordsWithOpaqueMemberPointers;
91 static constexpr unsigned FunctionInfosLog2InitSize = 9;
93 llvm::Type *ConvertFunctionTypeInternal(
QualType FT);
100 return TheModule.getDataLayout();
132 llvm::Type *LLVMTy =
nullptr);