Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:CGM

31 CodeGenVTables::CodeGenVTables(CodeGenModule &CGM)
32 : CGM(CGM), VTContext(CGM.getContext()) { }
41 const CXXMethodDecl *KeyFunction = CGM.getContext().getKeyFunction(RD);
55 if (CGM.getCodeGenOpts().OptimizationLevel && !CGM.getLangOpts().AppleKext)
120 static void setThunkVisibility(CodeGenModule &CGM, const CXXMethodDecl *MD,
122 CGM.setGlobalVisibility(Fn, MD);
124 if (!CGM.getCodeGenOpts().HiddenWeakVTables)
153 if (!CGM.getCodeGenOpts().HiddenWeakTemplateVTables)
246 llvm::Type *Ty = CGM.getTypes().GetFunctionType(FnInfo);
247 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);
252 CGM.getModule().getFunctionList().push_back(NewFn);
263 if (CGM.ReturnTypeUsesSRet(FnInfo))
318 CGM.getCXXABI().BuildInstanceFunctionParams(*this, ResultType, FunctionArgs);
331 CGM.getCXXABI().EmitInstanceFunctionProlog(*this);
354 CGM.getTypes().GetFunctionType(CGM.getTypes().arrangeGlobalDeclaration(GD));
355 llvm::Value *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);
359 CGM.getTypes().arrangeFunctionCall(ResultType, CallArgs, FPT->getExtInfo(),
387 CGM.getCXXABI().EmitReturnFromThunk(*this, RV, ResultType);
392 CGM.setFunctionLinkage(MD, Fn);
395 setThunkVisibility(CGM, MD, Thunk, Fn);
401 const CGFunctionInfo &FnInfo = CGM.getTypes().arrangeGlobalDeclaration(GD);
404 llvm::Constant *Entry = CGM.GetAddrOfThunk(GD, Thunk);
415 CGM.getTypes().GetFunctionTypeForVTable(GD)) {
424 Entry = CGM.GetAddrOfThunk(GD, Thunk);
450 CGM.setFunctionLinkage(cast<CXXMethodDecl>(GD.getDecl()), ThunkFn);
461 CodeGenFunction(CGM).GenerateVarArgsThunk(ThunkFn, FnInfo, GD, Thunk);
464 CodeGenFunction(CGM).GenerateThunk(ThunkFn, FnInfo, GD, Thunk);
474 if (!CGM.getCodeGenOpts().OptimizationLevel)
479 if (!CGM.getTypes().isFuncTypeConvertible(
513 llvm::Type *Int8PtrTy = CGM.Int8PtrTy;
516 CGM.getTypes().ConvertType(CGM.getContext().getPointerDiffType());
518 QualType ClassType = CGM.getContext().getTagDeclType(RD);
519 llvm::Constant *RTTI = CGM.GetAddrOfRTTIDescriptor(ClassType);
573 llvm::FunctionType::get(CGM.VoidTy, /*isVarArg=*/false);
575 CGM.CreateRuntimeFunction(Ty, "__cxa_pure_virtual");
588 Init = CGM.GetAddrOfThunk(GD, Thunk);
592 llvm::Type *Ty = CGM.getTypes().GetFunctionTypeForVTable(GD);
594 Init = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);
621 CGM.DeferredVTables.push_back(RD);
625 CGM.getCXXABI().getMangleContext().mangleCXXVTable(RD, Out);
630 llvm::ArrayType::get(CGM.Int8PtrTy,
634 CGM.CreateOrReplaceCXXRuntimeVariable(Name, ArrayType,
659 CGM.setTypeVisibility(VTable, RD, CodeGenModule::TVK_ForVTable);
679 CGM.getCXXABI().getMangleContext().
686 llvm::ArrayType::get(CGM.Int8PtrTy, VTLayout->getNumVTableComponents());
690 CGM.CreateOrReplaceCXXRuntimeVariable(Name, ArrayType, Linkage);
691 CGM.setTypeVisibility(VTable, RD, CodeGenModule::TVK_ForConstructionVTable);
732 CGM.EmitFundamentalRTTIDescriptors();