Lines Matching refs:CGM
26 CodeGenModule &CGM; // Per-module state. member in __anon444cddb10111::RTTIBuilder
65 RTTIBuilder(CodeGenModule &CGM) : CGM(CGM), in RTTIBuilder() argument
66 VMContext(CGM.getModule().getContext()) { } in RTTIBuilder()
118 CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(Ty, Out); in GetAddrOfTypeName()
129 CGM.CreateOrReplaceCXXRuntimeVariable(Name, Init->getType(), Linkage); in GetAddrOfTypeName()
140 CGM.getCXXABI().getMangleContext().mangleCXXRTTI(Ty, Out); in GetAddrOfExternalRTTIDescriptor()
145 llvm::GlobalVariable *GV = CGM.getModule().getNamedGlobal(Name); in GetAddrOfExternalRTTIDescriptor()
149 GV = new llvm::GlobalVariable(CGM.getModule(), CGM.Int8PtrTy, in GetAddrOfExternalRTTIDescriptor()
154 return llvm::ConstantExpr::getBitCast(GV, CGM.Int8PtrTy); in GetAddrOfExternalRTTIDescriptor()
248 static bool ShouldUseExternalRTTIDescriptor(CodeGenModule &CGM, QualType Ty) { in ShouldUseExternalRTTIDescriptor() argument
249 ASTContext &Context = CGM.getContext(); in ShouldUseExternalRTTIDescriptor()
262 return !CGM.getVTables().ShouldEmitVTableInThisTU(RD); in ShouldUseExternalRTTIDescriptor()
309 getTypeInfoLinkage(CodeGenModule &CGM, QualType Ty) { in getTypeInfoLinkage() argument
329 if (!CGM.getLangOpts().RTTI) { in getTypeInfoLinkage()
340 return CGM.getVTableLinkage(RD); in getTypeInfoLinkage()
483 CGM.getModule().getOrInsertGlobal(VTableName, CGM.Int8PtrTy); in BuildVTablePointer()
486 CGM.getTypes().ConvertType(CGM.getContext().getPointerDiffType()); in BuildVTablePointer()
491 VTable = llvm::ConstantExpr::getBitCast(VTable, CGM.Int8PtrTy); in BuildVTablePointer()
517 maybeUpdateRTTILinkage(CodeGenModule &CGM, llvm::GlobalVariable *GV, in maybeUpdateRTTILinkage() argument
524 llvm::GlobalVariable::LinkageTypes Linkage = getTypeInfoLinkage(CGM, Ty); in maybeUpdateRTTILinkage()
537 CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(Ty, Out); in maybeUpdateRTTILinkage()
541 llvm::GlobalVariable *TypeNameGV = CGM.getModule().getNamedGlobal(Name); in maybeUpdateRTTILinkage()
552 Ty = CGM.getContext().getCanonicalType(Ty); in BuildTypeInfo()
557 CGM.getCXXABI().getMangleContext().mangleCXXRTTI(Ty, Out); in BuildTypeInfo()
561 llvm::GlobalVariable *OldGV = CGM.getModule().getNamedGlobal(Name); in BuildTypeInfo()
563 maybeUpdateRTTILinkage(CGM, OldGV, Ty); in BuildTypeInfo()
565 return llvm::ConstantExpr::getBitCast(OldGV, CGM.Int8PtrTy); in BuildTypeInfo()
570 if (!Force && (IsStdLib || ShouldUseExternalRTTIDescriptor(CGM, Ty))) in BuildTypeInfo()
578 Linkage = getTypeInfoLinkage(CGM, Ty); in BuildTypeInfo()
586 Fields.push_back(llvm::ConstantExpr::getBitCast(TypeName, CGM.Int8PtrTy)); in BuildTypeInfo()
670 new llvm::GlobalVariable(CGM.getModule(), Init->getType(), in BuildTypeInfo()
689 CGM.setTypeVisibility(GV, RD, CodeGenModule::TVK_ForRTTI); in BuildTypeInfo()
690 CGM.setTypeVisibility(TypeName, RD, CodeGenModule::TVK_ForRTTIName); in BuildTypeInfo()
693 if (CGM.getCodeGenOpts().HiddenWeakVTables && in BuildTypeInfo()
708 return llvm::ConstantExpr::getBitCast(GV, CGM.Int8PtrTy); in BuildTypeInfo()
743 QualType SuperTy = CGM.getContext().getObjCInterfaceType(Super); in BuildObjCObjectTypeInfo()
746 llvm::Constant *BaseTypeInfo = RTTIBuilder(CGM).BuildTypeInfo(SuperTy); in BuildObjCObjectTypeInfo()
757 RTTIBuilder(CGM).BuildTypeInfo(RD->bases_begin()->getType()); in BuildSIClassTypeInfo()
832 CGM.getTypes().ConvertType(CGM.getContext().UnsignedIntTy); in BuildVMIClassTypeInfo()
850 CGM.getTypes().ConvertType(CGM.getContext().LongTy); in BuildVMIClassTypeInfo()
874 Fields.push_back(RTTIBuilder(CGM).BuildTypeInfo(Base->getType())); in BuildVMIClassTypeInfo()
888 CGM.getVTableContext().getVirtualBaseOffsetOffset(RD, BaseDecl); in BuildVMIClassTypeInfo()
890 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD); in BuildVMIClassTypeInfo()
912 CGM.getContext().getUnqualifiedArrayType(PointeeTy, Quals); in BuildPointerTypeInfo()
926 CGM.getTypes().ConvertType(CGM.getContext().UnsignedIntTy); in BuildPointerTypeInfo()
933 RTTIBuilder(CGM).BuildTypeInfo(UnqualifiedPointeeTy); in BuildPointerTypeInfo()
944 CGM.getContext().getUnqualifiedArrayType(PointeeTy, Quals); in BuildPointerToMemberTypeInfo()
963 CGM.getTypes().ConvertType(CGM.getContext().UnsignedIntTy); in BuildPointerToMemberTypeInfo()
970 RTTIBuilder(CGM).BuildTypeInfo(UnqualifiedPointeeTy); in BuildPointerToMemberTypeInfo()
977 Fields.push_back(RTTIBuilder(CGM).BuildTypeInfo(QualType(ClassType, 0))); in BuildPointerToMemberTypeInfo()