| clang 22.0.0git
    | 
#include "CodeGenModule.h"#include "ABIInfo.h"#include "CGBlocks.h"#include "CGCUDARuntime.h"#include "CGCXXABI.h"#include "CGCall.h"#include "CGDebugInfo.h"#include "CGHLSLRuntime.h"#include "CGObjCRuntime.h"#include "CGOpenCLRuntime.h"#include "CGOpenMPRuntime.h"#include "CGOpenMPRuntimeGPU.h"#include "CodeGenFunction.h"#include "CodeGenPGO.h"#include "ConstantEmitter.h"#include "CoverageMappingGen.h"#include "TargetInfo.h"#include "clang/AST/ASTContext.h"#include "clang/AST/ASTLambda.h"#include "clang/AST/CharUnits.h"#include "clang/AST/Decl.h"#include "clang/AST/DeclCXX.h"#include "clang/AST/DeclObjC.h"#include "clang/AST/DeclTemplate.h"#include "clang/AST/Mangle.h"#include "clang/AST/RecursiveASTVisitor.h"#include "clang/AST/StmtVisitor.h"#include "clang/Basic/Builtins.h"#include "clang/Basic/CodeGenOptions.h"#include "clang/Basic/Diagnostic.h"#include "clang/Basic/Module.h"#include "clang/Basic/SourceManager.h"#include "clang/Basic/TargetInfo.h"#include "clang/Basic/Version.h"#include "clang/CodeGen/BackendUtil.h"#include "clang/CodeGen/ConstantInitBuilder.h"#include "clang/Frontend/FrontendDiagnostic.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/StringExtras.h"#include "llvm/ADT/StringSwitch.h"#include "llvm/Analysis/TargetLibraryInfo.h"#include "llvm/BinaryFormat/ELF.h"#include "llvm/IR/AttributeMask.h"#include "llvm/IR/CallingConv.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/Intrinsics.h"#include "llvm/IR/LLVMContext.h"#include "llvm/IR/Module.h"#include "llvm/IR/ProfileSummary.h"#include "llvm/ProfileData/InstrProfReader.h"#include "llvm/ProfileData/SampleProf.h"#include "llvm/Support/CRC.h"#include "llvm/Support/CodeGen.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/ConvertUTF.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/TimeProfiler.h"#include "llvm/Support/xxhash.h"#include "llvm/TargetParser/RISCVISAInfo.h"#include "llvm/TargetParser/Triple.h"#include "llvm/TargetParser/X86TargetParser.h"#include "llvm/Transforms/Utils/BuildLibCalls.h"#include <optional>#include <set>Go to the source code of this file.
| Functions | |
| static llvm::cl::opt< bool > | LimitedCoverage ("limited-coverage-experimental", llvm::cl::Hidden, llvm::cl::desc("Emit limited coverage mapping information (experimental)")) | 
| static CGCXXABI * | createCXXABI (CodeGenModule &CGM) | 
| static std::unique_ptr< TargetCodeGenInfo > | createTargetCodeGenInfo (CodeGenModule &CGM) | 
| static void | checkDataLayoutConsistency (const TargetInfo &Target, llvm::LLVMContext &Context, const LangOptions &Opts) | 
| static const llvm::GlobalValue * | getAliasedGlobal (const llvm::GlobalValue *GV) | 
| static bool | checkAliasedGlobal (const ASTContext &Context, DiagnosticsEngine &Diags, SourceLocation Location, bool IsIFunc, const llvm::GlobalValue *Alias, const llvm::GlobalValue *&GV, const llvm::MapVector< GlobalDecl, StringRef > &MangledDeclNames, SourceRange AliasRange) | 
| static void | checkAliasForTocData (llvm::GlobalVariable *GVar, const CodeGenOptions &CodeGenOpts, DiagnosticsEngine &Diags, SourceLocation Location) | 
| static std::optional< llvm::GlobalValue::VisibilityTypes > | getLLVMVisibility (clang::LangOptions::VisibilityFromDLLStorageClassKinds K) | 
| static void | setLLVMVisibility (llvm::GlobalValue &GV, std::optional< llvm::GlobalValue::VisibilityTypes > V) | 
| static void | setVisibilityFromDLLStorageClass (const clang::LangOptions &LO, llvm::Module &M) | 
| static bool | isStackProtectorOn (const LangOptions &LangOpts, const llvm::Triple &Triple, clang::LangOptions::StackProtectorMode Mode) | 
| static bool | shouldAssumeDSOLocal (const CodeGenModule &CGM, llvm::GlobalValue *GV) | 
| static llvm::GlobalVariable::ThreadLocalMode | GetLLVMTLSModel (StringRef S) | 
| static std::string | getCPUSpecificMangling (const CodeGenModule &CGM, StringRef Name) | 
| static void | AppendCPUSpecificCPUDispatchMangling (const CodeGenModule &CGM, const CPUSpecificAttr *Attr, unsigned CPUIndex, raw_ostream &Out) | 
| static bool | isUniqueInternalLinkageDecl (GlobalDecl GD, CodeGenModule &CGM) | 
| static std::string | getMangledNameImpl (CodeGenModule &CGM, GlobalDecl GD, const NamedDecl *ND, bool OmitMultiVersionMangling=false) | 
| static QualType | GeneralizeTransparentUnion (QualType Ty) | 
| static QualType | GeneralizeType (ASTContext &Ctx, QualType Ty, bool GeneralizePointers) | 
| static QualType | GeneralizeFunctionType (ASTContext &Ctx, QualType Ty, bool GeneralizePointers) | 
| static void | removeImageAccessQualifier (std::string &TyName) | 
| static unsigned | ArgInfoAddressSpace (LangAS AS) | 
| static bool | hasUnwindExceptions (const LangOptions &LangOpts) | 
| Determines whether the language options require us to model unwind exceptions. | |
| static bool | requiresMemberFunctionPointerTypeMetadata (CodeGenModule &CGM, const CXXMethodDecl *MD) | 
| static void | setLinkageForGV (llvm::GlobalValue *GV, const NamedDecl *ND) | 
| static bool | hasExistingGeneralizedTypeMD (llvm::Function *F) | 
| static bool | allowKCFIIdentifier (StringRef Name) | 
| static void | emitUsed (CodeGenModule &CGM, StringRef Name, std::vector< llvm::WeakTrackingVH > &List) | 
| static void | addLinkOptionsPostorder (CodeGenModule &CGM, Module *Mod, SmallVectorImpl< llvm::MDNode * > &Metadata, llvm::SmallPtrSet< Module *, 16 > &Visited) | 
| Add link options implied by the given module, including modules it depends on, using a postorder walk. | |
| template<typename AttrT> | |
| static bool | hasImplicitAttr (const ValueDecl *D) | 
| static bool | HasNonDllImportDtor (QualType T) | 
| static void | ReplaceUsesOfNonProtoTypeWithRealFunction (llvm::GlobalValue *Old, llvm::Function *NewFn) | 
| ReplaceUsesOfNonProtoTypeWithRealFunction - This function is called when we implement a function with no prototype, e.g. | |
| static llvm::APInt | getFMVPriority (const TargetInfo &TI, const CodeGenFunction::FMVResolverOption &RO) | 
| static llvm::GlobalValue::LinkageTypes | getMultiversionLinkage (CodeGenModule &CGM, GlobalDecl GD) | 
| static void | replaceDeclarationWith (llvm::GlobalValue *Old, llvm::Constant *New) | 
| static const FunctionDecl * | GetRuntimeFunctionDecl (ASTContext &C, StringRef Name) | 
| static void | setWindowsItaniumDLLImport (CodeGenModule &CGM, bool Local, llvm::Function *F, StringRef Name) | 
| static GlobalDecl | getBaseVariantGlobalDecl (const NamedDecl *D) | 
| static llvm::Constant * | castStringLiteralToDefaultAddressSpace (CodeGenModule &CGM, llvm::GlobalVariable *GV) | 
| static bool | shouldBeInCOMDAT (CodeGenModule &CGM, const Decl &D) | 
| static bool | isVarDeclStrongDefinition (const ASTContext &Context, CodeGenModule &CGM, const VarDecl *D, bool NoCommon) | 
| static void | replaceUsesOfNonProtoConstant (llvm::Constant *old, llvm::Function *newFn) | 
| Replace the uses of a function that was declared with a non-proto type. | |
| static llvm::StringMapEntry< llvm::GlobalVariable * > & | GetConstantCFStringEntry (llvm::StringMap< llvm::GlobalVariable * > &Map, const StringLiteral *Literal, bool TargetIsLSB, bool &IsUTF16, unsigned &StringLength) | 
| static llvm::GlobalVariable * | GenerateStringLiteral (llvm::Constant *C, llvm::GlobalValue::LinkageTypes LT, CodeGenModule &CGM, StringRef GlobalName, CharUnits Alignment) | 
| static bool | needsDestructMethod (ObjCImplementationDecl *impl) | 
| static bool | AllTrivialInitializers (CodeGenModule &CGM, ObjCImplementationDecl *D) | 
| static llvm::Constant * | GetPointerConstant (llvm::LLVMContext &Context, const void *Ptr) | 
| Turns the given pointer into a constant. | |
| static void | EmitGlobalDeclMetadata (CodeGenModule &CGM, llvm::NamedMDNode *&GlobalMetadata, GlobalDecl D, llvm::GlobalValue *Addr) | 
| Variables | |
| static const char | AnnotationSection [] = "llvm.metadata" | 
| static constexpr auto | ErrnoTBAAMDName = "llvm.errno.tbaa" | 
| 
 | static | 
Add link options implied by the given module, including modules it depends on, using a postorder walk.
Definition at line 3389 of file CodeGenModule.cpp.
References addLinkOptionsPostorder(), clang::CodeGen::TargetCodeGenInfo::getDependentLibraryOption(), clang::CodeGen::CodeGenModule::getLLVMContext(), clang::CodeGen::CodeGenModule::getTarget(), clang::CodeGen::CodeGenModule::getTargetCodeGenInfo(), clang::TargetInfo::getTriple(), clang::Module::Imports, clang::Module::LinkLibraries, clang::Module::Parent, and clang::Module::UseExportAsModuleLinkName.
Referenced by addLinkOptionsPostorder().
| 
 | static | 
Definition at line 3156 of file CodeGenModule.cpp.
References clang::C.
Referenced by clang::CodeGen::CodeGenModule::finalizeKCFITypes().
| 
 | static | 
Definition at line 7245 of file CodeGenModule.cpp.
References clang::CXXCtorInitializer::getInit(), clang::Init, clang::ObjCImplementationDecl::init_begin(), clang::ObjCImplementationDecl::init_end(), and clang::CodeGen::CodeGenFunction::isTrivialInitializer().
| 
 | static | 
Definition at line 2008 of file CodeGenModule.cpp.
References getCPUSpecificMangling(), clang::CodeGen::CodeGenModule::getTarget(), and clang::TargetInfo::supportsIFunc().
Referenced by getMangledNameImpl().
Definition at line 2484 of file CodeGenModule.cpp.
References clang::opencl_constant, clang::opencl_generic, clang::opencl_global, clang::opencl_global_device, clang::opencl_global_host, and clang::opencl_local.
Referenced by clang::CodeGen::CodeGenModule::GenKernelArgMetadata().
| 
 | static | 
Definition at line 5762 of file CodeGenModule.cpp.
References clang::Default, clang::CodeGen::CodeGenModule::getContext(), clang::CodeGen::CodeGenModule::GetGlobalConstantAddressSpace(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CodeGenModule::getLLVMContext(), clang::ASTContext::getTargetAddressSpace(), clang::CodeGen::CodeGenModule::getTargetCodeGenInfo(), and clang::CodeGen::TargetCodeGenInfo::performAddrSpaceCast().
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfConstantCString(), and clang::CodeGen::CodeGenModule::GetAddrOfConstantStringFromLiteral().
| 
 | static | 
Definition at line 693 of file CodeGenModule.cpp.
References clang::FixItHint::CreateReplacement(), getAliasedGlobal(), clang::IdentifierInfo::getName(), and clang::DiagnosticsEngine::Report().
| 
 | static | 
Definition at line 755 of file CodeGenModule.cpp.
References clang::DiagnosticsEngine::Report(), and clang::CodeGenOptions::TocDataVarsUserSpecified.
| 
 | static | 
Definition at line 333 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenModule::CodeGenModule().
| 
 | static | 
Definition at line 88 of file CodeGenModule.cpp.
References clang::CreateItaniumCXXABI(), clang::CreateMicrosoftCXXABI(), clang::CodeGen::CodeGenModule::getContext(), and clang::ASTContext::getCXXABIKind().
| 
 | static | 
Definition at line 109 of file CodeGenModule.cpp.
References clang::CodeGen::createAArch64TargetCodeGenInfo(), clang::CodeGen::createAIXTargetCodeGenInfo(), clang::CodeGen::createAMDGPUTargetCodeGenInfo(), clang::CodeGen::createARCTargetCodeGenInfo(), clang::CodeGen::createARMTargetCodeGenInfo(), clang::CodeGen::createAVRTargetCodeGenInfo(), clang::CodeGen::createBPFTargetCodeGenInfo(), clang::CodeGen::createCommonSPIRTargetCodeGenInfo(), clang::CodeGen::createCSKYTargetCodeGenInfo(), clang::CodeGen::createDefaultTargetCodeGenInfo(), clang::CodeGen::createDirectXTargetCodeGenInfo(), clang::CodeGen::createHexagonTargetCodeGenInfo(), clang::CodeGen::createLanaiTargetCodeGenInfo(), clang::CodeGen::createLoongArchTargetCodeGenInfo(), clang::CodeGen::createM68kTargetCodeGenInfo(), clang::CodeGen::createMIPSTargetCodeGenInfo(), clang::CodeGen::createMSP430TargetCodeGenInfo(), clang::CodeGen::createNVPTXTargetCodeGenInfo(), clang::CodeGen::createPPC32TargetCodeGenInfo(), clang::CodeGen::createPPC64_SVR4_TargetCodeGenInfo(), clang::CodeGen::createPPC64TargetCodeGenInfo(), clang::CodeGen::createRISCVTargetCodeGenInfo(), clang::CodeGen::createSparcV8TargetCodeGenInfo(), clang::CodeGen::createSparcV9TargetCodeGenInfo(), clang::CodeGen::createSPIRVTargetCodeGenInfo(), clang::CodeGen::createSystemZTargetCodeGenInfo(), clang::CodeGen::createTCETargetCodeGenInfo(), clang::CodeGen::createVETargetCodeGenInfo(), clang::CodeGen::createWebAssemblyTargetCodeGenInfo(), clang::CodeGen::createWindowsAArch64TargetCodeGenInfo(), clang::CodeGen::createWindowsARMTargetCodeGenInfo(), clang::CodeGen::createWindowsMIPSTargetCodeGenInfo(), clang::CodeGen::createWinX86_32TargetCodeGenInfo(), clang::CodeGen::createWinX86_64TargetCodeGenInfo(), clang::CodeGen::createX86_32TargetCodeGenInfo(), clang::CodeGen::createX86_64TargetCodeGenInfo(), clang::CodeGen::createXCoreTargetCodeGenInfo(), clang::Default, clang::CodeGenOptions::FloatABI, clang::CodeGen::CodeGenModule::getCodeGenOpts(), and clang::CodeGen::CodeGenModule::getTarget().
Referenced by clang::CodeGen::CodeGenModule::getTargetCodeGenInfo().
| 
 | static | 
Definition at line 7779 of file CodeGenModule.cpp.
References clang::Addr, clang::GlobalDecl::getDecl(), clang::CodeGen::CodeGenModule::getLLVMContext(), clang::CodeGen::CodeGenModule::getModule(), and GetPointerConstant().
| 
 | static | 
Definition at line 3328 of file CodeGenModule.cpp.
References clang::cast(), clang::CodeGen::CodeGenModule::getModule(), and clang::CodeGen::CodeGenTypeCache::Int8PtrTy.
| 
 | static | 
Definition at line 2394 of file CodeGenModule.cpp.
References GeneralizeType(), clang::Type::getAs(), clang::ASTContext::getFunctionNoProtoType(), and clang::ASTContext::getFunctionType().
Referenced by clang::CodeGen::CodeGenModule::createFunctionTypeMetadataForIcall(), clang::CodeGen::CodeGenModule::CreateKCFITypeId(), and clang::CodeGen::CodeGenModule::CreateMetadataIdentifierForFnType().
Definition at line 2364 of file CodeGenModule.cpp.
References clang::RecordDecl::fields(), clang::Type::getAsUnionType(), and clang::Decl::hasAttr().
Referenced by GeneralizeType().
| 
 | static | 
Definition at line 2381 of file CodeGenModule.cpp.
References GeneralizeTransparentUnion(), clang::QualType::getCVRQualifiers(), clang::Type::getPointeeType(), clang::ASTContext::getPointerType(), clang::Type::isPointerType(), clang::ASTContext::VoidTy, and clang::QualType::withCVRQualifiers().
Referenced by GeneralizeFunctionType().
| 
 | static | 
Definition at line 6959 of file CodeGenModule.cpp.
References clang::C, clang::CharUnits::getAsAlign(), clang::CodeGen::CodeGenModule::getContext(), clang::CodeGen::CodeGenModule::GetGlobalConstantAddressSpace(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CodeGenModule::getModule(), clang::ASTContext::getTargetAddressSpace(), clang::CodeGen::CodeGenModule::setDSOLocal(), and clang::CodeGen::CodeGenModule::supportsCOMDAT().
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfConstantCString(), and clang::CodeGen::CodeGenModule::GetAddrOfConstantStringFromLiteral().
| 
 | static | 
Definition at line 673 of file CodeGenModule.cpp.
References clang::C.
Referenced by checkAliasedGlobal().
| 
 | static | 
Definition at line 5663 of file CodeGenModule.cpp.
References clang::Ctor_Base, and clang::Dtor_Base.
Referenced by clang::CodeGen::CodeGenModule::EmitExternalDeclaration().
| 
 | static | 
Definition at line 6661 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfConstantCFString().
| 
 | static | 
Definition at line 2002 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenModule::getTarget().
Referenced by AppendCPUSpecificCPUDispatchMangling().
| 
 | static | 
Definition at line 4564 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenFunction::FMVResolverOption::Architecture, clang::CodeGen::CodeGenFunction::FMVResolverOption::Features, and clang::TargetInfo::getFMVPriority().
Referenced by clang::SemaX86::checkTargetClonesAttr().
| 
 | static | 
Definition at line 1965 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenModule::setTLSMode().
| 
 | static | 
Definition at line 883 of file CodeGenModule.cpp.
References clang::LangOptionsBase::Default, clang::LangOptionsBase::Hidden, clang::LangOptionsBase::Keep, and clang::LangOptionsBase::Protected.
Referenced by setVisibilityFromDLLStorageClass().
| 
 | static | 
Definition at line 2029 of file CodeGenModule.cpp.
References clang::CodeGen::ABIInfo::appendAttributeMangling(), AppendCPUSpecificCPUDispatchMangling(), clang::CC_X86RegCall, clang::CPUDispatch, clang::CPUSpecific, clang::CodeGen::TargetCodeGenInfo::getABIInfo(), clang::FunctionType::getCallConv(), clang::CodeGen::CodeGenModule::getCodeGenOpts(), clang::CodeGen::CodeGenModule::getContext(), clang::CodeGen::CodeGenModule::getCXXABI(), clang::NamedDecl::getIdentifier(), clang::GlobalDecl::getKernelReferenceKind(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CGCXXABI::getMangleContext(), clang::CodeGen::CodeGenModule::getModuleNameHash(), clang::GlobalDecl::getMultiVersionIndex(), clang::IdentifierInfo::getName(), clang::CodeGen::CodeGenModule::getTargetCodeGenInfo(), clang::GlobalDecl::getWithDecl(), isUniqueInternalLinkageDecl(), clang::MangleContext::mangleName(), clang::MangleContext::needsUniqueInternalLinkageNames(), clang::None, clang::CodeGen::CodeGenModule::printPostfixForExternalizedDecl(), clang::ASTContext::shouldExternalize(), clang::MangleContext::shouldMangleDeclName(), clang::Stub, clang::Target, clang::TargetClones, and clang::TargetVersion.
| 
 | static | 
Definition at line 4578 of file CodeGenModule.cpp.
References clang::cast(), clang::GlobalDecl::getDecl(), clang::NamedDecl::getFormalLinkage(), and clang::Internal.
| 
 | static | 
Turns the given pointer into a constant.
Definition at line 7772 of file CodeGenModule.cpp.
Referenced by EmitGlobalDeclMetadata().
| 
 | static | 
Definition at line 5217 of file CodeGenModule.cpp.
References clang::C, clang::TranslationUnitDecl::castToDeclContext(), and clang::DeclContext::lookup().
Referenced by setWindowsItaniumDLLImport().
| 
 | static | 
Definition at line 3079 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenModule::createFunctionTypeMetadataForIcall(), and clang::CodeGen::CodeGenModule::createIndirectFunctionTypeMD().
Definition at line 4100 of file CodeGenModule.cpp.
References clang::Decl::getAttr(), and clang::Decl::isImplicit().
Referenced by clang::CodeGen::CodeGenModule::EmitGlobal(), and clang::SemaCUDA::isImplicitHostDeviceFunction().
Definition at line 4292 of file CodeGenModule.cpp.
References clang::T.
| 
 | static | 
Determines whether the language options require us to model unwind exceptions.
We treat -fexceptions as mandating this except under the fragile ObjC ABI with only ObjC exceptions enabled. This means, for example, that C with -fexceptions enables this.
Definition at line 2653 of file CodeGenModule.cpp.
References clang::ObjCRuntime::hasUnwindExceptions(), and clang::LangOptions::ObjCRuntime.
Referenced by clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition().
| 
 | static | 
Definition at line 952 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition().
| 
 | static | 
Definition at line 2022 of file CodeGenModule.cpp.
References clang::GlobalDecl::getDecl(), clang::CodeGen::CodeGenModule::getFunctionLinkage(), clang::CodeGen::CodeGenModule::getModuleNameHash(), and clang::isa().
Referenced by getMangledNameImpl().
| 
 | static | 
Definition at line 6145 of file CodeGenModule.cpp.
References clang::CharUnits::fromQuantity(), clang::Type::getAsRecordDecl(), clang::VarDecl::getInit(), clang::VarDecl::getTLSKind(), clang::ValueDecl::getType(), clang::Decl::hasAttr(), clang::VarDecl::hasExternalStorage(), and shouldBeInCOMDAT().
| 
 | static | 
| 
 | static | 
Definition at line 7235 of file CodeGenModule.cpp.
References clang::ObjCInterfaceDecl::all_declared_ivar_begin(), clang::ObjCImplDecl::getClassInterface(), and clang::ObjCIvarDecl::getNextIvar().
| 
 | static | 
Definition at line 2458 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenModule::GenKernelArgMetadata().
| 
 | static | 
Definition at line 4707 of file CodeGenModule.cpp.
References clang::cast(), and New.
| 
 | static | 
Replace the uses of a function that was declared with a non-proto type.
We want to silently drop extra arguments from call sites
Definition at line 6300 of file CodeGenModule.cpp.
References clang::cast(), clang::isa(), and replaceUsesOfNonProtoConstant().
Referenced by replaceUsesOfNonProtoConstant(), and ReplaceUsesOfNonProtoTypeWithRealFunction().
| 
 | static | 
ReplaceUsesOfNonProtoTypeWithRealFunction - This function is called when we implement a function with no prototype, e.g.
"int foo() {}". If there are existing call uses of the old function in the module, this adjusts them to call the new function directly.
This is not just a cleanup: the always_inline pass requires direct calls to functions to be able to inline them. If there is a bitcast in the way, it won't inline them. Instcombine normally deletes these calls, but it isn't run at -O0.
Definition at line 6413 of file CodeGenModule.cpp.
References clang::isa(), and replaceUsesOfNonProtoConstant().
| 
 | static | 
Definition at line 2668 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenModule::getCodeGenOpts(), clang::CXXMethodDecl::getParent(), clang::CodeGen::CodeGenModule::HasHiddenLTOVisibility(), clang::isa(), clang::CXXMethodDecl::isImplicitObjectMemberFunction(), and clang::CXXMethodDecl::isVirtual().
Referenced by clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition().
| 
 | static | 
Definition at line 3068 of file CodeGenModule.cpp.
References clang::LinkageInfo::getLinkage(), clang::NamedDecl::getLinkageAndVisibility(), clang::Decl::hasAttr(), clang::isExternallyVisible(), clang::Decl::isWeakImported(), and clang::LinkageInfo::setLinkage().
| 
 | static | 
Definition at line 899 of file CodeGenModule.cpp.
References V.
Referenced by setVisibilityFromDLLStorageClass().
| 
 | static | 
Definition at line 913 of file CodeGenModule.cpp.
References getLLVMVisibility(), and setLLVMVisibility().
Referenced by clang::CodeGen::CodeGenModule::Release().
| 
 | static | 
Definition at line 5254 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenModule::getCodeGenOpts(), clang::CodeGen::CodeGenModule::getContext(), GetRuntimeFunctionDecl(), clang::CodeGen::CodeGenModule::getTriple(), and clang::Decl::hasAttr().
Referenced by clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), and clang::CodeGen::CodeGenModule::CreateRuntimeFunction().
| 
 | static | 
Definition at line 1817 of file CodeGenModule.cpp.
References clang::CodeGen::CodeGenModule::getCodeGenOpts(), clang::CodeGen::CodeGenModule::getLangOpts(), clang::CodeGen::CodeGenModule::getTriple(), clang::isa(), and clang::CodeGenOptions::RelocationModel.
| 
 | static | 
Definition at line 5810 of file CodeGenModule.cpp.
References clang::cast(), clang::CodeGen::CodeGenModule::getContext(), clang::ASTContext::GetGVALinkageForFunction(), clang::ASTContext::GetGVALinkageForVariable(), clang::GVA_AvailableExternally, clang::GVA_DiscardableODR, clang::GVA_Internal, clang::GVA_StrongExternal, clang::GVA_StrongODR, clang::Decl::hasAttr(), and clang::CodeGen::CodeGenModule::supportsCOMDAT().
| 
 | static | 
Definition at line 85 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenModule::EmitAnnotationArgs(), clang::CodeGen::CodeGenModule::EmitAnnotationString(), and clang::CodeGen::CodeGenModule::EmitGlobalAnnotations().
| 
 | staticconstexpr | 
Definition at line 86 of file CodeGenModule.cpp.
Referenced by clang::CodeGen::CodeGenModule::Release().