Lines Matching defs:CodeGenModule
1 //===--- CodeGenModule.cpp - Emit LLVM Code from ASTs for a Module --------===//
13 #include "CodeGenModule.h"
87 static CGCXXABI *createCXXABI(CodeGenModule &CGM) {
108 createTargetCodeGenInfo(CodeGenModule &CGM) {
328 const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
334 CodeGenModule::CodeGenModule(ASTContext &C,
456 CodeGenModule::~CodeGenModule() {}
458 void CodeGenModule::createObjCRuntime() {
478 void CodeGenModule::createOpenCLRuntime() {
482 void CodeGenModule::createOpenMPRuntime() {
502 void CodeGenModule::createCUDARuntime() {
506 void CodeGenModule::createHLSLRuntime() {
510 void CodeGenModule::addReplacement(StringRef Name, llvm::Constant *C) {
514 void CodeGenModule::applyReplacements() {
545 void CodeGenModule::addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C) {
549 void CodeGenModule::applyGlobalValReplacements() {
661 void CodeGenModule::checkAliases() {
745 void CodeGenModule::clear() {
848 void CodeGenModule::Release() {
1453 void CodeGenModule::EmitOpenCLMetadata() {
1477 void CodeGenModule::EmitBackendOptionsMetadata(
1485 void CodeGenModule::UpdateCompletedType(const TagDecl *TD) {
1490 void CodeGenModule::RefreshTypeCacheForClass(const CXXRecordDecl *RD) {
1495 llvm::MDNode *CodeGenModule::getTBAATypeInfo(QualType QTy) {
1501 TBAAAccessInfo CodeGenModule::getTBAAAccessInfo(QualType AccessType) {
1521 CodeGenModule::getTBAAVTablePtrAccessInfo(llvm::Type *VTablePtrType) {
1527 llvm::MDNode *CodeGenModule::getTBAAStructInfo(QualType QTy) {
1533 llvm::MDNode *CodeGenModule::getTBAABaseTypeInfo(QualType QTy) {
1539 llvm::MDNode *CodeGenModule::getTBAAAccessTagInfo(TBAAAccessInfo Info) {
1545 TBAAAccessInfo CodeGenModule::mergeTBAAInfoForCast(TBAAAccessInfo SourceInfo,
1553 CodeGenModule::mergeTBAAInfoForConditionalOperator(TBAAAccessInfo InfoA,
1561 CodeGenModule::mergeTBAAInfoForMemoryTransfer(TBAAAccessInfo DestInfo,
1568 void CodeGenModule::DecorateInstructionWithTBAA(llvm::Instruction *Inst,
1574 void CodeGenModule::DecorateInstructionWithInvariantGroup(
1580 void CodeGenModule::Error(SourceLocation loc, StringRef message) {
1587 void CodeGenModule::ErrorUnsupported(const Stmt *S, const char *Type) {
1597 void CodeGenModule::ErrorUnsupported(const Decl *D, const char *Type) {
1604 void CodeGenModule::runWithSufficientStackSpace(SourceLocation Loc,
1609 llvm::ConstantInt *CodeGenModule::getSize(CharUnits size) {
1613 void CodeGenModule::setGlobalVisibility(llvm::GlobalValue *GV,
1660 static bool shouldAssumeDSOLocal(const CodeGenModule &CGM,
1762 void CodeGenModule::setDSOLocal(llvm::GlobalValue *GV) const {
1766 void CodeGenModule::setDLLImportDLLExport(llvm::GlobalValue *GV,
1777 void CodeGenModule::setDLLImportDLLExport(llvm::GlobalValue *GV,
1789 void CodeGenModule::setGVProperties(llvm::GlobalValue *GV,
1795 void CodeGenModule::setGVProperties(llvm::GlobalValue *GV,
1801 void CodeGenModule::setGVPropertiesAux(llvm::GlobalValue *GV,
1817 CodeGenModule::GetDefaultLLVMTLSModel() const {
1831 void CodeGenModule::setTLSMode(llvm::GlobalValue *GV, const VarDecl &D) const {
1845 static std::string getCPUSpecificMangling(const CodeGenModule &CGM,
1851 static void AppendCPUSpecificCPUDispatchMangling(const CodeGenModule &CGM,
1866 CodeGenModule &CGM) {
1872 static std::string getMangledNameImpl(CodeGenModule &CGM, GlobalDecl GD,
1964 void CodeGenModule::UpdateMultiVersionNames(GlobalDecl GD,
2009 StringRef CodeGenModule::getMangledName(GlobalDecl GD) {
2070 StringRef CodeGenModule::getBlockMangledName(GlobalDecl GD,
2091 const GlobalDecl CodeGenModule::getMangledNameDecl(StringRef Name) {
2101 llvm::GlobalValue *CodeGenModule::GetGlobalValue(StringRef Name) {
2107 void CodeGenModule::AddGlobalCtor(llvm::Function *Ctor, int Priority,
2116 void CodeGenModule::AddGlobalDtor(llvm::Function *Dtor, int Priority,
2128 void CodeGenModule::EmitCtorList(CtorList &Fns, const char *GlobalName) {
2183 CodeGenModule::getFunctionLinkage(GlobalDecl GD) {
2194 llvm::ConstantInt *CodeGenModule::CreateCrossDsoCfiTypeId(llvm::Metadata *MD) {
2201 llvm::ConstantInt *CodeGenModule::CreateKCFITypeId(QualType T) {
2219 void CodeGenModule::SetLLVMFunctionAttributes(GlobalDecl GD,
2283 void CodeGenModule::GenKernelArgMetadata(llvm::Function *Fn,
2448 static bool requiresMemberFunctionPointerTypeMetadata(CodeGenModule &CGM,
2462 CodeGenModule::getMostBaseClasses(const CXXRecordDecl *RD) {
2476 void CodeGenModule::SetLLVMFunctionAttributesForDefinition(const Decl *D,
2665 void CodeGenModule::SetCommonAttributes(GlobalDecl GD, llvm::GlobalValue *GV) {
2685 bool CodeGenModule::GetCPUAndFeaturesAttributes(GlobalDecl GD,
2781 void CodeGenModule::setNonAliasAttributes(GlobalDecl GD,
2831 void CodeGenModule::SetInternalFunctionAttributes(GlobalDecl GD,
2854 void CodeGenModule::CreateFunctionTypeMetadataForIcall(const FunctionDecl *FD,
2875 void CodeGenModule::setKCFIType(const FunctionDecl *FD, llvm::Function *F) {
2892 void CodeGenModule::finalizeKCFITypes() {
2923 void CodeGenModule::SetFunctionAttributes(GlobalDecl GD, llvm::Function *F,
3032 void CodeGenModule::addUsedGlobal(llvm::GlobalValue *GV) {
3038 void CodeGenModule::addCompilerUsedGlobal(llvm::GlobalValue *GV) {
3044 void CodeGenModule::addUsedOrCompilerUsedGlobal(llvm::GlobalValue *GV) {
3053 static void emitUsed(CodeGenModule &CGM, StringRef Name,
3079 void CodeGenModule::emitLLVMUsed() {
3084 void CodeGenModule::AppendLinkerOptions(StringRef Opts) {
3089 void CodeGenModule::AddDetectMismatch(StringRef Name, StringRef Value) {
3098 void CodeGenModule::AddDependentLib(StringRef Lib) {
3114 static void addLinkOptionsPostorder(CodeGenModule &CGM, Module *Mod,
3165 void CodeGenModule::EmitModuleInitializers(clang::Module *Primary) {
3198 void CodeGenModule::EmitModuleLinkOptions() {
3261 void CodeGenModule::EmitDeferred() {
3338 void CodeGenModule::EmitVTablesOpportunistically() {
3356 void CodeGenModule::EmitGlobalAnnotations() {
3376 llvm::Constant *CodeGenModule::EmitAnnotationString(StringRef Str) {
3393 llvm::Constant *CodeGenModule::EmitAnnotationUnit(SourceLocation Loc) {
3401 llvm::Constant *CodeGenModule::EmitAnnotationLineNo(SourceLocation L) {
3409 llvm::Constant *CodeGenModule::EmitAnnotationArgs(const AnnotateAttr *Attr) {
3441 llvm::Constant *CodeGenModule::EmitAnnotateAttr(llvm::GlobalValue *GV,
3466 void CodeGenModule::AddGlobalAnnotations(const ValueDecl *D,
3474 bool CodeGenModule::isInNoSanitizeList(SanitizerMask Kind, llvm::Function *Fn,
3494 bool CodeGenModule::isInNoSanitizeList(SanitizerMask Kind,
3526 bool CodeGenModule::imbueXRayAttrs(llvm::Function *Fn, SourceLocation Loc,
3553 CodeGenModule::isFunctionBlockedByProfileList(llvm::Function *Fn,
3577 CodeGenModule::isFunctionBlockedFromProfileInstr(llvm::Function *Fn,
3592 bool CodeGenModule::MustBeEmitted(const ValueDecl *Global) {
3609 bool CodeGenModule::MayBeEmittedEagerly(const ValueDecl *Global) {
3657 ConstantAddress CodeGenModule::GetAddrOfMSGuidDecl(const MSGuidDecl *GD) {
3708 ConstantAddress CodeGenModule::GetAddrOfUnnamedGlobalConstantDecl(
3739 ConstantAddress CodeGenModule::GetAddrOfTemplateParamObject(
3770 ConstantAddress CodeGenModule::GetWeakRefReference(const ValueDecl *VD) {
3806 bool CodeGenModule::shouldEmitCUDAGlobalVar(const VarDecl *Global) const {
3819 void CodeGenModule::EmitGlobal(GlobalDecl GD) {
4097 CodeGenModule::isTriviallyRecursive(const FunctionDecl *FD) {
4114 bool CodeGenModule::shouldEmitFunction(GlobalDecl GD) {
4177 bool CodeGenModule::shouldOpportunisticallyEmitVTables() {
4181 void CodeGenModule::EmitMultiVersionFunctionDefinition(GlobalDecl GD,
4206 void CodeGenModule::EmitGlobalDefinition(GlobalDecl GD, llvm::GlobalValue *GV) {
4271 getMultiversionLinkage(CodeGenModule &CGM, GlobalDecl GD) {
4278 void CodeGenModule::emitMultiVersionFunctions() {
4410 void CodeGenModule::emitCPUDispatchDefinition(GlobalDecl GD) {
4531 void CodeGenModule::AddDeferredMultiVersionResolverToEmit(GlobalDecl GD) {
4547 llvm::Constant *CodeGenModule::GetOrCreateMultiVersionResolver(GlobalDecl GD) {
4622 bool CodeGenModule::shouldDropDLLAttribute(const Decl *D,
4642 llvm::Constant *CodeGenModule::GetOrCreateLLVMFunction(
4843 CodeGenModule::GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty, bool ForVTable,
4878 llvm::Constant *CodeGenModule::GetFunctionStart(const ValueDecl *Decl) {
4923 static void setWindowsItaniumDLLImport(CodeGenModule &CGM, bool Local,
4940 llvm::FunctionCallee CodeGenModule::CreateRuntimeFunction(
4972 CodeGenModule::CreateRuntimeFunction(llvm::FunctionType *FTy, StringRef Name,
4990 // FIXME: We should use CodeGenModule::SetLLVMFunctionAttributes() instead
5013 CodeGenModule::GetOrCreateLLVMGlobal(StringRef MangledName, llvm::Type *Ty,
5211 CodeGenModule::GetAddrOfGlobal(GlobalDecl GD, ForDefinition_t IsForDefinition) {
5236 llvm::GlobalVariable *CodeGenModule::CreateOrReplaceCXXRuntimeVariable(
5283 llvm::Constant *CodeGenModule::GetAddrOfGlobalVar(const VarDecl *D,
5299 CodeGenModule::CreateRuntimeVariable(llvm::Type *Ty,
5308 void CodeGenModule::EmitTentativeDefinition(const VarDecl *D) {
5331 void CodeGenModule::EmitExternalDeclaration(const DeclaratorDecl *D) {
5338 CharUnits CodeGenModule::GetTargetTypeStoreSize(llvm::Type *Ty) const {
5343 LangAS CodeGenModule::GetGlobalVarAddressSpace(const VarDecl *D) {
5381 LangAS CodeGenModule::GetGlobalConstantAddressSpace() const {
5409 castStringLiteralToDefaultAddressSpace(CodeGenModule &CGM,
5425 void CodeGenModule::MaybeHandleStaticInExternC(const SomeDecl *D,
5457 static bool shouldBeInCOMDAT(CodeGenModule &CGM, const Decl &D) {
5482 bool CodeGenModule::supportsCOMDAT() const {
5486 void CodeGenModule::maybeSetTrivialComdat(const Decl &D,
5493 const ABIInfo &CodeGenModule::getABIInfo() {
5498 void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D,
5769 void CodeGenModule::EmitExternalVarDeclaration(const VarDecl *D) {
5781 void CodeGenModule::EmitExternalFunctionDeclaration(const FunctionDecl *FD) {
5794 CodeGenModule &CGM, const VarDecl *D,
5870 CodeGenModule::getLLVMLinkageForDeclarator(const DeclaratorDecl *D,
5942 CodeGenModule::getLLVMLinkageVarDefinition(const VarDecl *VD) {
6070 void CodeGenModule::HandleCXXStaticMemberVarInstantiation(VarDecl *VD) {
6085 void CodeGenModule::EmitGlobalFunctionDefinition(GlobalDecl GD,
6130 void CodeGenModule::EmitAliasDefinition(GlobalDecl GD) {
6217 void CodeGenModule::emitIFuncDefinition(GlobalDecl GD) {
6279 llvm::Function *CodeGenModule::getIntrinsic(unsigned IID,
6320 CodeGenModule::GetAddrOfConstantCFString(const StringLiteral *Literal) {
6505 bool CodeGenModule::getExpressionLocationsEnabled() const {
6509 QualType CodeGenModule::getObjCFastEnumerationStateType() {
6541 CodeGenModule::GetConstantArrayFromStringLiteral(const StringLiteral *E) {
6583 CodeGenModule &CGM, StringRef GlobalName,
6607 CodeGenModule::GetAddrOfConstantStringFromLiteral(const StringLiteral *S,
6660 CodeGenModule::GetAddrOfConstantStringFromObjCEncode(const ObjCEncodeExpr *E) {
6670 ConstantAddress CodeGenModule::GetAddrOfConstantCString(
6704 ConstantAddress CodeGenModule::GetAddrOfGlobalTemporary(
6837 void CodeGenModule::EmitObjCPropertyImplementations(const
6871 static bool AllTrivialInitializers(CodeGenModule &CGM,
6886 void CodeGenModule::EmitObjCIvarInitializations(ObjCImplementationDecl *D) {
6925 void CodeGenModule::EmitLinkageSpec(const LinkageSpecDecl *LSD) {
6935 void CodeGenModule::EmitTopLevelStmt(const TopLevelStmtDecl *D) {
6972 void CodeGenModule::EmitDeclContext(const DeclContext *DC) {
6989 void CodeGenModule::EmitTopLevelDecl(Decl *D) {
7292 void CodeGenModule::AddDeferredUnusedCoverageMapping(Decl *D) {
7319 void CodeGenModule::ClearUnusedCoverageMapping(const Decl *D) {
7330 void CodeGenModule::EmitDeferredUnusedCoverageMappings() {
7370 void CodeGenModule::EmitMainVoidAlias() {
7391 static void EmitGlobalDeclMetadata(CodeGenModule &CGM,
7406 bool CodeGenModule::CheckAndReplaceExternCIFuncs(llvm::GlobalValue *Elem,
7477 void CodeGenModule::EmitStaticExternCAliases() {
7486 // is suppressed. See CodeGenModule::MaybeHandleStaticInExternC.
7500 bool CodeGenModule::lookupRepresentativeDecl(StringRef MangledName,
7516 void CodeGenModule::EmitDeclMetadata() {
7555 void CodeGenModule::EmitVersionIdentMetadata() {
7565 void CodeGenModule::EmitCommandLineMetadata() {
7575 void CodeGenModule::EmitCoverageFile() {
7593 llvm::Constant *CodeGenModule::GetAddrOfRTTIDescriptor(QualType Ty,
7608 void CodeGenModule::EmitOMPThreadPrivateDecl(const OMPThreadPrivateDecl *D) {
7629 CodeGenModule::CreateMetadataIdentifierImpl(QualType T, MetadataTypeMap &Map,
7660 llvm::Metadata *CodeGenModule::CreateMetadataIdentifierForType(QualType T) {
7665 CodeGenModule::CreateMetadataIdentifierForVirtualMemPtrType(QualType T) {
7701 llvm::Metadata *CodeGenModule::CreateMetadataIdentifierGeneralized(QualType T) {
7707 bool CodeGenModule::NeedAllVtablesTypeId() const {
7720 void CodeGenModule::AddVTableTypeMetadata(llvm::GlobalVariable *VTable,
7738 llvm::SanitizerStatReport &CodeGenModule::getSanStats() {
7746 CodeGenModule::createOpenCLIntToSamplerConversion(const Expr *E,
7756 CharUnits CodeGenModule::getNaturalPointeeTypeAlignment(
7762 CharUnits CodeGenModule::getNaturalTypeAlignment(QualType T,
7828 bool CodeGenModule::stopAutoInit() {
7853 void CodeGenModule::printPostfixForExternalizedDecl(llvm::raw_ostream &OS,
7891 void CodeGenModule::moveLazyEmissionStates(CodeGenModule *NewBuilder) {