Lines Matching refs:CGM

26   CodeGenModule &CGM;  // Per-module state.
65 RTTIBuilder(CodeGenModule &CGM) : CGM(CGM),
66 VMContext(CGM.getModule().getContext()) { }
117 CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(Ty, Out);
128 CGM.CreateOrReplaceCXXRuntimeVariable(Name, Init->getType(), Linkage);
139 CGM.getCXXABI().getMangleContext().mangleCXXRTTI(Ty, Out);
144 llvm::GlobalVariable *GV = CGM.getModule().getNamedGlobal(Name);
148 GV = new llvm::GlobalVariable(CGM.getModule(), CGM.Int8PtrTy,
153 return llvm::ConstantExpr::getBitCast(GV, CGM.Int8PtrTy);
247 static bool ShouldUseExternalRTTIDescriptor(CodeGenModule &CGM, QualType Ty) {
248 ASTContext &Context = CGM.getContext();
261 return !CGM.getVTables().ShouldEmitVTableInThisTU(RD);
308 getTypeInfoLinkage(CodeGenModule &CGM, QualType Ty) {
328 if (!CGM.getLangOpts().RTTI) {
339 return CGM.getVTableLinkage(RD);
482 CGM.getModule().getOrInsertGlobal(VTableName, CGM.Int8PtrTy);
485 CGM.getTypes().ConvertType(CGM.getContext().getPointerDiffType());
490 VTable = llvm::ConstantExpr::getBitCast(VTable, CGM.Int8PtrTy);
516 maybeUpdateRTTILinkage(CodeGenModule &CGM, llvm::GlobalVariable *GV,
523 llvm::GlobalVariable::LinkageTypes Linkage = getTypeInfoLinkage(CGM, Ty);
536 CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(Ty, Out);
540 llvm::GlobalVariable *TypeNameGV = CGM.getModule().getNamedGlobal(Name);
551 Ty = CGM.getContext().getCanonicalType(Ty);
556 CGM.getCXXABI().getMangleContext().mangleCXXRTTI(Ty, Out);
560 llvm::GlobalVariable *OldGV = CGM.getModule().getNamedGlobal(Name);
562 maybeUpdateRTTILinkage(CGM, OldGV, Ty);
564 return llvm::ConstantExpr::getBitCast(OldGV, CGM.Int8PtrTy);
569 if (!Force && (IsStdLib || ShouldUseExternalRTTIDescriptor(CGM, Ty)))
577 Linkage = getTypeInfoLinkage(CGM, Ty);
585 Fields.push_back(llvm::ConstantExpr::getBitCast(TypeName, CGM.Int8PtrTy));
669 new llvm::GlobalVariable(CGM.getModule(), Init->getType(),
688 CGM.setTypeVisibility(GV, RD, CodeGenModule::TVK_ForRTTI);
689 CGM.setTypeVisibility(TypeName, RD, CodeGenModule::TVK_ForRTTIName);
692 if (CGM.getCodeGenOpts().HiddenWeakVTables &&
707 return llvm::ConstantExpr::getBitCast(GV, CGM.Int8PtrTy);
742 QualType SuperTy = CGM.getContext().getObjCInterfaceType(Super);
745 llvm::Constant *BaseTypeInfo = RTTIBuilder(CGM).BuildTypeInfo(SuperTy);
756 RTTIBuilder(CGM).BuildTypeInfo(RD->bases_begin()->getType());
827 CGM.getTypes().ConvertType(CGM.getContext().UnsignedIntTy);
845 CGM.getTypes().ConvertType(CGM.getContext().LongTy);
869 Fields.push_back(RTTIBuilder(CGM).BuildTypeInfo(Base->getType()));
883 CGM.getVTableContext().getVirtualBaseOffsetOffset(RD, BaseDecl);
885 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD);
907 CGM.getContext().getUnqualifiedArrayType(PointeeTy, Quals);
921 CGM.getTypes().ConvertType(CGM.getContext().UnsignedIntTy);
928 RTTIBuilder(CGM).BuildTypeInfo(UnqualifiedPointeeTy);
939 CGM.getContext().getUnqualifiedArrayType(PointeeTy, Quals);
958 CGM.getTypes().ConvertType(CGM.getContext().UnsignedIntTy);
965 RTTIBuilder(CGM).BuildTypeInfo(UnqualifiedPointeeTy);
972 Fields.push_back(RTTIBuilder(CGM).BuildTypeInfo(QualType(ClassType, 0)));