class CodeGenModule
Declaration
class CodeGenModule : public CodeGenTypeCache { /* full declaration omitted */ };
Description
This class organizes the cross-function state that is used while generating LLVM code.
Declared at: clang/lib/CodeGen/CodeGenModule.h:279
Inherits from: CodeGenTypeCache
Member Variables
- private clang::ASTContext& Context
- private const clang::LangOptions& LangOpts
- private IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS
- private const clang::HeaderSearchOptions& HeaderSearchOpts
- private const clang::PreprocessorOptions& PreprocessorOpts
- private const clang::CodeGenOptions& CodeGenOpts
- private unsigned int NumAutoVarInit = 0
- private llvm::Module& TheModule
- private clang::DiagnosticsEngine& Diags
- private const clang::TargetInfo& Target
- private std::unique_ptr<CGCXXABI> ABI
- private llvm::LLVMContext& VMContext
- private std::string ModuleNameHash
- private bool CXX20ModuleInits = false
- private std::unique_ptr<CodeGenTBAA> TBAA
- private std::unique_ptr<TargetCodeGenInfo> TheTargetCodeGenInfo
- private clang::CodeGen::CodeGenTypes Types
- private clang::CodeGen::CodeGenVTables VTables
- Holds information about C++ vtables.
- private std::unique_ptr<CGObjCRuntime> ObjCRuntime
- private std::unique_ptr<CGOpenCLRuntime> OpenCLRuntime
- private std::unique_ptr<CGOpenMPRuntime> OpenMPRuntime
- private std::unique_ptr<CGCUDARuntime> CUDARuntime
- private std::unique_ptr<CGHLSLRuntime> HLSLRuntime
- private std::unique_ptr<CGDebugInfo> DebugInfo
- private std::unique_ptr<ObjCEntrypoints> ObjCData
- private llvm::MDNode* NoObjCARCExceptionsMetadata = nullptr
- private std::unique_ptr<llvm::IndexedInstrProfReader> PGOReader
- private clang::CodeGen::InstrProfStats PGOStats
- private std::unique_ptr<llvm::SanitizerStatReport> SanStats
- private llvm::SmallPtrSet<llvm::GlobalValue*, 10> WeakRefReferences
- private llvm::DenseMap<StringRef, GlobalDecl> DeferredDecls
- This contains all the decls which have definitions but/ which are deferred for emission and therefore should only be output if they are actually used. If a decl is in this, then it is known to have not been referenced yet.
- private std::vector<GlobalDecl> DeferredDeclsToEmit
- This is a list of deferred decls which we have seen that *are* actually referenced. These get code generated when the module is done.
- private llvm::DenseMap<llvm::StringRef, GlobalDecl> EmittedDeferredDecls
- Decls that were DeferredDecls and have now been emitted.
- private std::vector<GlobalDecl> Aliases
- List of alias we have emitted. Used to make sure that what they point to is defined once we get to the end of the of the translation unit.
- private std::vector<GlobalDecl> MultiVersionFuncs
- List of multiversion functions to be emitted. This list is processed in conjunction with other deferred symbols and is used to ensure that multiversion function resolvers and ifuncs are defined and emitted.
- private clang::CodeGen::CodeGenModule::ReplacementsTy Replacements
- private llvm::SmallVector<std::pair<llvm::GlobalValue*, llvm::Constant*>, 8> GlobalValReplacements
- List of global values to be replaced with something else. Used when we want to replace a GlobalValue but can't identify it by its mangled name anymore (because the name is already taken).
- private llvm::DenseMap<const VarDecl*, llvm::GlobalVariable*> InitializerConstants
- Variables for which we've emitted globals containing their constant values along with the corresponding globals, for opportunistic reuse.
- private llvm::DenseSet<GlobalDecl> DiagnosedConflictingDefinitions
- Set of global decls for which we already diagnosed mangled name conflict. Required to not issue a warning (on a mangling conflict) multiple times for the same decl.
- private std::vector<const CXXRecordDecl*> DeferredVTables
- A queue of (optional) vtables to consider emitting.
- private std::vector<const CXXRecordDecl*> OpportunisticVTables
- A queue of (optional) vtables that may be emitted opportunistically.
- private std::vector<llvm::WeakTrackingVH> LLVMUsed
- List of global values which are required to be present in the object file; bitcast to i8*. This is used for forcing visibility of symbols which may otherwise be optimized out.
- private std::vector<llvm::WeakTrackingVH> LLVMCompilerUsed
- private clang::CodeGen::CodeGenModule::CtorList GlobalCtors
- Store the list of global constructors and their respective priorities to be emitted when the translation unit is complete.
- private clang::CodeGen::CodeGenModule::CtorList GlobalDtors
- Store the list of global destructors and their respective priorities to be emitted when the translation unit is complete.
- private llvm::MapVector<GlobalDecl, StringRef> MangledDeclNames
- An ordered map of canonical GlobalDecls to their mangled names.
- private llvm::StringMap<GlobalDecl, llvm::BumpPtrAllocator> Manglings
- private std::vector<llvm::Constant*> Annotations
- Global annotations.
- private llvm::StringMap<llvm::Constant*> AnnotationStrings
- Map used to get unique annotation strings.
- private llvm::DenseMap<unsigned int, llvm::Constant*> AnnotationArgs
- Used for uniquing of annotation arguments.
- private llvm::StringMap<llvm::GlobalVariable*> CFConstantStringMap
- private llvm::DenseMap<llvm::Constant*, llvm::GlobalVariable*> ConstantStringMap
- private llvm::DenseMap<const UnnamedGlobalConstantDecl*, llvm::GlobalVariable*> UnnamedGlobalConstantDeclMap
- private llvm::DenseMap<const Decl*, llvm::Constant*> StaticLocalDeclMap
- private llvm::DenseMap<const Decl*, llvm::GlobalVariable*> StaticLocalDeclGuardMap
- private llvm::DenseMap<const Expr*, llvm::Constant*> MaterializedGlobalTemporaryMap
- private llvm::DenseMap<QualType, llvm::Constant*> AtomicSetterHelperFnMap
- private llvm::DenseMap<QualType, llvm::Constant*> AtomicGetterHelperFnMap
- private llvm::DenseMap<QualType, llvm::Constant*> TypeDescriptorMap
- Map used to get unique type descriptor constants for sanitizers.
- private clang::CodeGen::CodeGenModule::StaticExternCMap StaticExternCValues
- private std::vector<const VarDecl*> CXXThreadLocals
- thread_local variables defined or used in this TU.
- private std::vector<llvm::Function*> CXXThreadLocalInits
- thread_local variables with initializers that need to run before any thread_local variable in this TU is odr-used.
- private std::vector<const VarDecl*> CXXThreadLocalInitVars
- private std::vector<llvm::Function*> CXXGlobalInits
- Global variables with initializers that need to run before main.
- private llvm::DenseMap<const Decl*, unsigned int> DelayedCXXInitPosition
- When a C++ decl with an initializer is deferred, null is appended to CXXGlobalInits, and the index of that null is placed here so that the initializer will be performed in the correct order. Once the decl is emitted, the index is replaced with ~0U to ensure that we don't re-emit the initializer.
- private SmallVector< clang::CodeGen::CodeGenModule::GlobalInitData, 8> PrioritizedCXXGlobalInits
- Global variables with initializers whose order of initialization is set by init_priority attribute.
- private SmallVector<clang::CodeGen::CodeGenModule:: CXXGlobalDtorsOrStermFinalizer_t, 8> CXXGlobalDtorsOrStermFinalizers
- private SmallVector<clang::CodeGen::CodeGenModule:: StermFinalizerData, 8> PrioritizedCXXStermFinalizers
- Global variables with sterm finalizers whose order of initialization is set by init_priority attribute.
- private llvm::SetVector<clang::Module*> ImportedModules
- The complete set of modules that has been imported.
- private llvm::SmallPtrSet<clang::Module*, 16> EmittedModuleInitializers
- The set of modules for which the module initializers have been emitted.
- private SmallVector<llvm::MDNode*, 16> LinkerOptionsMetadata
- A vector of metadata strings for linker options.
- private SmallVector<llvm::MDNode*, 16> ELFDependentLibraries
- A vector of metadata strings for dependent libraries for ELF.
- private llvm::WeakTrackingVH CFConstantStringClassRef
- Cached reference to the class for constant strings. This value has type int * but is actually an Obj-C class pointer.
- private clang::QualType ObjCFastEnumerationStateType
- The type used to describe the state of a fast enumeration in Objective-C's for..in loop.
- private llvm::DenseMap<const CompoundLiteralExpr*, llvm::GlobalVariable*> EmittedCompoundLiterals
- Map used to be sure we don't emit the same CompoundLiteral twice.
- private llvm::DenseMap<const BlockExpr*, llvm::Constant*> EmittedGlobalBlocks
- Map of the global blocks we've emitted, so that we don't have to re-emit them if the constexpr evaluator gets aggressive.
- private llvm::Constant* NSConcreteGlobalBlock = nullptr
- @ {
- private llvm::Constant* NSConcreteStackBlock = nullptr
- private llvm::FunctionCallee BlockObjectAssign = nullptr
- private llvm::FunctionCallee BlockObjectDispose = nullptr
- private llvm::Type* BlockDescriptorType = nullptr
- private llvm::Type* GenericBlockLiteralType = nullptr
- private struct(unnamed struct at / home / hdoc / tmp / llvm - project / clang / lib / CodeGen / CodeGenModule.h : 561 : 3) Block
- private clang::GlobalDecl initializedGlobalDecl
- private llvm::Function* LifetimeStartFn = nullptr
- void @llvm.lifetime.start(i64 %size, i8* nocapture <ptr >)
- private llvm::Function* LifetimeEndFn = nullptr
- void @llvm.lifetime.end(i64 %size, i8* nocapture <ptr >)
- private std::unique_ptr<SanitizerMetadata> SanitizerMD
- private llvm::MapVector<const Decl*, bool> DeferredEmptyCoverageMappingDecls
- private std::unique_ptr<CoverageMappingModuleGen> CoverageMapping
- private clang::CodeGen::CodeGenModule::MetadataTypeMap MetadataIdMap
- private clang::CodeGen::CodeGenModule::MetadataTypeMap VirtualMetadataIdMap
- private clang::CodeGen::CodeGenModule::MetadataTypeMap GeneralizedMetadataIdMap
- private llvm::DenseMap<const llvm::Constant*, llvm::GlobalVariable*> RTTIProxyMap
- public llvm::FunctionCallee IsOSVersionAtLeastFn = nullptr
- public llvm::FunctionCallee IsPlatformVersionAtLeastFn = nullptr
- public llvm::FoldingSet<BlockByrefHelpers> ByrefHelpersCache
- private std::map<int, llvm::TinyPtrVector<llvm::Function*>> DtorsUsingAtExit
Inherited from CodeGenTypeCache:
- public VoidTy
- public Int8Ty
- public Int16Ty
- public Int32Ty
- public Int64Ty
- public HalfTy
- public BFloatTy
- public FloatTy
- public DoubleTy
- public IntTy
- public CharTy
- public
- public
- public
- public
- public
- public
- public PointerWidthInBits
- public
- public
- public ASTAllocaAddressSpace
- public RuntimeCC
Method Overview
- public void AddCXXDtorEntry(llvm::FunctionCallee DtorFn, llvm::Constant * Object)
- public void AddCXXPrioritizedStermFinalizerEntry(llvm::Function * StermFinalizer, int Priority)
- public void AddCXXStermFinalizerEntry(llvm::FunctionCallee DtorFn)
- public void AddCXXStermFinalizerToGlobalDtor(llvm::Function * StermFinalizer, int Priority)
- public void AddDeferredUnusedCoverageMapping(clang::Decl * D)
- public void AddDependentLib(llvm::StringRef Lib)
- public void AddDetectMismatch(llvm::StringRef Name, llvm::StringRef Value)
- public void AddGlobalAnnotations(const clang::ValueDecl * D, llvm::GlobalValue * GV)
- private void AddGlobalCtor(llvm::Function * Ctor, int Priority = 65535, llvm::Constant * AssociatedData = nullptr)
- private void AddGlobalDtor(llvm::Function * Dtor, int Priority = 65535, bool IsDtorAttrFunc = false)
- public void AddVTableTypeMetadata(llvm::GlobalVariable * VTable, clang::CharUnits Offset, const clang::CXXRecordDecl * RD)
- public bool AlwaysHasLTOVisibilityPublic(const clang::CXXRecordDecl * RD)
- public void AppendLinkerOptions(llvm::StringRef Opts)
- private bool CheckAndReplaceExternCIFuncs(llvm::GlobalValue * Elem, llvm::GlobalValue * CppFunc)
- public void ClearUnusedCoverageMapping(const clang::Decl * D)
- private CodeGenModule(const clang::CodeGen::CodeGenModule &)
- public CodeGenModule(clang::ASTContext & C, IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS, const clang::HeaderSearchOptions & headersearchopts, const clang::PreprocessorOptions & ppopts, const clang::CodeGenOptions & CodeGenOpts, llvm::Module & M, clang::DiagnosticsEngine & Diags, clang::CoverageSourceInfo * CoverageInfo = nullptr)
- public void ConstructAttributeList(llvm::StringRef Name, const clang::CodeGen::CGFunctionInfo & Info, clang::CodeGen::CGCalleeInfo CalleeInfo, llvm::AttributeList & Attrs, unsigned int & CallingConv, bool AttrOnCallSite, bool IsThunk)
- public llvm::ConstantInt * CreateCrossDsoCfiTypeId(llvm::Metadata * MD)
- public void CreateFunctionTypeMetadataForIcall(const clang::FunctionDecl * FD, llvm::Function * F)
- public llvm::Function * CreateGlobalInitOrCleanUpFunction(llvm::FunctionType * ty, const llvm::Twine & name, const clang::CodeGen::CGFunctionInfo & FI, clang::SourceLocation Loc = clang::SourceLocation(), bool TLS = false, llvm::GlobalVariable::LinkageTypes Linkage = llvm::GlobalVariable::InternalLinkage)
- public llvm::Metadata * CreateMetadataIdentifierForType(clang::QualType T)
- public llvm::Metadata * CreateMetadataIdentifierForVirtualMemPtrType(clang::QualType T)
- public llvm::Metadata * CreateMetadataIdentifierGeneralized(clang::QualType T)
- private llvm::Metadata * CreateMetadataIdentifierImpl(clang::QualType T, clang::CodeGen::CodeGenModule::MetadataTypeMap & Map, llvm::StringRef Suffix)
- public llvm::GlobalVariable * CreateOrReplaceCXXRuntimeVariable(llvm::StringRef Name, llvm::Type * Ty, llvm::GlobalValue::LinkageTypes Linkage, unsigned int Alignment)
- public llvm::FunctionCallee CreateRuntimeFunction(llvm::FunctionType * Ty, llvm::StringRef Name, llvm::AttributeList ExtraAttrs = llvm::AttributeList(), bool Local = false, bool AssumeConvergent = false)
- public llvm::Constant * CreateRuntimeVariable(llvm::Type * Ty, llvm::StringRef Name)
- public void DecorateInstructionWithInvariantGroup(llvm::Instruction * I, const clang::CXXRecordDecl * RD)
- public void DecorateInstructionWithTBAA(llvm::Instruction * Inst, clang::CodeGen::TBAAAccessInfo TBAAInfo)
- private void EmitAliasDefinition(clang::GlobalDecl GD)
- public llvm::Constant * EmitAnnotateAttr(llvm::GlobalValue * GV, const clang::AnnotateAttr * AA, clang::SourceLocation L)
- public llvm::Constant * EmitAnnotationArgs(const clang::AnnotateAttr * Attr)
- public llvm::Constant * EmitAnnotationLineNo(clang::SourceLocation L)
- public llvm::Constant * EmitAnnotationString(llvm::StringRef Str)
- public llvm::Constant * EmitAnnotationUnit(clang::SourceLocation Loc)
- private void EmitBackendOptionsMetadata(const clang::CodeGenOptions CodeGenOpts)
- private void EmitCXXGlobalCleanUpFunc()
- private void EmitCXXGlobalInitFunc()
- private void EmitCXXGlobalVarDeclInitFunc(const clang::VarDecl * D, llvm::GlobalVariable * Addr, bool PerformInit)
- private void EmitCXXModuleInitFunc(clang::Module * Primary)
- private void EmitCXXThreadLocalInitFunc()
- private void EmitCommandLineMetadata()
- private void EmitCoverageFile()
- private void EmitCtorList(clang::CodeGen::CodeGenModule::CtorList & Fns, const char * GlobalName)
- private void EmitDeclContext(const clang::DeclContext * DC)
- private void EmitDeclMetadata()
- private void EmitDeferred()
- public void EmitDeferredUnusedCoverageMappings()
- private void EmitDeferredVTables()
- public void EmitExplicitCastExprType(const clang::ExplicitCastExpr * E, clang::CodeGen::CodeGenFunction * CGF = nullptr)
- public void EmitExternalDeclaration(const clang::VarDecl * D)
- private void EmitExternalVarDeclaration(const clang::VarDecl * D)
- public void EmitGlobal(clang::GlobalDecl D)
- public void EmitGlobalAnnotations()
- private void EmitGlobalDefinition(clang::GlobalDecl D, llvm::GlobalValue * GV = nullptr)
- private void EmitGlobalFunctionDefinition(clang::GlobalDecl GD, llvm::GlobalValue * GV)
- private void EmitGlobalVarDefinition(const clang::VarDecl * D, bool IsTentative = false)
- private void EmitLinkageSpec(const clang::LinkageSpecDecl * D)
- public void EmitMainVoidAlias()
- private void EmitModuleInitializers(clang::Module * Primary)
- private void EmitModuleLinkOptions()
- private void EmitMultiVersionFunctionDefinition(clang::GlobalDecl GD, llvm::GlobalValue * GV)
- public llvm::Constant * EmitNullConstant(clang::QualType T)
- public llvm::Constant * EmitNullConstantForBase(const clang::CXXRecordDecl * Record)
- public void EmitOMPAllocateDecl(const clang::OMPAllocateDecl * D)
- public void EmitOMPDeclareMapper(const clang::OMPDeclareMapperDecl * D, clang::CodeGen::CodeGenFunction * CGF = nullptr)
- public void EmitOMPDeclareReduction(const clang::OMPDeclareReductionDecl * D, clang::CodeGen::CodeGenFunction * CGF = nullptr)
- public void EmitOMPRequiresDecl(const clang::OMPRequiresDecl * D)
- public void EmitOMPThreadPrivateDecl(const clang::OMPThreadPrivateDecl * D)
- private void EmitObjCIvarInitializations(clang::ObjCImplementationDecl * D)
- private void EmitObjCPropertyImplementations(const clang::ObjCImplementationDecl * D)
- private void EmitOpenCLMetadata()
- private void EmitPointerToInitFunc(const clang::VarDecl * VD, llvm::GlobalVariable * Addr, llvm::Function * InitFunc, clang::InitSegAttr * ISA)
- private void EmitStaticExternCAliases()
- public void EmitTentativeDefinition(const clang::VarDecl * D)
- public void EmitTopLevelDecl(clang::Decl * D)
- public void EmitVTable(clang::CXXRecordDecl * Class)
- public void EmitVTableTypeMetadata(const clang::CXXRecordDecl * RD, llvm::GlobalVariable * VTable, const clang::VTableLayout & VTLayout)
- private void EmitVTablesOpportunistically()
- private void EmitVersionIdentMetadata()
- public void Error(clang::SourceLocation loc, llvm::StringRef error)
- public void ErrorUnsupported(const clang::Stmt * S, const char * Type)
- public void ErrorUnsupported(const clang::Decl * D, const char * Type)
- public void GenKernelArgMetadata(llvm::Function * FN, const clang::FunctionDecl * FD = nullptr, clang::CodeGen::CodeGenFunction * CGF = nullptr)
- public clang::CodeGen::ConstantAddress GetAddrOfConstantCFString(const clang::StringLiteral * Literal)
- public clang::CodeGen::ConstantAddress GetAddrOfConstantCString(const std::string & Str, const char * GlobalName = nullptr)
- public clang::CodeGen::ConstantAddress GetAddrOfConstantCompoundLiteral(const clang::CompoundLiteralExpr * E)
- public clang::CodeGen::ConstantAddress GetAddrOfConstantString(const clang::StringLiteral * Literal)
- public clang::CodeGen::ConstantAddress GetAddrOfConstantStringFromLiteral(const clang::StringLiteral * S, llvm::StringRef Name = ".str")
- public clang::CodeGen::ConstantAddress GetAddrOfConstantStringFromObjCEncode(const clang::ObjCEncodeExpr *)
- public llvm::Constant * GetAddrOfFunction(clang::GlobalDecl GD, llvm::Type * Ty = nullptr, bool ForVTable = false, bool DontDefer = false, clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition)
- public llvm::Constant * GetAddrOfGlobal(clang::GlobalDecl GD, clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition)
- public llvm::Constant * GetAddrOfGlobalBlock(const clang::BlockExpr * BE, llvm::StringRef Name)
- public clang::CodeGen::ConstantAddress GetAddrOfGlobalTemporary(const clang::MaterializeTemporaryExpr * E, const clang::Expr * Inner)
- public llvm::Constant * GetAddrOfGlobalVar(const clang::VarDecl * D, llvm::Type * Ty = nullptr, clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition)
- public clang::CodeGen::ConstantAddress GetAddrOfMSGuidDecl(const clang::MSGuidDecl * GD)
- public llvm::Constant * GetAddrOfRTTIDescriptor(clang::QualType Ty, bool ForEH = false)
- public clang::CodeGen::ConstantAddress GetAddrOfTemplateParamObject(const clang::TemplateParamObjectDecl * TPO)
- public llvm::Constant * GetAddrOfThunk(llvm::StringRef Name, llvm::Type * FnTy, clang::GlobalDecl GD)
- public clang::CodeGen::ConstantAddress GetAddrOfUnnamedGlobalConstantDecl(const clang::UnnamedGlobalConstantDecl * GCD)
- private bool GetCPUAndFeaturesAttributes(clang::GlobalDecl GD, llvm::AttrBuilder & AttrBuilder)
- public llvm::Constant * GetConstantArrayFromStringLiteral(const clang::StringLiteral * E)
- public llvm::GlobalVariable::ThreadLocalMode GetDefaultLLVMTLSModel() const
- public llvm::Constant * GetFunctionStart(const clang::ValueDecl * Decl)
- public clang::LangAS GetGlobalConstantAddressSpace() const
- public llvm::GlobalValue * GetGlobalValue(llvm::StringRef Ref)
- public clang::LangAS GetGlobalVarAddressSpace(const clang::VarDecl * D)
- public static llvm::GlobalValue::VisibilityTypes GetLLVMVisibility(clang::Visibility V)
- public llvm::Constant * GetNonVirtualBaseClassOffset(const clang::CXXRecordDecl * ClassDecl, CastExpr::path_const_iterator PathBegin, CastExpr::path_const_iterator PathEnd)
- private llvm::Constant * GetOrCreateLLVMFunction(llvm::StringRef MangledName, llvm::Type * Ty, clang::GlobalDecl D, bool ForVTable, bool DontDefer = false, bool IsThunk = false, llvm::AttributeList ExtraAttrs = llvm::AttributeList(), clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition)
- private llvm::Constant * GetOrCreateLLVMGlobal(llvm::StringRef MangledName, llvm::Type * Ty, clang::LangAS AddrSpace, const clang::VarDecl * D, clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition)
- private llvm::Constant * GetOrCreateMultiVersionResolver(clang::GlobalDecl GD)
- public llvm::GlobalVariable * GetOrCreateRTTIProxyGlobalVariable(llvm::Constant * Addr)
- public clang::CharUnits GetTargetTypeStoreSize(llvm::Type * Ty) const
- public llvm::GlobalObject::VCallVisibility GetVCallVisibilityLevel(const clang::CXXRecordDecl * RD, llvm::DenseSet<const CXXRecordDecl *> & Visited)
- public clang::CodeGen::ConstantAddress GetWeakRefReference(const clang::ValueDecl * VD)
- public void HandleCXXStaticMemberVarInstantiation(clang::VarDecl * VD)
- public bool HasHiddenLTOVisibility(const clang::CXXRecordDecl * RD)
- private bool MayBeEmittedEagerly(const clang::ValueDecl * D)
- public bool MayDropFunctionReturn(const clang::ASTContext & Context, clang::QualType ReturnType)
- public template <typename SomeDecl>void MaybeHandleStaticInExternC(const SomeDecl * D, llvm::GlobalValue * GV)
- private bool MustBeEmitted(const clang::ValueDecl * D)
- public bool NeedAllVtablesTypeId() const
- public void RefreshTypeCacheForClass(const clang::CXXRecordDecl * Class)
- public void Release()
- public bool ReturnSlotInterferesWithArgs(const clang::CodeGen::CGFunctionInfo & FI)
- public bool ReturnTypeUsesFP2Ret(clang::QualType ResultType)
- public bool ReturnTypeUsesFPRet(clang::QualType ResultType)
- public bool ReturnTypeUsesSRet(const clang::CodeGen::CGFunctionInfo & FI)
- public void SetCommonAttributes(clang::GlobalDecl GD, llvm::GlobalValue * GV)
- private void SetFunctionAttributes(clang::GlobalDecl GD, llvm::Function * F, bool IsIncompleteFunction, bool IsThunk)
- public void SetInternalFunctionAttributes(clang::GlobalDecl GD, llvm::Function * F, const clang::CodeGen::CGFunctionInfo & FI)
- public void SetLLVMFunctionAttributes(clang::GlobalDecl GD, const clang::CodeGen::CGFunctionInfo & Info, llvm::Function * F, bool IsThunk)
- public void SetLLVMFunctionAttributesForDefinition(const clang::Decl * D, llvm::Function * F)
- private void SimplifyPersonality()
- public bool TryEmitBaseDestructorAsAlias(const clang::CXXDestructorDecl * D)
- public void UpdateCompletedType(const clang::TagDecl * TD)
- private void UpdateMultiVersionNames(clang::GlobalDecl GD, const clang::FunctionDecl * FD, llvm::StringRef & CurName)
- public void addCompilerUsedGlobal(llvm::GlobalValue * GV)
- public void addDefaultFunctionDefinitionAttributes(llvm::Function & F)
- public void addDefaultFunctionDefinitionAttributes(llvm::AttrBuilder & attrs)
- private void addDeferredDeclToEmit(clang::GlobalDecl GD)
- public void addDeferredVTable(const clang::CXXRecordDecl * RD)
- private void addEmittedDeferredDecl(clang::GlobalDecl GD)
- public void addGlobalValReplacement(llvm::GlobalValue * GV, llvm::Constant * C)
- public void addReplacement(llvm::StringRef Name, llvm::Constant * C)
- public void addUsedGlobal(llvm::GlobalValue * GV)
- public void addUsedOrCompilerUsedGlobal(llvm::GlobalValue * GV)
- private void applyGlobalValReplacements()
- private void applyReplacements()
- private void checkAliases()
- public void clear()
- public llvm::Function * codegenCXXStructor(clang::GlobalDecl GD)
- public clang::CharUnits computeNonVirtualBaseClassOffset(const clang::CXXRecordDecl * DerivedClass, CastExpr::path_const_iterator Start, CastExpr::path_const_iterator End)
- private void createCUDARuntime()
- private void createHLSLRuntime()
- private void createObjCRuntime()
- public llvm::Value * createOpenCLIntToSamplerConversion(const clang::Expr * E, clang::CodeGen::CodeGenFunction & CGF)
- private void createOpenCLRuntime()
- private void createOpenMPRuntime()
- public clang::CodeGen::Address createUnnamedGlobalFrom(const clang::VarDecl & D, llvm::Constant * Constant, clang::CharUnits Align)
- private void emitAtAvailableLinkGuard()
- private void emitCPUDispatchDefinition(clang::GlobalDecl GD)
- private void emitIFuncDefinition(clang::GlobalDecl GD)
- private void emitLLVMUsed()
- private void emitMultiVersionFunctions()
- public llvm::FunctionCallee getAddrAndTypeOfCXXStructor(clang::GlobalDecl GD, const clang::CodeGen::CGFunctionInfo * FnInfo = nullptr, llvm::FunctionType * FnType = nullptr, bool DontDefer = false, clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition)
- public llvm::Constant * getAddrOfCXXStructor(clang::GlobalDecl GD, const clang::CodeGen::CGFunctionInfo * FnInfo = nullptr, llvm::FunctionType * FnType = nullptr, bool DontDefer = false, clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition)
- public llvm::GlobalVariable * getAddrOfConstantCompoundLiteralIfEmitted(const clang::CompoundLiteralExpr * E)
- public llvm::Constant * getAddrOfGlobalBlockIfEmitted(const clang::BlockExpr * BE)
- public llvm::Constant * getAtomicGetterHelperFnMap(clang::QualType Ty)
- public llvm::Constant * getAtomicSetterHelperFnMap(clang::QualType Ty)
- public llvm::Type * getBlockDescriptorType()
- public llvm::StringRef getBlockMangledName(clang::GlobalDecl GD, const clang::BlockDecl * BD)
- public llvm::FunctionCallee getBlockObjectAssign()
- public llvm::FunctionCallee getBlockObjectDispose()
- public llvm::Constant * getBuiltinLibFunction(const clang::FunctionDecl * FD, unsigned int BuiltinID)
- public clang::CodeGen::CGCUDARuntime & getCUDARuntime()
- public clang::CodeGen::CGCXXABI & getCXXABI() const
- public clang::CharUnits getClassPointerAlignment(const clang::CXXRecordDecl * CD)
- public const clang::CodeGenOptions & getCodeGenOpts() const
- public clang::ASTContext & getContext() const
- public clang::CodeGen::CoverageMappingModuleGen * getCoverageMapping() const
- public const llvm::DataLayout & getDataLayout() const
- private void getDefaultFunctionAttributes(llvm::StringRef Name, bool HasOptnone, bool AttrOnCallSite, llvm::AttrBuilder & FuncAttrs)
- public clang::DiagnosticsEngine & getDiags() const
- public clang::CharUnits getDynamicOffsetAlignment(clang::CharUnits ActualAlign, const clang::CXXRecordDecl * Class, clang::CharUnits ExpectedTargetAlign)
- public bool getExpressionLocationsEnabled() const
- public const IntrusiveRefCntPtr<llvm::vfs::FileSystem> & getFileSystem() const
- public llvm::GlobalVariable::LinkageTypes getFunctionLinkage(clang::GlobalDecl GD)
- public llvm::Type * getGenericBlockLiteralType()
- public clang::CodeGen::CodeGenModule::CtorList & getGlobalCtors()
- public clang::CodeGen::CodeGenModule::CtorList & getGlobalDtors()
- public clang::CodeGen::CGHLSLRuntime & getHLSLRuntime()
- public const clang::HeaderSearchOptions & getHeaderSearchOpts() const
- public llvm::Function * getIntrinsic(unsigned int IID, ArrayRef<llvm::Type *> Tys = None)
- public clang::ItaniumVTableContext & getItaniumVTableContext()
- public llvm::LLVMContext & getLLVMContext()
- public llvm::Function * getLLVMLifetimeEndFn()
- public llvm::Function * getLLVMLifetimeStartFn()
- public llvm::GlobalValue::LinkageTypes getLLVMLinkageForDeclarator(const clang::DeclaratorDecl * D, clang::GVALinkage Linkage, bool IsConstantVariable)
- public llvm::GlobalValue::LinkageTypes getLLVMLinkageVarDefinition(const clang::VarDecl * VD, bool IsConstant)
- public const clang::LangOptions & getLangOpts() const
- public llvm::StringRef getMangledName(clang::GlobalDecl GD)
- public const clang::GlobalDecl getMangledNameDecl(llvm::StringRef)
- public llvm::Constant * getMemberPointerConstant(const clang::UnaryOperator * e)
- public clang::MicrosoftVTableContext & getMicrosoftVTableContext()
- public clang::CharUnits getMinimumClassObjectSize(const clang::CXXRecordDecl * CD)
- public clang::CharUnits getMinimumObjectSize(clang::QualType Ty)
- public llvm::Module & getModule() const
- public clang::CodeGen::CGDebugInfo * getModuleDebugInfo()
- public const std::string & getModuleNameHash() const
- public std::vector<const CXXRecordDecl *> getMostBaseClasses(const clang::CXXRecordDecl * RD)
- public llvm::Constant * getNSConcreteGlobalBlock()
- public llvm::Constant * getNSConcreteStackBlock()
- public clang::CharUnits getNaturalPointeeTypeAlignment(clang::QualType T, clang::CodeGen::LValueBaseInfo * BaseInfo = nullptr, clang::CodeGen::TBAAAccessInfo * TBAAInfo = nullptr)
- public clang::CharUnits getNaturalTypeAlignment(clang::QualType T, clang::CodeGen::LValueBaseInfo * BaseInfo = nullptr, clang::CodeGen::TBAAAccessInfo * TBAAInfo = nullptr, bool forPointeeType = false)
- public llvm::MDNode * getNoObjCARCExceptionsMetadata()
- public llvm::Constant * getNullPointer(llvm::PointerType * T, clang::QualType QT)
- public llvm::Optional<CharUnits> getOMPAllocateAlignment(const clang::VarDecl * VD)
- public clang::CodeGen::ObjCEntrypoints & getObjCEntrypoints() const
- public clang::QualType getObjCFastEnumerationStateType()
- public clang::CodeGen::CGObjCRuntime & getObjCRuntime()
- public clang::CodeGen::CGOpenCLRuntime & getOpenCLRuntime()
- public clang::CodeGen::CGOpenMPRuntime & getOpenMPRuntime()
- public llvm::Constant * getOrCreateStaticVarDecl(const clang::VarDecl & D, llvm::GlobalValue::LinkageTypes Linkage)
- public llvm::IndexedInstrProfReader * getPGOReader() const
- public clang::CodeGen::InstrProfStats & getPGOStats()
- public const clang::PreprocessorOptions & getPreprocessorOpts() const
- public llvm::SanitizerStatReport & getSanStats()
- public clang::CodeGen::SanitizerMetadata * getSanitizerMetadata()
- public llvm::ConstantInt * getSize(clang::CharUnits numChars)
- public llvm::Constant * getStaticLocalDeclAddress(const clang::VarDecl * D)
- public llvm::GlobalVariable * getStaticLocalDeclGuardAddress(const clang::VarDecl * D)
- public clang::CodeGen::TBAAAccessInfo getTBAAAccessInfo(clang::QualType AccessType)
- public llvm::MDNode * getTBAAAccessTagInfo(clang::CodeGen::TBAAAccessInfo Info)
- public llvm::MDNode * getTBAABaseTypeInfo(clang::QualType QTy)
- public clang::CodeGen::TBAAAccessInfo getTBAAInfoForSubobject(clang::CodeGen::LValue Base, clang::QualType AccessType)
- public llvm::MDNode * getTBAAStructInfo(clang::QualType QTy)
- public llvm::MDNode * getTBAATypeInfo(clang::QualType QTy)
- public clang::CodeGen::TBAAAccessInfo getTBAAVTablePtrAccessInfo(llvm::Type * VTablePtrType)
- public const clang::TargetInfo & getTarget() const
- public const clang::CodeGen::TargetCodeGenInfo & getTargetCodeGenInfo()
- public llvm::FunctionCallee getTerminateFn()
- public const llvm::Triple & getTriple() const
- public llvm::Constant * getTypeDescriptorFromMap(clang::QualType Ty)
- public clang::CodeGen::CodeGenTypes & getTypes()
- public int getUniqueBlockCount()
- public clang::CharUnits getVBaseAlignment(clang::CharUnits DerivedAlign, const clang::CXXRecordDecl * Derived, const clang::CXXRecordDecl * VBase)
- public llvm::GlobalVariable::LinkageTypes getVTableLinkage(const clang::CXXRecordDecl * RD)
- public clang::CodeGen::CodeGenVTables & getVTables()
- public bool hasObjCRuntime()
- public bool imbueXRayAttrs(llvm::Function * Fn, clang::SourceLocation Loc, llvm::StringRef Category = llvm::StringRef()) const
- public bool isFunctionBlockedByProfileList(llvm::Function * Fn, clang::SourceLocation Loc) const
- public bool isFunctionBlockedFromProfileInstr(llvm::Function * Fn, clang::SourceLocation Loc) const
- public bool isInNoSanitizeList(clang::SanitizerMask Kind, llvm::GlobalVariable * GV, clang::SourceLocation Loc, clang::QualType Ty, llvm::StringRef Category = llvm::StringRef()) const
- public bool isInNoSanitizeList(clang::SanitizerMask Kind, llvm::Function * Fn, clang::SourceLocation Loc) const
- public bool isPaddedAtomicType(const clang::AtomicType * type)
- public bool isPaddedAtomicType(clang::QualType type)
- private bool isTriviallyRecursive(const clang::FunctionDecl * F)
- public bool isTypeConstant(clang::QualType QTy, bool ExcludeCtorDtor)
- public bool lookupRepresentativeDecl(llvm::StringRef MangledName, clang::GlobalDecl & Result) const
- public void maybeSetTrivialComdat(const clang::Decl & D, llvm::GlobalObject & GO)
- public clang::CodeGen::TBAAAccessInfo mergeTBAAInfoForCast(clang::CodeGen::TBAAAccessInfo SourceInfo, clang::CodeGen::TBAAAccessInfo TargetInfo)
- public clang::CodeGen::TBAAAccessInfo mergeTBAAInfoForConditionalOperator(clang::CodeGen::TBAAAccessInfo InfoA, clang::CodeGen::TBAAAccessInfo InfoB)
- public clang::CodeGen::TBAAAccessInfo mergeTBAAInfoForMemoryTransfer(clang::CodeGen::TBAAAccessInfo DestInfo, clang::CodeGen::TBAAAccessInfo SrcInfo)
- public void moveLazyEmissionStates(clang::CodeGen::CodeGenModule * NewBuilder)
- public void printPostfixForExternalizedDecl(llvm::raw_ostream & OS, const clang::Decl * D) const
- private void registerGlobalDtorsWithAtExit()
- public void setAddrOfConstantCompoundLiteral(const clang::CompoundLiteralExpr * CLE, llvm::GlobalVariable * GV)
- public void setAddrOfGlobalBlock(const clang::BlockExpr * BE, llvm::Constant * Addr)
- public void setAtomicGetterHelperFnMap(clang::QualType Ty, llvm::Constant * Fn)
- public void setAtomicSetterHelperFnMap(clang::QualType Ty, llvm::Constant * Fn)
- public void setDLLImportDLLExport(llvm::GlobalValue * GV, clang::GlobalDecl D) const
- public void setDLLImportDLLExport(llvm::GlobalValue * GV, const clang::NamedDecl * D) const
- public void setDSOLocal(llvm::GlobalValue * GV) const
- public void setFunctionLinkage(clang::GlobalDecl GD, llvm::Function * F)
- public void setGVProperties(llvm::GlobalValue * GV, clang::GlobalDecl GD) const
- public void setGVProperties(llvm::GlobalValue * GV, const clang::NamedDecl * D) const
- public void setGVPropertiesAux(llvm::GlobalValue * GV, const clang::NamedDecl * D) const
- public void setGlobalVisibility(llvm::GlobalValue * GV, const clang::NamedDecl * D) const
- public void setLLVMFunctionFEnvAttributes(const clang::FunctionDecl * D, llvm::Function * F)
- private void setNonAliasAttributes(clang::GlobalDecl GD, llvm::GlobalObject * GO)
- public void setStaticLocalDeclAddress(const clang::VarDecl * D, llvm::Constant * C)
- public void setStaticLocalDeclGuardAddress(const clang::VarDecl * D, llvm::GlobalVariable * C)
- public void setTLSMode(llvm::GlobalValue * GV, const clang::VarDecl & D) const
- public void setTypeDescriptorInMap(clang::QualType Ty, llvm::Constant * C)
- private bool shouldEmitFunction(clang::GlobalDecl GD)
- public bool shouldMapVisibilityToDLLExport(const clang::NamedDecl * D) const
- private bool shouldOpportunisticallyEmitVTables()
- public bool shouldUseTBAA() const
- public bool stopAutoInit()
- public bool supportsCOMDAT() const
- private void unregisterGlobalDtorsWithUnAtExit()
- public ~CodeGenModule()
Inherited from CodeGenTypeCache:
- public getASTAllocaAddressSpace
- public getIntAlign
- public getIntSize
- public getPointerAlign
- public getPointerSize
- public getRuntimeCC
- public getSizeAlign
- public getSizeSize
Methods
¶void AddCXXDtorEntry(llvm::FunctionCallee DtorFn,
llvm::Constant* Object)
void AddCXXDtorEntry(llvm::FunctionCallee DtorFn,
llvm::Constant* Object)
Description
Add a destructor and object to add to the C++ global destructor function.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1118
Parameters
- llvm::FunctionCallee DtorFn
- llvm::Constant* Object
¶void AddCXXPrioritizedStermFinalizerEntry(
llvm::Function* StermFinalizer,
int Priority)
void AddCXXPrioritizedStermFinalizerEntry(
llvm::Function* StermFinalizer,
int Priority)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1135
Parameters
- llvm::Function* StermFinalizer
- int Priority
¶void AddCXXStermFinalizerEntry(
llvm::FunctionCallee DtorFn)
void AddCXXStermFinalizerEntry(
llvm::FunctionCallee DtorFn)
Description
Add an sterm finalizer to the C++ global cleanup function.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1124
Parameters
- llvm::FunctionCallee DtorFn
¶void AddCXXStermFinalizerToGlobalDtor(
llvm::Function* StermFinalizer,
int Priority)
void AddCXXStermFinalizerToGlobalDtor(
llvm::Function* StermFinalizer,
int Priority)
Description
Add an sterm finalizer to its own llvm.global_dtors entry.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1130
Parameters
- llvm::Function* StermFinalizer
- int Priority
¶void AddDeferredUnusedCoverageMapping(
clang::Decl* D)
void AddDeferredUnusedCoverageMapping(
clang::Decl* D)
Description
Stored a deferred empty coverage mapping for an unused and thus uninstrumented top level declaration.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1086
Parameters
- clang::Decl* D
¶void AddDependentLib(llvm::StringRef Lib)
void AddDependentLib(llvm::StringRef Lib)
Description
Appends a dependent lib to the appropriate metadata value.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1284
Parameters
- llvm::StringRef Lib
¶void AddDetectMismatch(llvm::StringRef Name,
llvm::StringRef Value)
void AddDetectMismatch(llvm::StringRef Name,
llvm::StringRef Value)
Description
Appends a detect mismatch command to the linker options.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1281
Parameters
- llvm::StringRef Name
- llvm::StringRef Value
¶void AddGlobalAnnotations(
const clang::ValueDecl* D,
llvm::GlobalValue* GV)
void AddGlobalAnnotations(
const clang::ValueDecl* D,
llvm::GlobalValue* GV)
Description
Add global annotations that are set on D, for the global GV. Those annotations are emitted during finalization of the LLVM code.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1337
Parameters
- const clang::ValueDecl* D
- llvm::GlobalValue* GV
¶void AddGlobalCtor(
llvm::Function* Ctor,
int Priority = 65535,
llvm::Constant* AssociatedData = nullptr)
void AddGlobalCtor(
llvm::Function* Ctor,
int Priority = 65535,
llvm::Constant* AssociatedData = nullptr)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1603
Parameters
- llvm::Function* Ctor
- int Priority = 65535
- llvm::Constant* AssociatedData = nullptr
¶void AddGlobalDtor(llvm::Function* Dtor,
int Priority = 65535,
bool IsDtorAttrFunc = false)
void AddGlobalDtor(llvm::Function* Dtor,
int Priority = 65535,
bool IsDtorAttrFunc = false)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1605
Parameters
- llvm::Function* Dtor
- int Priority = 65535
- bool IsDtorAttrFunc = false
¶void AddVTableTypeMetadata(
llvm::GlobalVariable* VTable,
clang::CharUnits Offset,
const clang::CXXRecordDecl* RD)
void AddVTableTypeMetadata(
llvm::GlobalVariable* VTable,
clang::CharUnits Offset,
const clang::CXXRecordDecl* RD)
Description
Create and attach type metadata for the given vtable.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1465
Parameters
- llvm::GlobalVariable* VTable
- clang::CharUnits Offset
- const clang::CXXRecordDecl* RD
¶bool AlwaysHasLTOVisibilityPublic(
const clang::CXXRecordDecl* RD)
bool AlwaysHasLTOVisibilityPublic(
const clang::CXXRecordDecl* RD)
Description
Returns whether the given record has public LTO visibility (regardless of -lto-whole-program-visibility) and therefore may not participate in (single-module) CFI and whole-program vtable optimization.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1419
Parameters
- const clang::CXXRecordDecl* RD
¶void AppendLinkerOptions(llvm::StringRef Opts)
void AppendLinkerOptions(llvm::StringRef Opts)
Description
Appends Opts to the "llvm.linker.options" metadata value.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1278
Parameters
- llvm::StringRef Opts
¶bool CheckAndReplaceExternCIFuncs(
llvm::GlobalValue* Elem,
llvm::GlobalValue* CppFunc)
bool CheckAndReplaceExternCIFuncs(
llvm::GlobalValue* Elem,
llvm::GlobalValue* CppFunc)
Description
Helper function for EmitStaticExternCAliases() to redirect ifuncs that have a resolver name that matches 'Elem' to instead resolve to the name of 'CppFunc'. This redirection is necessary in cases where 'Elem' has a name that will be emitted as an alias of the name bound to 'CppFunc'; ifuncs may not reference aliases. Redirection is only performed if 'Elem' is only used by ifuncs in which case, 'Elem' is destroyed. 'true' is returned if redirection is successful, and 'false' is returned otherwise.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1667
Parameters
- llvm::GlobalValue* Elem
- llvm::GlobalValue* CppFunc
¶void ClearUnusedCoverageMapping(
const clang::Decl* D)
void ClearUnusedCoverageMapping(
const clang::Decl* D)
Description
Remove the deferred empty coverage mapping as this declaration is actually instrumented.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1090
Parameters
- const clang::Decl* D
¶CodeGenModule(
const clang::CodeGen::CodeGenModule&)
CodeGenModule(
const clang::CodeGen::CodeGenModule&)
Declared at: clang/lib/CodeGen/CodeGenModule.h:280
Parameters
¶CodeGenModule(
clang::ASTContext& C,
IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS,
const clang::HeaderSearchOptions&
headersearchopts,
const clang::PreprocessorOptions& ppopts,
const clang::CodeGenOptions& CodeGenOpts,
llvm::Module& M,
clang::DiagnosticsEngine& Diags,
clang::CoverageSourceInfo* CoverageInfo =
nullptr)
CodeGenModule(
clang::ASTContext& C,
IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS,
const clang::HeaderSearchOptions&
headersearchopts,
const clang::PreprocessorOptions& ppopts,
const clang::CodeGenOptions& CodeGenOpts,
llvm::Module& M,
clang::DiagnosticsEngine& Diags,
clang::CoverageSourceInfo* CoverageInfo =
nullptr)
Declared at: clang/lib/CodeGen/CodeGenModule.h:592
Parameters
- clang::ASTContext& C
- IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS
- const clang::HeaderSearchOptions& headersearchopts
- const clang::PreprocessorOptions& ppopts
- const clang::CodeGenOptions& CodeGenOpts
- llvm::Module& M
- clang::DiagnosticsEngine& Diags
- clang::CoverageSourceInfo* CoverageInfo = nullptr
¶void ConstructAttributeList(
llvm::StringRef Name,
const clang::CodeGen::CGFunctionInfo& Info,
clang::CodeGen::CGCalleeInfo CalleeInfo,
llvm::AttributeList& Attrs,
unsigned int& CallingConv,
bool AttrOnCallSite,
bool IsThunk)
void ConstructAttributeList(
llvm::StringRef Name,
const clang::CodeGen::CGFunctionInfo& Info,
clang::CodeGen::CGCalleeInfo CalleeInfo,
llvm::AttributeList& Attrs,
unsigned int& CallingConv,
bool AttrOnCallSite,
bool IsThunk)
Description
Get the LLVM attributes and calling convention to use for a particular function type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1237
Parameters
- llvm::StringRef Name
- - The function name.
- const clang::CodeGen::CGFunctionInfo& Info
- - The function type information.
- clang::CodeGen::CGCalleeInfo CalleeInfo
- - The callee information these attributes are being constructed for. If valid, the attributes applied to this decl may contribute to the function attributes and calling convention.
- llvm::AttributeList& Attrs
- [out] - On return, the attribute list to use.
- unsigned int& CallingConv
- [out] - On return, the LLVM calling convention to use.
- bool AttrOnCallSite
- bool IsThunk
¶llvm::ConstantInt* CreateCrossDsoCfiTypeId(
llvm::Metadata* MD)
llvm::ConstantInt* CreateCrossDsoCfiTypeId(
llvm::Metadata* MD)
Description
Generate a cross-DSO type identifier for MD.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1437
Parameters
- llvm::Metadata* MD
¶void CreateFunctionTypeMetadataForIcall(
const clang::FunctionDecl* FD,
llvm::Function* F)
void CreateFunctionTypeMetadataForIcall(
const clang::FunctionDecl* FD,
llvm::Function* F)
Description
Create and attach type metadata to the given function.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1454
Parameters
- const clang::FunctionDecl* FD
- llvm::Function* F
¶llvm::Function* CreateGlobalInitOrCleanUpFunction(
llvm::FunctionType* ty,
const llvm::Twine& name,
const clang::CodeGen::CGFunctionInfo& FI,
clang::SourceLocation Loc =
clang::SourceLocation(),
bool TLS = false,
llvm::GlobalVariable::LinkageTypes Linkage =
llvm::GlobalVariable::InternalLinkage)
llvm::Function* CreateGlobalInitOrCleanUpFunction(
llvm::FunctionType* ty,
const llvm::Twine& name,
const clang::CodeGen::CGFunctionInfo& FI,
clang::SourceLocation Loc =
clang::SourceLocation(),
bool TLS = false,
llvm::GlobalVariable::LinkageTypes Linkage =
llvm::GlobalVariable::InternalLinkage)
Declared at: clang/lib/CodeGen/CodeGenModule.h:872
Parameters
- llvm::FunctionType* ty
- const llvm::Twine& name
- const clang::CodeGen::CGFunctionInfo& FI
- clang::SourceLocation Loc = clang::SourceLocation()
- bool TLS = false
- llvm::GlobalVariable::LinkageTypes Linkage = llvm::GlobalVariable::InternalLinkage
¶llvm::Metadata* CreateMetadataIdentifierForType(
clang::QualType T)
llvm::Metadata* CreateMetadataIdentifierForType(
clang::QualType T)
Description
Create a metadata identifier for the given type. This may either be an MDString (for external identifiers) or a distinct unnamed MDNode (for internal identifiers).
Declared at: clang/lib/CodeGen/CodeGenModule.h:1442
Parameters
¶llvm::Metadata*
CreateMetadataIdentifierForVirtualMemPtrType(
clang::QualType T)
llvm::Metadata*
CreateMetadataIdentifierForVirtualMemPtrType(
clang::QualType T)
Description
Create a metadata identifier that is intended to be used to check virtual calls via a member function pointer.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1446
Parameters
¶llvm::Metadata*
CreateMetadataIdentifierGeneralized(
clang::QualType T)
llvm::Metadata*
CreateMetadataIdentifierGeneralized(
clang::QualType T)
Description
Create a metadata identifier for the generalization of the given type. This may either be an MDString (for external identifiers) or a distinct unnamed MDNode (for internal identifiers).
Declared at: clang/lib/CodeGen/CodeGenModule.h:1451
Parameters
¶llvm::Metadata* CreateMetadataIdentifierImpl(
clang::QualType T,
clang::CodeGen::CodeGenModule::
MetadataTypeMap& Map,
llvm::StringRef Suffix)
llvm::Metadata* CreateMetadataIdentifierImpl(
clang::QualType T,
clang::CodeGen::CodeGenModule::
MetadataTypeMap& Map,
llvm::StringRef Suffix)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1714
Parameters
¶llvm::GlobalVariable*
CreateOrReplaceCXXRuntimeVariable(
llvm::StringRef Name,
llvm::Type* Ty,
llvm::GlobalValue::LinkageTypes Linkage,
unsigned int Alignment)
llvm::GlobalVariable*
CreateOrReplaceCXXRuntimeVariable(
llvm::StringRef Name,
llvm::Type* Ty,
llvm::GlobalValue::LinkageTypes Linkage,
unsigned int Alignment)
Description
Will return a global variable of the given type. If a variable with a different type already exists then a new variable with the right type will be created and all uses of the old variable will be replaced with a bitcast to the new variable.
Declared at: clang/lib/CodeGen/CodeGenModule.h:868
Parameters
- llvm::StringRef Name
- llvm::Type* Ty
- llvm::GlobalValue::LinkageTypes Linkage
- unsigned int Alignment
¶llvm::FunctionCallee CreateRuntimeFunction(
llvm::FunctionType* Ty,
llvm::StringRef Name,
llvm::AttributeList ExtraAttrs =
llvm::AttributeList(),
bool Local = false,
bool AssumeConvergent = false)
llvm::FunctionCallee CreateRuntimeFunction(
llvm::FunctionType* Ty,
llvm::StringRef Name,
llvm::AttributeList ExtraAttrs =
llvm::AttributeList(),
bool Local = false,
bool AssumeConvergent = false)
Description
Create or return a runtime function declaration with the specified type and name. If \p AssumeConvergent is true, the call will have the convergent attribute added.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1147
Parameters
- llvm::FunctionType* Ty
- llvm::StringRef Name
- llvm::AttributeList ExtraAttrs = llvm::AttributeList()
- bool Local = false
- bool AssumeConvergent = false
¶llvm::Constant* CreateRuntimeVariable(
llvm::Type* Ty,
llvm::StringRef Name)
llvm::Constant* CreateRuntimeVariable(
llvm::Type* Ty,
llvm::StringRef Name)
Description
Create a new runtime global variable with the specified type and name.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1152
Parameters
- llvm::Type* Ty
- llvm::StringRef Name
¶void DecorateInstructionWithInvariantGroup(
llvm::Instruction* I,
const clang::CXXRecordDecl* RD)
void DecorateInstructionWithInvariantGroup(
llvm::Instruction* I,
const clang::CXXRecordDecl* RD)
Description
Adds !invariant.barrier !tag to instruction
Declared at: clang/lib/CodeGen/CodeGenModule.h:815
Parameters
- llvm::Instruction* I
- const clang::CXXRecordDecl* RD
¶void DecorateInstructionWithTBAA(
llvm::Instruction* Inst,
clang::CodeGen::TBAAAccessInfo TBAAInfo)
void DecorateInstructionWithTBAA(
llvm::Instruction* Inst,
clang::CodeGen::TBAAAccessInfo TBAAInfo)
Description
DecorateInstructionWithTBAA - Decorate the instruction with a TBAA tag.
Declared at: clang/lib/CodeGen/CodeGenModule.h:811
Parameters
- llvm::Instruction* Inst
- clang::CodeGen::TBAAAccessInfo TBAAInfo
¶void EmitAliasDefinition(clang::GlobalDecl GD)
void EmitAliasDefinition(clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1570
Parameters
¶llvm::Constant* EmitAnnotateAttr(
llvm::GlobalValue* GV,
const clang::AnnotateAttr* AA,
clang::SourceLocation L)
llvm::Constant* EmitAnnotateAttr(
llvm::GlobalValue* GV,
const clang::AnnotateAttr* AA,
clang::SourceLocation L)
Description
Generate the llvm::ConstantStruct which contains the annotation information for a given GlobalValue. The annotation struct is {i8 *, i8 *, i8 *, i32}. The first field is a constant expression, the GlobalValue being annotated. The second field is the constant string created from the AnnotateAttr's annotation. The third field is a constant string containing the name of the translation unit. The fourth field is the line number in the file of the annotated value declaration.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1331
Parameters
- llvm::GlobalValue* GV
- const clang::AnnotateAttr* AA
- clang::SourceLocation L
¶llvm::Constant* EmitAnnotationArgs(
const clang::AnnotateAttr* Attr)
llvm::Constant* EmitAnnotationArgs(
const clang::AnnotateAttr* Attr)
Description
Emit additional args of the annotation.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1322
Parameters
- const clang::AnnotateAttr* Attr
¶llvm::Constant* EmitAnnotationLineNo(
clang::SourceLocation L)
llvm::Constant* EmitAnnotationLineNo(
clang::SourceLocation L)
Description
Emit the annotation line number.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1319
Parameters
¶llvm::Constant* EmitAnnotationString(
llvm::StringRef Str)
llvm::Constant* EmitAnnotationString(
llvm::StringRef Str)
Description
Emit an annotation string.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1313
Parameters
- llvm::StringRef Str
¶llvm::Constant* EmitAnnotationUnit(
clang::SourceLocation Loc)
llvm::Constant* EmitAnnotationUnit(
clang::SourceLocation Loc)
Description
Emit the annotation's translation unit.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1316
Parameters
¶void EmitBackendOptionsMetadata(
const clang::CodeGenOptions CodeGenOpts)
void EmitBackendOptionsMetadata(
const clang::CodeGenOptions CodeGenOpts)
Description
Emit the module flag metadata used to pass options controlling the the backend to LLVM.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1684
Parameters
- const clang::CodeGenOptions CodeGenOpts
¶void EmitCXXGlobalCleanUpFunc()
void EmitCXXGlobalCleanUpFunc()
Description
Emit the function that performs cleanup associated with C++ globals.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1591
¶void EmitCXXGlobalInitFunc()
void EmitCXXGlobalInitFunc()
Description
Emit the function that initializes C++ globals.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1588
¶void EmitCXXGlobalVarDeclInitFunc(
const clang::VarDecl* D,
llvm::GlobalVariable* Addr,
bool PerformInit)
void EmitCXXGlobalVarDeclInitFunc(
const clang::VarDecl* D,
llvm::GlobalVariable* Addr,
bool PerformInit)
Description
Emit the function that initializes the specified global (if PerformInit is true) and registers its destructor.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1595
Parameters
- const clang::VarDecl* D
- llvm::GlobalVariable* Addr
- bool PerformInit
¶void EmitCXXModuleInitFunc(clang::Module* Primary)
void EmitCXXModuleInitFunc(clang::Module* Primary)
Description
Emit the function that initializes global variables for a C++ Module.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1585
Parameters
- clang::Module* Primary
¶void EmitCXXThreadLocalInitFunc()
void EmitCXXThreadLocalInitFunc()
Description
Emit the function that initializes C++ thread_local variables.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1582
¶void EmitCommandLineMetadata()
void EmitCommandLineMetadata()
Description
Emit the Clang commandline as llvm.commandline metadata.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1680
¶void EmitCoverageFile()
void EmitCoverageFile()
Description
Emit the llvm.gcov metadata used to tell LLVM where to emit the .gcno and .gcda files in a way that persists in .bc files.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1691
¶void EmitCtorList(
clang::CodeGen::CodeGenModule::CtorList& Fns,
const char* GlobalName)
void EmitCtorList(
clang::CodeGen::CodeGenModule::CtorList& Fns,
const char* GlobalName)
Description
EmitCtorList - Generates a global array of functions and priorities using the given list and name. This array will have appending linkage and is suitable for use as a LLVM constructor or destructor array. Clears Fns.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1611
Parameters
- clang::CodeGen::CodeGenModule::CtorList& Fns
- const char* GlobalName
¶void EmitDeclContext(const clang::DeclContext* DC)
void EmitDeclContext(const clang::DeclContext* DC)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1578
Parameters
- const clang::DeclContext* DC
¶void EmitDeclMetadata()
void EmitDeclMetadata()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1674
¶void EmitDeferred()
void EmitDeferred()
Description
Emit any needed decls for which code generation was deferred.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1614
¶void EmitDeferredUnusedCoverageMappings()
void EmitDeferredUnusedCoverageMappings()
Description
Emit all the deferred coverage mappings for the uninstrumented functions.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1094
¶void EmitDeferredVTables()
void EmitDeferredVTables()
Description
Emit any vtables which we deferred and still have a use for.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1645
¶void EmitExplicitCastExprType(
const clang::ExplicitCastExpr* E,
clang::CodeGen::CodeGenFunction* CGF =
nullptr)
void EmitExplicitCastExprType(
const clang::ExplicitCastExpr* E,
clang::CodeGen::CodeGenFunction* CGF =
nullptr)
Description
Emit type info if type of an expression is a variably modified type. Also emit proper debug info for cast types.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1175
Parameters
- const clang::ExplicitCastExpr* E
- clang::CodeGen::CodeGenFunction* CGF = nullptr
¶void EmitExternalDeclaration(
const clang::VarDecl* D)
void EmitExternalDeclaration(
const clang::VarDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1271
Parameters
- const clang::VarDecl* D
¶void EmitExternalVarDeclaration(
const clang::VarDecl* D)
void EmitExternalVarDeclaration(
const clang::VarDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1569
Parameters
- const clang::VarDecl* D
¶void EmitGlobal(clang::GlobalDecl D)
void EmitGlobal(clang::GlobalDecl D)
Description
Emit code for a single global function or var decl. Forward declarations are emitted lazily.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1372
Parameters
¶void EmitGlobalAnnotations()
void EmitGlobalAnnotations()
Description
Emit all the global annotations.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1310
¶void EmitGlobalDefinition(
clang::GlobalDecl D,
llvm::GlobalValue* GV = nullptr)
void EmitGlobalDefinition(
clang::GlobalDecl D,
llvm::GlobalValue* GV = nullptr)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1563
Parameters
- clang::GlobalDecl D
- llvm::GlobalValue* GV = nullptr
¶void EmitGlobalFunctionDefinition(
clang::GlobalDecl GD,
llvm::GlobalValue* GV)
void EmitGlobalFunctionDefinition(
clang::GlobalDecl GD,
llvm::GlobalValue* GV)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1565
Parameters
¶void EmitGlobalVarDefinition(
const clang::VarDecl* D,
bool IsTentative = false)
void EmitGlobalVarDefinition(
const clang::VarDecl* D,
bool IsTentative = false)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1568
Parameters
- const clang::VarDecl* D
- bool IsTentative = false
¶void EmitLinkageSpec(
const clang::LinkageSpecDecl* D)
void EmitLinkageSpec(
const clang::LinkageSpecDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1579
Parameters
- const clang::LinkageSpecDecl* D
¶void EmitMainVoidAlias()
void EmitMainVoidAlias()
Description
Emit an alias for "main" if it has no arguments (needed for wasm).
Declared at: clang/lib/CodeGen/CodeGenModule.h:1097
¶void EmitModuleInitializers(
clang::Module* Primary)
void EmitModuleInitializers(
clang::Module* Primary)
Description
For C++20 Itanium ABI, emit the initializers for the module.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1655
Parameters
- clang::Module* Primary
¶void EmitModuleLinkOptions()
void EmitModuleLinkOptions()
Description
Emit the link options introduced by imported modules.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1658
¶void EmitMultiVersionFunctionDefinition(
clang::GlobalDecl GD,
llvm::GlobalValue* GV)
void EmitMultiVersionFunctionDefinition(
clang::GlobalDecl GD,
llvm::GlobalValue* GV)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1566
Parameters
¶llvm::Constant* EmitNullConstant(
clang::QualType T)
llvm::Constant* EmitNullConstant(
clang::QualType T)
Description
Return the result of value-initializing the given type, i.e. a null expression of the given type. This is usually, but not always, an LLVM null constant.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1181
Parameters
¶llvm::Constant* EmitNullConstantForBase(
const clang::CXXRecordDecl* Record)
llvm::Constant* EmitNullConstantForBase(
const clang::CXXRecordDecl* Record)
Description
Return a null constant appropriate for zero-initializing a base class with the given type. This is usually, but not always, an LLVM null constant.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1185
Parameters
- const clang::CXXRecordDecl* Record
¶void EmitOMPAllocateDecl(
const clang::OMPAllocateDecl* D)
void EmitOMPAllocateDecl(
const clang::OMPAllocateDecl* D)
Description
Emit a code for the allocate directive.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1406
Parameters
- const clang::OMPAllocateDecl* D
- The allocate declaration
¶void EmitOMPDeclareMapper(
const clang::OMPDeclareMapperDecl* D,
clang::CodeGen::CodeGenFunction* CGF =
nullptr)
void EmitOMPDeclareMapper(
const clang::OMPDeclareMapperDecl* D,
clang::CodeGen::CodeGenFunction* CGF =
nullptr)
Description
Emit a code for declare mapper construct.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1397
Parameters
- const clang::OMPDeclareMapperDecl* D
- clang::CodeGen::CodeGenFunction* CGF = nullptr
¶void EmitOMPDeclareReduction(
const clang::OMPDeclareReductionDecl* D,
clang::CodeGen::CodeGenFunction* CGF =
nullptr)
void EmitOMPDeclareReduction(
const clang::OMPDeclareReductionDecl* D,
clang::CodeGen::CodeGenFunction* CGF =
nullptr)
Description
Emit a code for declare reduction construct.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1393
Parameters
- const clang::OMPDeclareReductionDecl* D
- clang::CodeGen::CodeGenFunction* CGF = nullptr
¶void EmitOMPRequiresDecl(
const clang::OMPRequiresDecl* D)
void EmitOMPRequiresDecl(
const clang::OMPRequiresDecl* D)
Description
Emit a code for requires directive.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1402
Parameters
- const clang::OMPRequiresDecl* D
- Requires declaration
¶void EmitOMPThreadPrivateDecl(
const clang::OMPThreadPrivateDecl* D)
void EmitOMPThreadPrivateDecl(
const clang::OMPThreadPrivateDecl* D)
Description
Emit a code for threadprivate directive.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1390
Parameters
- const clang::OMPThreadPrivateDecl* D
- Threadprivate declaration.
¶void EmitObjCIvarInitializations(
clang::ObjCImplementationDecl* D)
void EmitObjCIvarInitializations(
clang::ObjCImplementationDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1574
Parameters
¶void EmitObjCPropertyImplementations(
const clang::ObjCImplementationDecl* D)
void EmitObjCPropertyImplementations(
const clang::ObjCImplementationDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1573
Parameters
- const clang::ObjCImplementationDecl* D
¶void EmitOpenCLMetadata()
void EmitOpenCLMetadata()
Description
Emits OpenCL specific Metadata e.g. OpenCL version.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1687
¶void EmitPointerToInitFunc(
const clang::VarDecl* VD,
llvm::GlobalVariable* Addr,
llvm::Function* InitFunc,
clang::InitSegAttr* ISA)
void EmitPointerToInitFunc(
const clang::VarDecl* VD,
llvm::GlobalVariable* Addr,
llvm::Function* InitFunc,
clang::InitSegAttr* ISA)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1599
Parameters
- const clang::VarDecl* VD
- llvm::GlobalVariable* Addr
- llvm::Function* InitFunc
- clang::InitSegAttr* ISA
¶void EmitStaticExternCAliases()
void EmitStaticExternCAliases()
Description
Emit aliases for internal-linkage declarations inside "C" language linkage specifications, giving them the "expected" name where possible.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1672
¶void EmitTentativeDefinition(
const clang::VarDecl* D)
void EmitTentativeDefinition(
const clang::VarDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1269
Parameters
- const clang::VarDecl* D
¶void EmitTopLevelDecl(clang::Decl* D)
void EmitTopLevelDecl(clang::Decl* D)
Description
Emit code for a single top level declaration.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1082
Parameters
- clang::Decl* D
¶void EmitVTable(clang::CXXRecordDecl* Class)
void EmitVTable(clang::CXXRecordDecl* Class)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1273
Parameters
- clang::CXXRecordDecl* Class
¶void EmitVTableTypeMetadata(
const clang::CXXRecordDecl* RD,
llvm::GlobalVariable* VTable,
const clang::VTableLayout& VTLayout)
void EmitVTableTypeMetadata(
const clang::CXXRecordDecl* RD,
llvm::GlobalVariable* VTable,
const clang::VTableLayout& VTLayout)
Description
Emit type metadata for the given vtable using the given layout.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1432
Parameters
- const clang::CXXRecordDecl* RD
- llvm::GlobalVariable* VTable
- const clang::VTableLayout& VTLayout
¶void EmitVTablesOpportunistically()
void EmitVTablesOpportunistically()
Description
Try to emit external vtables as available_externally if they have emitted all inlined virtual functions. It runs after EmitDeferred() and therefore is not allowed to create new references to things that need to be emitted lazily.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1620
¶void EmitVersionIdentMetadata()
void EmitVersionIdentMetadata()
Description
Emit the Clang version as llvm.ident metadata.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1677
¶void Error(clang::SourceLocation loc,
llvm::StringRef error)
void Error(clang::SourceLocation loc,
llvm::StringRef error)
Description
Emit a general error that something can't be done.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1188
Parameters
- clang::SourceLocation loc
- llvm::StringRef error
¶void ErrorUnsupported(const clang::Stmt* S,
const char* Type)
void ErrorUnsupported(const clang::Stmt* S,
const char* Type)
Description
Print out an error that codegen doesn't support the specified stmt yet.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1191
Parameters
- const clang::Stmt* S
- const char* Type
¶void ErrorUnsupported(const clang::Decl* D,
const char* Type)
void ErrorUnsupported(const clang::Decl* D,
const char* Type)
Description
Print out an error that codegen doesn't support the specified decl yet.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1194
Parameters
- const clang::Decl* D
- const char* Type
¶void GenKernelArgMetadata(
llvm::Function* FN,
const clang::FunctionDecl* FD = nullptr,
clang::CodeGen::CodeGenFunction* CGF =
nullptr)
void GenKernelArgMetadata(
llvm::Function* FN,
const clang::FunctionDecl* FD = nullptr,
clang::CodeGen::CodeGenFunction* CGF =
nullptr)
Description
OpenCL v1.2 s5.6.4.6 allows the compiler to store kernel argument information in the program executable. The argument information stored includes the argument name, its type, the address and access qualifiers used. This helper can be used to generate metadata for source code kernel function as well as generated implicitly kernels. If a kernel is generated implicitly null value has to be passed to the last two parameters, otherwise all parameters must have valid non-null values.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1497
Parameters
- llvm::Function* FN
- is a pointer to IR function being generated.
- const clang::FunctionDecl* FD = nullptr
- is a pointer to function declaration if any.
- clang::CodeGen::CodeGenFunction* CGF = nullptr
- is a pointer to CodeGenFunction that generates this function.
¶clang::CodeGen::ConstantAddress
GetAddrOfConstantCFString(
const clang::StringLiteral* Literal)
clang::CodeGen::ConstantAddress
GetAddrOfConstantCFString(
const clang::StringLiteral* Literal)
Description
Return a pointer to a constant CFString object for the given string.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1001
Parameters
- const clang::StringLiteral* Literal
¶clang::CodeGen::ConstantAddress
GetAddrOfConstantCString(
const std::string& Str,
const char* GlobalName = nullptr)
clang::CodeGen::ConstantAddress
GetAddrOfConstantCString(
const std::string& Str,
const char* GlobalName = nullptr)
Description
Returns a pointer to a character array containing the literal and a terminating ' \ 0' character. The result has pointer to array type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1026
Parameters
- const std::string& Str
- const char* GlobalName = nullptr
- If provided, the name to use for the global (if one is created).
¶clang::CodeGen::ConstantAddress
GetAddrOfConstantCompoundLiteral(
const clang::CompoundLiteralExpr* E)
clang::CodeGen::ConstantAddress
GetAddrOfConstantCompoundLiteral(
const clang::CompoundLiteralExpr* E)
Description
Returns a pointer to a constant global variable for the given file-scope compound literal expression.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1031
Parameters
- const clang::CompoundLiteralExpr* E
¶clang::CodeGen::ConstantAddress
GetAddrOfConstantString(
const clang::StringLiteral* Literal)
clang::CodeGen::ConstantAddress
GetAddrOfConstantString(
const clang::StringLiteral* Literal)
Description
Return a pointer to a constant NSString object for the given string. Or a user defined String object as defined via -fconstant-string-class=class_name option.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1006
Parameters
- const clang::StringLiteral* Literal
¶clang::CodeGen::ConstantAddress
GetAddrOfConstantStringFromLiteral(
const clang::StringLiteral* S,
llvm::StringRef Name = ".str")
clang::CodeGen::ConstantAddress
GetAddrOfConstantStringFromLiteral(
const clang::StringLiteral* S,
llvm::StringRef Name = ".str")
Description
Return a pointer to a constant array for the given string literal.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1013
Parameters
- const clang::StringLiteral* S
- llvm::StringRef Name = ".str"
¶clang::CodeGen::ConstantAddress
GetAddrOfConstantStringFromObjCEncode(
const clang::ObjCEncodeExpr*)
clang::CodeGen::ConstantAddress
GetAddrOfConstantStringFromObjCEncode(
const clang::ObjCEncodeExpr*)
Description
Return a pointer to a constant array for the given ObjCEncodeExpr node.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1018
Parameters
- const clang::ObjCEncodeExpr*
¶llvm::Constant* GetAddrOfFunction(
clang::GlobalDecl GD,
llvm::Type* Ty = nullptr,
bool ForVTable = false,
bool DontDefer = false,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
llvm::Constant* GetAddrOfFunction(
clang::GlobalDecl GD,
llvm::Type* Ty = nullptr,
bool ForVTable = false,
bool DontDefer = false,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
Description
Return the address of the given function. If Ty is non-null, then this function will use the specified type if it has to create it.
Declared at: clang/lib/CodeGen/CodeGenModule.h:908
Parameters
- clang::GlobalDecl GD
- llvm::Type* Ty = nullptr
- bool ForVTable = false
- bool DontDefer = false
- clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition
¶llvm::Constant* GetAddrOfGlobal(
clang::GlobalDecl GD,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
llvm::Constant* GetAddrOfGlobal(
clang::GlobalDecl GD,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
Declared at: clang/lib/CodeGen/CodeGenModule.h:859
Parameters
- clang::GlobalDecl GD
- clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition
¶llvm::Constant* GetAddrOfGlobalBlock(
const clang::BlockExpr* BE,
llvm::StringRef Name)
llvm::Constant* GetAddrOfGlobalBlock(
const clang::BlockExpr* BE,
llvm::StringRef Name)
Description
Gets the address of a block which requires no captures.
Declared at: clang/lib/CodeGen/CodeGenModule.h:988
Parameters
- const clang::BlockExpr* BE
- llvm::StringRef Name
¶clang::CodeGen::ConstantAddress
GetAddrOfGlobalTemporary(
const clang::MaterializeTemporaryExpr* E,
const clang::Expr* Inner)
clang::CodeGen::ConstantAddress
GetAddrOfGlobalTemporary(
const clang::MaterializeTemporaryExpr* E,
const clang::Expr* Inner)
Description
Returns a pointer to a global variable representing a temporary with static or thread storage duration.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1045
Parameters
- const clang::MaterializeTemporaryExpr* E
- const clang::Expr* Inner
¶llvm::Constant* GetAddrOfGlobalVar(
const clang::VarDecl* D,
llvm::Type* Ty = nullptr,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
llvm::Constant* GetAddrOfGlobalVar(
const clang::VarDecl* D,
llvm::Type* Ty = nullptr,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
Description
Return the llvm::Constant for the address of the given global variable. If Ty is non-null and if the global doesn't exist, then it will be created with the specified type instead of whatever the normal requested type would be. If IsForDefinition is true, it is guaranteed that an actual global with type Ty will be returned, not conversion of a variable with the same mangled name but some other type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:901
Parameters
- const clang::VarDecl* D
- llvm::Type* Ty = nullptr
- clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition
¶clang::CodeGen::ConstantAddress
GetAddrOfMSGuidDecl(const clang::MSGuidDecl* GD)
clang::CodeGen::ConstantAddress
GetAddrOfMSGuidDecl(const clang::MSGuidDecl* GD)
Description
Get the address of a GUID.
Declared at: clang/lib/CodeGen/CodeGenModule.h:921
Parameters
- const clang::MSGuidDecl* GD
¶llvm::Constant* GetAddrOfRTTIDescriptor(
clang::QualType Ty,
bool ForEH = false)
llvm::Constant* GetAddrOfRTTIDescriptor(
clang::QualType Ty,
bool ForEH = false)
Description
Get the address of the RTTI descriptor for the given type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:918
Parameters
- clang::QualType Ty
- bool ForEH = false
¶clang::CodeGen::ConstantAddress
GetAddrOfTemplateParamObject(
const clang::TemplateParamObjectDecl* TPO)
clang::CodeGen::ConstantAddress
GetAddrOfTemplateParamObject(
const clang::TemplateParamObjectDecl* TPO)
Description
Get the address of a template parameter object.
Declared at: clang/lib/CodeGen/CodeGenModule.h:929
Parameters
- const clang::TemplateParamObjectDecl* TPO
¶llvm::Constant* GetAddrOfThunk(
llvm::StringRef Name,
llvm::Type* FnTy,
clang::GlobalDecl GD)
llvm::Constant* GetAddrOfThunk(
llvm::StringRef Name,
llvm::Type* FnTy,
clang::GlobalDecl GD)
Description
Get the address of the thunk for the given global decl.
Declared at: clang/lib/CodeGen/CodeGenModule.h:932
Parameters
- llvm::StringRef Name
- llvm::Type* FnTy
- clang::GlobalDecl GD
¶clang::CodeGen::ConstantAddress
GetAddrOfUnnamedGlobalConstantDecl(
const clang::UnnamedGlobalConstantDecl* GCD)
clang::CodeGen::ConstantAddress
GetAddrOfUnnamedGlobalConstantDecl(
const clang::UnnamedGlobalConstantDecl* GCD)
Description
Get the address of a UnnamedGlobalConstant
Declared at: clang/lib/CodeGen/CodeGenModule.h:925
Parameters
- const clang::UnnamedGlobalConstantDecl* GCD
¶bool GetCPUAndFeaturesAttributes(
clang::GlobalDecl GD,
llvm::AttrBuilder& AttrBuilder)
bool GetCPUAndFeaturesAttributes(
clang::GlobalDecl GD,
llvm::AttrBuilder& AttrBuilder)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1555
Parameters
- clang::GlobalDecl GD
- llvm::AttrBuilder& AttrBuilder
¶llvm::Constant* GetConstantArrayFromStringLiteral(
const clang::StringLiteral* E)
llvm::Constant* GetConstantArrayFromStringLiteral(
const clang::StringLiteral* E)
Description
Return a constant array for the given string.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1009
Parameters
- const clang::StringLiteral* E
¶llvm::GlobalVariable::ThreadLocalMode
GetDefaultLLVMTLSModel() const
llvm::GlobalVariable::ThreadLocalMode
GetDefaultLLVMTLSModel() const
Description
Get LLVM TLS mode from CodeGenOptions.
Declared at: clang/lib/CodeGen/CodeGenModule.h:848
¶llvm::Constant* GetFunctionStart(
const clang::ValueDecl* Decl)
llvm::Constant* GetFunctionStart(
const clang::ValueDecl* Decl)
Declared at: clang/lib/CodeGen/CodeGenModule.h:915
Parameters
- const clang::ValueDecl* Decl
¶clang::LangAS GetGlobalConstantAddressSpace()
const
clang::LangAS GetGlobalConstantAddressSpace()
const
Description
Return the AST address space of constant literal, which is used to emit the constant literal as global variable in LLVM IR. Note: This is not necessarily the address space of the constant literal in AST. For address space agnostic language, e.g. C++, constant literal in AST is always in default address space.
Declared at: clang/lib/CodeGen/CodeGenModule.h:893
¶llvm::GlobalValue* GetGlobalValue(
llvm::StringRef Ref)
llvm::GlobalValue* GetGlobalValue(
llvm::StringRef Ref)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1376
Parameters
- llvm::StringRef Ref
¶clang::LangAS GetGlobalVarAddressSpace(
const clang::VarDecl* D)
clang::LangAS GetGlobalVarAddressSpace(
const clang::VarDecl* D)
Description
Return the AST address space of the underlying global variable for D, as determined by its declaration. Normally this is the same as the address space of D's type, but in CUDA, address spaces are associated with declarations, not types. If D is nullptr, return the default address space for global variable. For languages without explicit address spaces, if D has default address space, target-specific global or constant address space may be returned.
Declared at: clang/lib/CodeGen/CodeGenModule.h:886
Parameters
- const clang::VarDecl* D
¶static llvm::GlobalValue::VisibilityTypes
GetLLVMVisibility(clang::Visibility V)
static llvm::GlobalValue::VisibilityTypes
GetLLVMVisibility(clang::Visibility V)
Declared at: clang/lib/CodeGen/CodeGenModule.h:850
Parameters
- clang::Visibility V
¶llvm::Constant* GetNonVirtualBaseClassOffset(
const clang::CXXRecordDecl* ClassDecl,
CastExpr::path_const_iterator PathBegin,
CastExpr::path_const_iterator PathEnd)
llvm::Constant* GetNonVirtualBaseClassOffset(
const clang::CXXRecordDecl* ClassDecl,
CastExpr::path_const_iterator PathBegin,
CastExpr::path_const_iterator PathEnd)
Description
Returns the offset from a derived class to a class. Returns null if the offset is 0.
Declared at: clang/lib/CodeGen/CodeGenModule.h:972
Parameters
- const clang::CXXRecordDecl* ClassDecl
- CastExpr::path_const_iterator PathBegin
- CastExpr::path_const_iterator PathEnd
¶llvm::Constant* GetOrCreateLLVMFunction(
llvm::StringRef MangledName,
llvm::Type* Ty,
clang::GlobalDecl D,
bool ForVTable,
bool DontDefer = false,
bool IsThunk = false,
llvm::AttributeList ExtraAttrs =
llvm::AttributeList(),
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
llvm::Constant* GetOrCreateLLVMFunction(
llvm::StringRef MangledName,
llvm::Type* Ty,
clang::GlobalDecl D,
bool ForVTable,
bool DontDefer = false,
bool IsThunk = false,
llvm::AttributeList ExtraAttrs =
llvm::AttributeList(),
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1529
Parameters
- llvm::StringRef MangledName
- llvm::Type* Ty
- clang::GlobalDecl D
- bool ForVTable
- bool DontDefer = false
- bool IsThunk = false
- llvm::AttributeList ExtraAttrs = llvm::AttributeList()
- clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition
¶llvm::Constant* GetOrCreateLLVMGlobal(
llvm::StringRef MangledName,
llvm::Type* Ty,
clang::LangAS AddrSpace,
const clang::VarDecl* D,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
llvm::Constant* GetOrCreateLLVMGlobal(
llvm::StringRef MangledName,
llvm::Type* Ty,
clang::LangAS AddrSpace,
const clang::VarDecl* D,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1551
Parameters
- llvm::StringRef MangledName
- llvm::Type* Ty
- clang::LangAS AddrSpace
- const clang::VarDecl* D
- clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition
¶llvm::Constant* GetOrCreateMultiVersionResolver(
clang::GlobalDecl GD)
llvm::Constant* GetOrCreateMultiVersionResolver(
clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1540
Parameters
¶llvm::GlobalVariable*
GetOrCreateRTTIProxyGlobalVariable(
llvm::Constant* Addr)
llvm::GlobalVariable*
GetOrCreateRTTIProxyGlobalVariable(
llvm::Constant* Addr)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1477
Parameters
- llvm::Constant* Addr
¶clang::CharUnits GetTargetTypeStoreSize(
llvm::Type* Ty) const
clang::CharUnits GetTargetTypeStoreSize(
llvm::Type* Ty) const
Description
Return the store size, in character units, of the given LLVM type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1298
Parameters
- llvm::Type* Ty
¶llvm::GlobalObject::VCallVisibility
GetVCallVisibilityLevel(
const clang::CXXRecordDecl* RD,
llvm::DenseSet<const CXXRecordDecl*>& Visited)
llvm::GlobalObject::VCallVisibility
GetVCallVisibilityLevel(
const clang::CXXRecordDecl* RD,
llvm::DenseSet<const CXXRecordDecl*>& Visited)
Description
Returns the vcall visibility of the given type. This is the scope in which a virtual function call could be made which ends up being dispatched to a member function of this class. This scope can be wider than the visibility of the class itself when the class has a more-visible dynamic base class. The client should pass in an empty Visited set, which is used to prevent redundant recursive processing.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1428
Parameters
- const clang::CXXRecordDecl* RD
- llvm::DenseSet<const CXXRecordDecl*>& Visited
¶clang::CodeGen::ConstantAddress
GetWeakRefReference(const clang::ValueDecl* VD)
clang::CodeGen::ConstantAddress
GetWeakRefReference(const clang::ValueDecl* VD)
Description
Get a reference to the target of VD.
Declared at: clang/lib/CodeGen/CodeGenModule.h:936
Parameters
- const clang::ValueDecl* VD
¶void HandleCXXStaticMemberVarInstantiation(
clang::VarDecl* VD)
void HandleCXXStaticMemberVarInstantiation(
clang::VarDecl* VD)
Description
Tell the consumer that this variable has been instantiated.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1100
Parameters
- clang::VarDecl* VD
¶bool HasHiddenLTOVisibility(
const clang::CXXRecordDecl* RD)
bool HasHiddenLTOVisibility(
const clang::CXXRecordDecl* RD)
Description
Returns whether the given record has hidden LTO visibility and therefore may participate in (single-module) CFI and whole-program vtable optimization.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1414
Parameters
- const clang::CXXRecordDecl* RD
¶bool MayBeEmittedEagerly(
const clang::ValueDecl* D)
bool MayBeEmittedEagerly(
const clang::ValueDecl* D)
Description
Determine whether the definition can be emitted eagerly, or should be delayed until the end of the translation unit. This is relevant for definitions whose linkage can change, e.g. implicit function instantions which may later be explicitly instantiated.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1701
Parameters
- const clang::ValueDecl* D
¶bool MayDropFunctionReturn(
const clang::ASTContext& Context,
clang::QualType ReturnType)
bool MayDropFunctionReturn(
const clang::ASTContext& Context,
clang::QualType ReturnType)
Description
Whether this function's return type has no side effects, and thus may be trivially discarded if it is unused.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1459
Parameters
- const clang::ASTContext& Context
- clang::QualType ReturnType
¶template <typename SomeDecl>
void MaybeHandleStaticInExternC(
const SomeDecl* D,
llvm::GlobalValue* GV)
template <typename SomeDecl>
void MaybeHandleStaticInExternC(
const SomeDecl* D,
llvm::GlobalValue* GV)
Description
If the declaration has internal linkage but is inside an extern "C" linkage specification, prepare to emit an alias for it to the expected name.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1106
Templates
- SomeDecl
Parameters
- const SomeDecl* D
- llvm::GlobalValue* GV
¶bool MustBeEmitted(const clang::ValueDecl* D)
bool MustBeEmitted(const clang::ValueDecl* D)
Description
Determine whether the definition must be emitted; if this returns \c false, the definition can be emitted lazily if it's used.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1695
Parameters
- const clang::ValueDecl* D
¶bool NeedAllVtablesTypeId() const
bool NeedAllVtablesTypeId() const
Description
Returns whether this module needs the "all-vtables" type identifier.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1462
¶void RefreshTypeCacheForClass(
const clang::CXXRecordDecl* Class)
void RefreshTypeCacheForClass(
const clang::CXXRecordDecl* Class)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1275
Parameters
- const clang::CXXRecordDecl* Class
¶void Release()
void Release()
Description
Finalize LLVM code generation.
Declared at: clang/lib/CodeGen/CodeGenModule.h:604
¶bool ReturnSlotInterferesWithArgs(
const clang::CodeGen::CGFunctionInfo& FI)
bool ReturnSlotInterferesWithArgs(
const clang::CodeGen::CGFunctionInfo& FI)
Description
Return true iff the given type uses an argument slot when 'sret' is used as a return type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1219
Parameters
- const clang::CodeGen::CGFunctionInfo& FI
¶bool ReturnTypeUsesFP2Ret(
clang::QualType ResultType)
bool ReturnTypeUsesFP2Ret(
clang::QualType ResultType)
Description
Return true iff the given type uses 'fp2ret' when used as a return type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1225
Parameters
- clang::QualType ResultType
¶bool ReturnTypeUsesFPRet(
clang::QualType ResultType)
bool ReturnTypeUsesFPRet(
clang::QualType ResultType)
Description
Return true iff the given type uses 'fpret' when used as a return type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1222
Parameters
- clang::QualType ResultType
¶bool ReturnTypeUsesSRet(
const clang::CodeGen::CGFunctionInfo& FI)
bool ReturnTypeUsesSRet(
const clang::CodeGen::CGFunctionInfo& FI)
Description
Return true iff the given type uses 'sret' when used as a return type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1215
Parameters
- const clang::CodeGen::CGFunctionInfo& FI
¶void SetCommonAttributes(clang::GlobalDecl GD,
llvm::GlobalValue* GV)
void SetCommonAttributes(clang::GlobalDecl GD,
llvm::GlobalValue* GV)
Description
Set attributes which are common to any form of a global definition (alias, Objective-C method, function, global variable). NOTE: This should only be called for definitions.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1382
Parameters
¶void SetFunctionAttributes(
clang::GlobalDecl GD,
llvm::Function* F,
bool IsIncompleteFunction,
bool IsThunk)
void SetFunctionAttributes(
clang::GlobalDecl GD,
llvm::Function* F,
bool IsIncompleteFunction,
bool IsThunk)
Description
Set function attributes for a function declaration.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1560
Parameters
- clang::GlobalDecl GD
- llvm::Function* F
- bool IsIncompleteFunction
- bool IsThunk
¶void SetInternalFunctionAttributes(
clang::GlobalDecl GD,
llvm::Function* F,
const clang::CodeGen::CGFunctionInfo& FI)
void SetInternalFunctionAttributes(
clang::GlobalDecl GD,
llvm::Function* F,
const clang::CodeGen::CGFunctionInfo& FI)
Description
Set the attributes on the LLVM function for the given decl and function info. This applies attributes necessary for handling the ABI as well as user specified attributes like section.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1199
Parameters
- clang::GlobalDecl GD
- llvm::Function* F
- const clang::CodeGen::CGFunctionInfo& FI
¶void SetLLVMFunctionAttributes(
clang::GlobalDecl GD,
const clang::CodeGen::CGFunctionInfo& Info,
llvm::Function* F,
bool IsThunk)
void SetLLVMFunctionAttributes(
clang::GlobalDecl GD,
const clang::CodeGen::CGFunctionInfo& Info,
llvm::Function* F,
bool IsThunk)
Description
Set the LLVM function attributes (sext, zext, etc).
Declared at: clang/lib/CodeGen/CodeGenModule.h:1203
Parameters
- clang::GlobalDecl GD
- const clang::CodeGen::CGFunctionInfo& Info
- llvm::Function* F
- bool IsThunk
¶void SetLLVMFunctionAttributesForDefinition(
const clang::Decl* D,
llvm::Function* F)
void SetLLVMFunctionAttributesForDefinition(
const clang::Decl* D,
llvm::Function* F)
Description
Set the LLVM function attributes which only apply to a function definition.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1208
Parameters
- const clang::Decl* D
- llvm::Function* F
¶void SimplifyPersonality()
void SimplifyPersonality()
Description
Check whether we can use a "simpler", more core exceptions personality function.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1705
¶bool TryEmitBaseDestructorAsAlias(
const clang::CXXDestructorDecl* D)
bool TryEmitBaseDestructorAsAlias(
const clang::CXXDestructorDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1374
Parameters
- const clang::CXXDestructorDecl* D
¶void UpdateCompletedType(const clang::TagDecl* TD)
void UpdateCompletedType(const clang::TagDecl* TD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1169
Parameters
- const clang::TagDecl* TD
¶void UpdateMultiVersionNames(
clang::GlobalDecl GD,
const clang::FunctionDecl* FD,
llvm::StringRef& CurName)
void UpdateMultiVersionNames(
clang::GlobalDecl GD,
const clang::FunctionDecl* FD,
llvm::StringRef& CurName)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1547
Parameters
- clang::GlobalDecl GD
- const clang::FunctionDecl* FD
- llvm::StringRef& CurName
¶void addCompilerUsedGlobal(llvm::GlobalValue* GV)
void addCompilerUsedGlobal(llvm::GlobalValue* GV)
Description
Add a global to a list to be added to the llvm.compiler.used metadata.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1112
Parameters
¶void addDefaultFunctionDefinitionAttributes(
llvm::Function& F)
void addDefaultFunctionDefinitionAttributes(
llvm::Function& F)
Description
Adds attributes to F according to our CodeGenOptions and LangOptions, as though we had emitted it ourselves. We remove any attributes on F that conflict with the attributes we add here. This is useful for adding attrs to bitcode modules that you want to link with but don't control, such as CUDA's libdevice. When linking with such a bitcode library, you might want to set e.g. its functions' "unsafe-fp-math" attribute to match the attr of the functions you're codegen'ing. Otherwise, LLVM will interpret the bitcode module's lack of unsafe-fp-math attrs as tantamount to unsafe-fp-math=false, and then LLVM will propagate unsafe-fp-math=false up to every transitive caller of a function in the bitcode library! With the exception of fast-math attrs, this will only make the attributes on the function more conservative. But it's unsafe to call this on a function which relies on particular fast-math attributes for correctness. It's up to you to ensure that this is safe.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1259
Parameters
¶void addDefaultFunctionDefinitionAttributes(
llvm::AttrBuilder& attrs)
void addDefaultFunctionDefinitionAttributes(
llvm::AttrBuilder& attrs)
Description
Like the overload taking a `Function & `, but intended specifically for frontends that want to build on Clang's target-configuration logic.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1263
Parameters
- llvm::AttrBuilder& attrs
¶void addDeferredDeclToEmit(clang::GlobalDecl GD)
void addDeferredDeclToEmit(clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:350
Parameters
¶void addDeferredVTable(
const clang::CXXRecordDecl* RD)
void addDeferredVTable(
const clang::CXXRecordDecl* RD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1366
Parameters
- const clang::CXXRecordDecl* RD
¶void addEmittedDeferredDecl(clang::GlobalDecl GD)
void addEmittedDeferredDecl(clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:358
Parameters
¶void addGlobalValReplacement(
llvm::GlobalValue* GV,
llvm::Constant* C)
void addGlobalValReplacement(
llvm::GlobalValue* GV,
llvm::Constant* C)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1386
Parameters
¶void addReplacement(llvm::StringRef Name,
llvm::Constant* C)
void addReplacement(llvm::StringRef Name,
llvm::Constant* C)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1384
Parameters
- llvm::StringRef Name
- llvm::Constant* C
¶void addUsedGlobal(llvm::GlobalValue* GV)
void addUsedGlobal(llvm::GlobalValue* GV)
Description
Add a global to a list to be added to the llvm.used metadata.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1109
Parameters
¶void addUsedOrCompilerUsedGlobal(
llvm::GlobalValue* GV)
void addUsedOrCompilerUsedGlobal(
llvm::GlobalValue* GV)
Description
Add a global to a list to be added to the llvm.compiler.used metadata.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1115
Parameters
¶void applyGlobalValReplacements()
void applyGlobalValReplacements()
Description
Call replaceAllUsesWith on all pairs in GlobalValReplacements.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1626
¶void applyReplacements()
void applyReplacements()
Description
Call replaceAllUsesWith on all pairs in Replacements.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1623
¶void checkAliases()
void checkAliases()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1628
¶void clear()
void clear()
Declared at: clang/lib/CodeGen/CodeGenModule.h:601
¶llvm::Function* codegenCXXStructor(
clang::GlobalDecl GD)
llvm::Function* codegenCXXStructor(
clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1055
Parameters
¶clang::CharUnits computeNonVirtualBaseClassOffset(
const clang::CXXRecordDecl* DerivedClass,
CastExpr::path_const_iterator Start,
CastExpr::path_const_iterator End)
clang::CharUnits computeNonVirtualBaseClassOffset(
const clang::CXXRecordDecl* DerivedClass,
CastExpr::path_const_iterator Start,
CastExpr::path_const_iterator End)
Declared at: clang/lib/CodeGen/CodeGenModule.h:965
Parameters
- const clang::CXXRecordDecl* DerivedClass
- CastExpr::path_const_iterator Start
- CastExpr::path_const_iterator End
¶void createCUDARuntime()
void createCUDARuntime()
Declared at: clang/lib/CodeGen/CodeGenModule.h:535
¶void createHLSLRuntime()
void createHLSLRuntime()
Declared at: clang/lib/CodeGen/CodeGenModule.h:536
¶void createObjCRuntime()
void createObjCRuntime()
Description
Lazily create the Objective-C runtime
Declared at: clang/lib/CodeGen/CodeGenModule.h:531
¶llvm::Value* createOpenCLIntToSamplerConversion(
const clang::Expr* E,
clang::CodeGen::CodeGenFunction& CGF)
llvm::Value* createOpenCLIntToSamplerConversion(
const clang::Expr* E,
clang::CodeGen::CodeGenFunction& CGF)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1485
Parameters
- const clang::Expr* E
- clang::CodeGen::CodeGenFunction& CGF
¶void createOpenCLRuntime()
void createOpenCLRuntime()
Declared at: clang/lib/CodeGen/CodeGenModule.h:533
¶void createOpenMPRuntime()
void createOpenMPRuntime()
Declared at: clang/lib/CodeGen/CodeGenModule.h:534
¶clang::CodeGen::Address createUnnamedGlobalFrom(
const clang::VarDecl& D,
llvm::Constant* Constant,
clang::CharUnits Align)
clang::CodeGen::Address createUnnamedGlobalFrom(
const clang::VarDecl& D,
llvm::Constant* Constant,
clang::CharUnits Align)
Declared at: clang/lib/CodeGen/CodeGenModule.h:682
Parameters
- const clang::VarDecl& D
- llvm::Constant* Constant
- clang::CharUnits Align
¶void emitAtAvailableLinkGuard()
void emitAtAvailableLinkGuard()
Description
Emit a dummy function that reference a CoreFoundation symbol when@availableis used on Darwin.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1649
¶void emitCPUDispatchDefinition(
clang::GlobalDecl GD)
void emitCPUDispatchDefinition(
clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1572
Parameters
¶void emitIFuncDefinition(clang::GlobalDecl GD)
void emitIFuncDefinition(clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1571
Parameters
¶void emitLLVMUsed()
void emitLLVMUsed()
Description
Emit the llvm.used and llvm.compiler.used metadata.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1652
¶void emitMultiVersionFunctions()
void emitMultiVersionFunctions()
Description
Emit deferred multiversion function resolvers and associated variants.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1642
¶llvm::FunctionCallee getAddrAndTypeOfCXXStructor(
clang::GlobalDecl GD,
const clang::CodeGen::CGFunctionInfo* FnInfo =
nullptr,
llvm::FunctionType* FnType = nullptr,
bool DontDefer = false,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
llvm::FunctionCallee getAddrAndTypeOfCXXStructor(
clang::GlobalDecl GD,
const clang::CodeGen::CGFunctionInfo* FnInfo =
nullptr,
llvm::FunctionType* FnType = nullptr,
bool DontDefer = false,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1069
Parameters
- clang::GlobalDecl GD
- const clang::CodeGen::CGFunctionInfo* FnInfo = nullptr
- llvm::FunctionType* FnType = nullptr
- bool DontDefer = false
- clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition
¶llvm::Constant* getAddrOfCXXStructor(
clang::GlobalDecl GD,
const clang::CodeGen::CGFunctionInfo* FnInfo =
nullptr,
llvm::FunctionType* FnType = nullptr,
bool DontDefer = false,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
llvm::Constant* getAddrOfCXXStructor(
clang::GlobalDecl GD,
const clang::CodeGen::CGFunctionInfo* FnInfo =
nullptr,
llvm::FunctionType* FnType = nullptr,
bool DontDefer = false,
clang::CodeGen::ForDefinition_t
IsForDefinition = NotForDefinition)
Description
Return the address of the constructor/destructor of the given type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1059
Parameters
- clang::GlobalDecl GD
- const clang::CodeGen::CGFunctionInfo* FnInfo = nullptr
- llvm::FunctionType* FnType = nullptr
- bool DontDefer = false
- clang::CodeGen::ForDefinition_t IsForDefinition = NotForDefinition
¶llvm::GlobalVariable*
getAddrOfConstantCompoundLiteralIfEmitted(
const clang::CompoundLiteralExpr* E)
llvm::GlobalVariable*
getAddrOfConstantCompoundLiteralIfEmitted(
const clang::CompoundLiteralExpr* E)
Description
If it's been emitted already, returns the GlobalVariable corresponding to a compound literal. Otherwise, returns null.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1036
Parameters
- const clang::CompoundLiteralExpr* E
¶llvm::Constant* getAddrOfGlobalBlockIfEmitted(
const clang::BlockExpr* BE)
llvm::Constant* getAddrOfGlobalBlockIfEmitted(
const clang::BlockExpr* BE)
Description
Returns the address of a block which requires no caputres, or null if we've yet to emit the block for BE.
Declared at: clang/lib/CodeGen/CodeGenModule.h:992
Parameters
- const clang::BlockExpr* BE
¶llvm::Constant* getAtomicGetterHelperFnMap(
clang::QualType Ty)
llvm::Constant* getAtomicGetterHelperFnMap(
clang::QualType Ty)
Declared at: clang/lib/CodeGen/CodeGenModule.h:696
Parameters
¶llvm::Constant* getAtomicSetterHelperFnMap(
clang::QualType Ty)
llvm::Constant* getAtomicSetterHelperFnMap(
clang::QualType Ty)
Declared at: clang/lib/CodeGen/CodeGenModule.h:688
Parameters
¶llvm::Type* getBlockDescriptorType()
llvm::Type* getBlockDescriptorType()
Description
Fetches the type of a generic block descriptor.
Declared at: clang/lib/CodeGen/CodeGenModule.h:982
¶llvm::StringRef getBlockMangledName(
clang::GlobalDecl GD,
const clang::BlockDecl* BD)
llvm::StringRef getBlockMangledName(
clang::GlobalDecl GD,
const clang::BlockDecl* BD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1266
Parameters
- clang::GlobalDecl GD
- const clang::BlockDecl* BD
¶llvm::FunctionCallee getBlockObjectAssign()
llvm::FunctionCallee getBlockObjectAssign()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1160
¶llvm::FunctionCallee getBlockObjectDispose()
llvm::FunctionCallee getBlockObjectDispose()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1161
¶llvm::Constant* getBuiltinLibFunction(
const clang::FunctionDecl* FD,
unsigned int BuiltinID)
llvm::Constant* getBuiltinLibFunction(
const clang::FunctionDecl* FD,
unsigned int BuiltinID)
Description
Given a builtin id for a function like "__builtin_fabsf", return a Function* for "fabsf".
Declared at: clang/lib/CodeGen/CodeGenModule.h:1076
Parameters
- const clang::FunctionDecl* FD
- unsigned int BuiltinID
¶clang::CodeGen::CGCUDARuntime& getCUDARuntime()
clang::CodeGen::CGCUDARuntime& getCUDARuntime()
Description
Return a reference to the configured CUDA runtime.
Declared at: clang/lib/CodeGen/CodeGenModule.h:633
¶clang::CodeGen::CGCXXABI& getCXXABI() const
clang::CodeGen::CGCXXABI& getCXXABI() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:739
¶clang::CharUnits getClassPointerAlignment(
const clang::CXXRecordDecl* CD)
clang::CharUnits getClassPointerAlignment(
const clang::CXXRecordDecl* CD)
Description
Returns the assumed alignment of an opaque pointer to the given class.
Declared at: clang/lib/CodeGen/CodeGenModule.h:939
Parameters
- const clang::CXXRecordDecl* CD
¶const clang::CodeGenOptions& getCodeGenOpts()
const
const clang::CodeGenOptions& getCodeGenOpts()
const
Declared at: clang/lib/CodeGen/CodeGenModule.h:728
¶clang::ASTContext& getContext() const
clang::ASTContext& getContext() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:719
¶clang::CodeGen::CoverageMappingModuleGen*
getCoverageMapping() const
clang::CodeGen::CoverageMappingModuleGen*
getCoverageMapping() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:658
¶const llvm::DataLayout& getDataLayout() const
const llvm::DataLayout& getDataLayout() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:731
¶void getDefaultFunctionAttributes(
llvm::StringRef Name,
bool HasOptnone,
bool AttrOnCallSite,
llvm::AttrBuilder& FuncAttrs)
void getDefaultFunctionAttributes(
llvm::StringRef Name,
bool HasOptnone,
bool AttrOnCallSite,
llvm::AttrBuilder& FuncAttrs)
Description
Helper function for ConstructAttributeList and addDefaultFunctionDefinitionAttributes. Builds a set of function attributes to add to a function with the given properties.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1710
Parameters
- llvm::StringRef Name
- bool HasOptnone
- bool AttrOnCallSite
- llvm::AttrBuilder& FuncAttrs
¶clang::DiagnosticsEngine& getDiags() const
clang::DiagnosticsEngine& getDiags() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:730
¶clang::CharUnits getDynamicOffsetAlignment(
clang::CharUnits ActualAlign,
const clang::CXXRecordDecl* Class,
clang::CharUnits ExpectedTargetAlign)
clang::CharUnits getDynamicOffsetAlignment(
clang::CharUnits ActualAlign,
const clang::CXXRecordDecl* Class,
clang::CharUnits ExpectedTargetAlign)
Description
Given a class pointer with an actual known alignment, and the expected alignment of an object at a dynamic offset w.r.t that pointer, return the alignment to assume at the offset.
Declared at: clang/lib/CodeGen/CodeGenModule.h:960
Parameters
- clang::CharUnits ActualAlign
- const clang::CXXRecordDecl* Class
- clang::CharUnits ExpectedTargetAlign
¶bool getExpressionLocationsEnabled() const
bool getExpressionLocationsEnabled() const
Description
Return true if we should emit location information for expressions.
Declared at: clang/lib/CodeGen/CodeGenModule.h:607
¶const IntrusiveRefCntPtr<llvm::vfs::FileSystem>&
getFileSystem() const
const IntrusiveRefCntPtr<llvm::vfs::FileSystem>&
getFileSystem() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:721
¶llvm::GlobalVariable::LinkageTypes
getFunctionLinkage(clang::GlobalDecl GD)
llvm::GlobalVariable::LinkageTypes
getFunctionLinkage(clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1287
Parameters
¶llvm::Type* getGenericBlockLiteralType()
llvm::Type* getGenericBlockLiteralType()
Description
The type of a generic block literal.
Declared at: clang/lib/CodeGen/CodeGenModule.h:985
¶clang::CodeGen::CodeGenModule::CtorList&
getGlobalCtors()
clang::CodeGen::CodeGenModule::CtorList&
getGlobalCtors()
Declared at: clang/lib/CodeGen/CodeGenModule.h:758
¶clang::CodeGen::CodeGenModule::CtorList&
getGlobalDtors()
clang::CodeGen::CodeGenModule::CtorList&
getGlobalDtors()
Declared at: clang/lib/CodeGen/CodeGenModule.h:759
¶clang::CodeGen::CGHLSLRuntime& getHLSLRuntime()
clang::CodeGen::CGHLSLRuntime& getHLSLRuntime()
Description
Return a reference to the configured HLSL runtime.
Declared at: clang/lib/CodeGen/CodeGenModule.h:639
¶const clang::HeaderSearchOptions&
getHeaderSearchOpts() const
const clang::HeaderSearchOptions&
getHeaderSearchOpts() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:724
¶llvm::Function* getIntrinsic(
unsigned int IID,
ArrayRef<llvm::Type*> Tys = None)
llvm::Function* getIntrinsic(
unsigned int IID,
ArrayRef<llvm::Type*> Tys = None)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1079
Parameters
- unsigned int IID
- ArrayRef<llvm::Type*> Tys = None
¶clang::ItaniumVTableContext&
getItaniumVTableContext()
clang::ItaniumVTableContext&
getItaniumVTableContext()
Declared at: clang/lib/CodeGen/CodeGenModule.h:750
¶llvm::LLVMContext& getLLVMContext()
llvm::LLVMContext& getLLVMContext()
Declared at: clang/lib/CodeGen/CodeGenModule.h:740
¶llvm::Function* getLLVMLifetimeEndFn()
llvm::Function* getLLVMLifetimeEndFn()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1166
¶llvm::Function* getLLVMLifetimeStartFn()
llvm::Function* getLLVMLifetimeStartFn()
Description
@ }
Declared at: clang/lib/CodeGen/CodeGenModule.h:1165
¶llvm::GlobalValue::LinkageTypes
getLLVMLinkageForDeclarator(
const clang::DeclaratorDecl* D,
clang::GVALinkage Linkage,
bool IsConstantVariable)
llvm::GlobalValue::LinkageTypes
getLLVMLinkageForDeclarator(
const clang::DeclaratorDecl* D,
clang::GVALinkage Linkage,
bool IsConstantVariable)
Description
Returns LLVM linkage for a declarator.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1302
Parameters
- const clang::DeclaratorDecl* D
- clang::GVALinkage Linkage
- bool IsConstantVariable
¶llvm::GlobalValue::LinkageTypes
getLLVMLinkageVarDefinition(
const clang::VarDecl* VD,
bool IsConstant)
llvm::GlobalValue::LinkageTypes
getLLVMLinkageVarDefinition(
const clang::VarDecl* VD,
bool IsConstant)
Description
Returns LLVM linkage for a declarator.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1307
Parameters
- const clang::VarDecl* VD
- bool IsConstant
¶const clang::LangOptions& getLangOpts() const
const clang::LangOptions& getLangOpts() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:720
¶llvm::StringRef getMangledName(
clang::GlobalDecl GD)
llvm::StringRef getMangledName(
clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1265
Parameters
¶const clang::GlobalDecl getMangledNameDecl(
llvm::StringRef)
const clang::GlobalDecl getMangledNameDecl(
llvm::StringRef)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1267
Parameters
¶llvm::Constant* getMemberPointerConstant(
const clang::UnaryOperator* e)
llvm::Constant* getMemberPointerConstant(
const clang::UnaryOperator* e)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1171
Parameters
- const clang::UnaryOperator* e
¶clang::MicrosoftVTableContext&
getMicrosoftVTableContext()
clang::MicrosoftVTableContext&
getMicrosoftVTableContext()
Declared at: clang/lib/CodeGen/CodeGenModule.h:754
¶clang::CharUnits getMinimumClassObjectSize(
const clang::CXXRecordDecl* CD)
clang::CharUnits getMinimumClassObjectSize(
const clang::CXXRecordDecl* CD)
Description
Returns the minimum object size for an object of the given class type (or a class derived from it).
Declared at: clang/lib/CodeGen/CodeGenModule.h:943
Parameters
- const clang::CXXRecordDecl* CD
¶clang::CharUnits getMinimumObjectSize(
clang::QualType Ty)
clang::CharUnits getMinimumObjectSize(
clang::QualType Ty)
Description
Returns the minimum object size for an object of the given type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:946
Parameters
¶llvm::Module& getModule() const
llvm::Module& getModule() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:729
¶clang::CodeGen::CGDebugInfo* getModuleDebugInfo()
clang::CodeGen::CGDebugInfo* getModuleDebugInfo()
Declared at: clang/lib/CodeGen/CodeGenModule.h:711
¶const std::string& getModuleNameHash() const
const std::string& getModuleNameHash() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:618
¶std::vector<const CXXRecordDecl*>
getMostBaseClasses(const clang::CXXRecordDecl* RD)
std::vector<const CXXRecordDecl*>
getMostBaseClasses(const clang::CXXRecordDecl* RD)
Description
Return a vector of most-base classes for RD. This is used to implement control flow integrity checks for member function pointers. A most-base class of a class C is defined as a recursive base class of C, including C itself, that does not have any bases.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1474
Parameters
- const clang::CXXRecordDecl* RD
¶llvm::Constant* getNSConcreteGlobalBlock()
llvm::Constant* getNSConcreteGlobalBlock()
Description
@ {
Declared at: clang/lib/CodeGen/CodeGenModule.h:1158
¶llvm::Constant* getNSConcreteStackBlock()
llvm::Constant* getNSConcreteStackBlock()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1159
¶clang::CharUnits getNaturalPointeeTypeAlignment(
clang::QualType T,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
clang::CharUnits getNaturalPointeeTypeAlignment(
clang::QualType T,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1510
Parameters
- clang::QualType T
- clang::CodeGen::LValueBaseInfo* BaseInfo = nullptr
- clang::CodeGen::TBAAAccessInfo* TBAAInfo = nullptr
¶clang::CharUnits getNaturalTypeAlignment(
clang::QualType T,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr,
bool forPointeeType = false)
clang::CharUnits getNaturalTypeAlignment(
clang::QualType T,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr,
bool forPointeeType = false)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1506
Parameters
- clang::QualType T
- clang::CodeGen::LValueBaseInfo* BaseInfo = nullptr
- clang::CodeGen::TBAAAccessInfo* TBAAInfo = nullptr
- bool forPointeeType = false
¶llvm::MDNode* getNoObjCARCExceptionsMetadata()
llvm::MDNode* getNoObjCARCExceptionsMetadata()
Declared at: clang/lib/CodeGen/CodeGenModule.h:713
¶llvm::Constant* getNullPointer(
llvm::PointerType* T,
clang::QualType QT)
llvm::Constant* getNullPointer(
llvm::PointerType* T,
clang::QualType QT)
Description
Get target specific null pointer.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1504
Parameters
- llvm::PointerType* T
- is the LLVM type of the null pointer.
- clang::QualType QT
- is the clang QualType of the null pointer.
¶llvm::Optional<CharUnits> getOMPAllocateAlignment(
const clang::VarDecl* VD)
llvm::Optional<CharUnits> getOMPAllocateAlignment(
const clang::VarDecl* VD)
Description
Return the alignment specified in an allocate directive, if present.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1409
Parameters
- const clang::VarDecl* VD
¶clang::CodeGen::ObjCEntrypoints&
getObjCEntrypoints() const
clang::CodeGen::ObjCEntrypoints&
getObjCEntrypoints() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:644
¶clang::QualType getObjCFastEnumerationStateType()
clang::QualType getObjCFastEnumerationStateType()
Description
Retrieve the record type that describes the state of an Objective-C fast enumeration loop (for..in).
Declared at: clang/lib/CodeGen/CodeGenModule.h:1050
¶clang::CodeGen::CGObjCRuntime& getObjCRuntime()
clang::CodeGen::CGObjCRuntime& getObjCRuntime()
Description
Return a reference to the configured Objective-C runtime.
Declared at: clang/lib/CodeGen/CodeGenModule.h:610
¶clang::CodeGen::CGOpenCLRuntime&
getOpenCLRuntime()
clang::CodeGen::CGOpenCLRuntime&
getOpenCLRuntime()
Description
Return a reference to the configured OpenCL runtime.
Declared at: clang/lib/CodeGen/CodeGenModule.h:621
¶clang::CodeGen::CGOpenMPRuntime&
getOpenMPRuntime()
clang::CodeGen::CGOpenMPRuntime&
getOpenMPRuntime()
Description
Return a reference to the configured OpenMP runtime.
Declared at: clang/lib/CodeGen/CodeGenModule.h:627
¶llvm::Constant* getOrCreateStaticVarDecl(
const clang::VarDecl& D,
llvm::GlobalValue::LinkageTypes Linkage)
llvm::Constant* getOrCreateStaticVarDecl(
const clang::VarDecl& D,
llvm::GlobalValue::LinkageTypes Linkage)
Declared at: clang/lib/CodeGen/CodeGenModule.h:671
Parameters
- const clang::VarDecl& D
- llvm::GlobalValue::LinkageTypes Linkage
¶llvm::IndexedInstrProfReader* getPGOReader() const
llvm::IndexedInstrProfReader* getPGOReader() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:656
¶clang::CodeGen::InstrProfStats& getPGOStats()
clang::CodeGen::InstrProfStats& getPGOStats()
Declared at: clang/lib/CodeGen/CodeGenModule.h:655
¶const clang::PreprocessorOptions&
getPreprocessorOpts() const
const clang::PreprocessorOptions&
getPreprocessorOpts() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:726
¶llvm::SanitizerStatReport& getSanStats()
llvm::SanitizerStatReport& getSanStats()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1482
¶clang::CodeGen::SanitizerMetadata*
getSanitizerMetadata()
clang::CodeGen::SanitizerMetadata*
getSanitizerMetadata()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1362
¶llvm::ConstantInt* getSize(
clang::CharUnits numChars)
llvm::ConstantInt* getSize(
clang::CharUnits numChars)
Description
Emit the given number of characters as a value of type size_t.
Declared at: clang/lib/CodeGen/CodeGenModule.h:819
Parameters
- clang::CharUnits numChars
¶llvm::Constant* getStaticLocalDeclAddress(
const clang::VarDecl* D)
llvm::Constant* getStaticLocalDeclAddress(
const clang::VarDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:662
Parameters
- const clang::VarDecl* D
¶llvm::GlobalVariable*
getStaticLocalDeclGuardAddress(
const clang::VarDecl* D)
llvm::GlobalVariable*
getStaticLocalDeclGuardAddress(
const clang::VarDecl* D)
Declared at: clang/lib/CodeGen/CodeGenModule.h:674
Parameters
- const clang::VarDecl* D
¶clang::CodeGen::TBAAAccessInfo getTBAAAccessInfo(
clang::QualType AccessType)
clang::CodeGen::TBAAAccessInfo getTBAAAccessInfo(
clang::QualType AccessType)
Description
getTBAAAccessInfo - Get TBAA information that describes an access to an object of the given type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:767
Parameters
- clang::QualType AccessType
¶llvm::MDNode* getTBAAAccessTagInfo(
clang::CodeGen::TBAAAccessInfo Info)
llvm::MDNode* getTBAAAccessTagInfo(
clang::CodeGen::TBAAAccessInfo Info)
Description
getTBAAAccessTagInfo - Get TBAA tag for a given memory access.
Declared at: clang/lib/CodeGen/CodeGenModule.h:780
Parameters
¶llvm::MDNode* getTBAABaseTypeInfo(
clang::QualType QTy)
llvm::MDNode* getTBAABaseTypeInfo(
clang::QualType QTy)
Description
getTBAABaseTypeInfo - Get metadata that describes the given base access type. Return null if the type is not suitable for use in TBAA access tags.
Declared at: clang/lib/CodeGen/CodeGenModule.h:777
Parameters
- clang::QualType QTy
¶clang::CodeGen::TBAAAccessInfo
getTBAAInfoForSubobject(
clang::CodeGen::LValue Base,
clang::QualType AccessType)
clang::CodeGen::TBAAAccessInfo
getTBAAInfoForSubobject(
clang::CodeGen::LValue Base,
clang::QualType AccessType)
Description
getTBAAInfoForSubobject - Get TBAA information for an access with a given base lvalue.
Declared at: clang/lib/CodeGen/CodeGenModule.h:799
Parameters
- clang::CodeGen::LValue Base
- clang::QualType AccessType
¶llvm::MDNode* getTBAAStructInfo(
clang::QualType QTy)
llvm::MDNode* getTBAAStructInfo(
clang::QualType QTy)
Declared at: clang/lib/CodeGen/CodeGenModule.h:773
Parameters
- clang::QualType QTy
¶llvm::MDNode* getTBAATypeInfo(clang::QualType QTy)
llvm::MDNode* getTBAATypeInfo(clang::QualType QTy)
Description
getTBAATypeInfo - Get metadata used to describe accesses to objects of the given type.
Declared at: clang/lib/CodeGen/CodeGenModule.h:763
Parameters
- clang::QualType QTy
¶clang::CodeGen::TBAAAccessInfo
getTBAAVTablePtrAccessInfo(
llvm::Type* VTablePtrType)
clang::CodeGen::TBAAAccessInfo
getTBAAVTablePtrAccessInfo(
llvm::Type* VTablePtrType)
Description
getTBAAVTablePtrAccessInfo - Get the TBAA information that describes an access to a virtual table pointer.
Declared at: clang/lib/CodeGen/CodeGenModule.h:771
Parameters
- llvm::Type* VTablePtrType
¶const clang::TargetInfo& getTarget() const
const clang::TargetInfo& getTarget() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:734
¶const clang::CodeGen::TargetCodeGenInfo&
getTargetCodeGenInfo()
const clang::CodeGen::TargetCodeGenInfo&
getTargetCodeGenInfo()
Declared at: clang/lib/CodeGen/CodeGenModule.h:744
¶llvm::FunctionCallee getTerminateFn()
llvm::FunctionCallee getTerminateFn()
Description
Get the declaration of std::terminate for the platform.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1480
¶const llvm::Triple& getTriple() const
const llvm::Triple& getTriple() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:735
¶llvm::Constant* getTypeDescriptorFromMap(
clang::QualType Ty)
llvm::Constant* getTypeDescriptorFromMap(
clang::QualType Ty)
Declared at: clang/lib/CodeGen/CodeGenModule.h:704
Parameters
¶clang::CodeGen::CodeGenTypes& getTypes()
clang::CodeGen::CodeGenTypes& getTypes()
Declared at: clang/lib/CodeGen/CodeGenModule.h:746
¶int getUniqueBlockCount()
int getUniqueBlockCount()
Description
Fetches the global unique block count.
Declared at: clang/lib/CodeGen/CodeGenModule.h:979
¶clang::CharUnits getVBaseAlignment(
clang::CharUnits DerivedAlign,
const clang::CXXRecordDecl* Derived,
const clang::CXXRecordDecl* VBase)
clang::CharUnits getVBaseAlignment(
clang::CharUnits DerivedAlign,
const clang::CXXRecordDecl* Derived,
const clang::CXXRecordDecl* VBase)
Description
Returns the assumed alignment of a virtual base of a class.
Declared at: clang/lib/CodeGen/CodeGenModule.h:953
Parameters
- clang::CharUnits DerivedAlign
- const clang::CXXRecordDecl* Derived
- const clang::CXXRecordDecl* VBase
¶llvm::GlobalVariable::LinkageTypes
getVTableLinkage(const clang::CXXRecordDecl* RD)
llvm::GlobalVariable::LinkageTypes
getVTableLinkage(const clang::CXXRecordDecl* RD)
Description
Return the appropriate linkage for the vtable, VTT, and type information of the given class.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1295
Parameters
- const clang::CXXRecordDecl* RD
¶clang::CodeGen::CodeGenVTables& getVTables()
clang::CodeGen::CodeGenVTables& getVTables()
Declared at: clang/lib/CodeGen/CodeGenModule.h:748
¶bool hasObjCRuntime()
bool hasObjCRuntime()
Description
Return true iff an Objective-C runtime has been configured.
Declared at: clang/lib/CodeGen/CodeGenModule.h:616
¶bool imbueXRayAttrs(llvm::Function* Fn,
clang::SourceLocation Loc,
llvm::StringRef Category =
llvm::StringRef()) const
bool imbueXRayAttrs(llvm::Function* Fn,
clang::SourceLocation Loc,
llvm::StringRef Category =
llvm::StringRef()) const
Description
Imbue XRay attributes to a function, applying the always/never attribute lists in the process. Returns true if we did imbue attributes this way, false otherwise.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1349
Parameters
- llvm::Function* Fn
- clang::SourceLocation Loc
- llvm::StringRef Category = llvm::StringRef()
¶bool isFunctionBlockedByProfileList(
llvm::Function* Fn,
clang::SourceLocation Loc) const
bool isFunctionBlockedByProfileList(
llvm::Function* Fn,
clang::SourceLocation Loc) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:1354
Parameters
Returns
true if \p Fn at \p Loc should be excluded from profile instrumentation by the SCL passed by \p -fprofile-list.
¶bool isFunctionBlockedFromProfileInstr(
llvm::Function* Fn,
clang::SourceLocation Loc) const
bool isFunctionBlockedFromProfileInstr(
llvm::Function* Fn,
clang::SourceLocation Loc) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:1359
Parameters
Returns
true if \p Fn at \p Loc should be excluded from profile instrumentation.
¶bool isInNoSanitizeList(
clang::SanitizerMask Kind,
llvm::GlobalVariable* GV,
clang::SourceLocation Loc,
clang::QualType Ty,
llvm::StringRef Category =
llvm::StringRef()) const
bool isInNoSanitizeList(
clang::SanitizerMask Kind,
llvm::GlobalVariable* GV,
clang::SourceLocation Loc,
clang::QualType Ty,
llvm::StringRef Category =
llvm::StringRef()) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:1342
Parameters
- clang::SanitizerMask Kind
- llvm::GlobalVariable* GV
- clang::SourceLocation Loc
- clang::QualType Ty
- llvm::StringRef Category = llvm::StringRef()
¶bool isInNoSanitizeList(
clang::SanitizerMask Kind,
llvm::Function* Fn,
clang::SourceLocation Loc) const
bool isInNoSanitizeList(
clang::SanitizerMask Kind,
llvm::Function* Fn,
clang::SourceLocation Loc) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:1339
Parameters
¶bool isPaddedAtomicType(
const clang::AtomicType* type)
bool isPaddedAtomicType(
const clang::AtomicType* type)
Declared at: clang/lib/CodeGen/CodeGenModule.h:808
Parameters
- const clang::AtomicType* type
¶bool isPaddedAtomicType(clang::QualType type)
bool isPaddedAtomicType(clang::QualType type)
Declared at: clang/lib/CodeGen/CodeGenModule.h:807
Parameters
- clang::QualType type
¶bool isTriviallyRecursive(
const clang::FunctionDecl* F)
bool isTriviallyRecursive(
const clang::FunctionDecl* F)
Declared at: clang/lib/CodeGen/CodeGenModule.h:538
Parameters
- const clang::FunctionDecl* F
¶bool isTypeConstant(clang::QualType QTy,
bool ExcludeCtorDtor)
bool isTypeConstant(clang::QualType QTy,
bool ExcludeCtorDtor)
Declared at: clang/lib/CodeGen/CodeGenModule.h:805
Parameters
- clang::QualType QTy
- bool ExcludeCtorDtor
¶bool lookupRepresentativeDecl(
llvm::StringRef MangledName,
clang::GlobalDecl& Result) const
bool lookupRepresentativeDecl(
llvm::StringRef MangledName,
clang::GlobalDecl& Result) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:685
Parameters
- llvm::StringRef MangledName
- clang::GlobalDecl& Result
¶void maybeSetTrivialComdat(const clang::Decl& D,
llvm::GlobalObject& GO)
void maybeSetTrivialComdat(const clang::Decl& D,
llvm::GlobalObject& GO)
Declared at: clang/lib/CodeGen/CodeGenModule.h:737
Parameters
- const clang::Decl& D
- llvm::GlobalObject& GO
¶clang::CodeGen::TBAAAccessInfo
mergeTBAAInfoForCast(
clang::CodeGen::TBAAAccessInfo SourceInfo,
clang::CodeGen::TBAAAccessInfo TargetInfo)
clang::CodeGen::TBAAAccessInfo
mergeTBAAInfoForCast(
clang::CodeGen::TBAAAccessInfo SourceInfo,
clang::CodeGen::TBAAAccessInfo TargetInfo)
Description
mergeTBAAInfoForCast - Get merged TBAA information for the purposes of type casts.
Declared at: clang/lib/CodeGen/CodeGenModule.h:784
Parameters
- clang::CodeGen::TBAAAccessInfo SourceInfo
- clang::CodeGen::TBAAAccessInfo TargetInfo
¶clang::CodeGen::TBAAAccessInfo
mergeTBAAInfoForConditionalOperator(
clang::CodeGen::TBAAAccessInfo InfoA,
clang::CodeGen::TBAAAccessInfo InfoB)
clang::CodeGen::TBAAAccessInfo
mergeTBAAInfoForConditionalOperator(
clang::CodeGen::TBAAAccessInfo InfoA,
clang::CodeGen::TBAAAccessInfo InfoB)
Description
mergeTBAAInfoForConditionalOperator - Get merged TBAA information for the purposes of conditional operator.
Declared at: clang/lib/CodeGen/CodeGenModule.h:789
Parameters
¶clang::CodeGen::TBAAAccessInfo
mergeTBAAInfoForMemoryTransfer(
clang::CodeGen::TBAAAccessInfo DestInfo,
clang::CodeGen::TBAAAccessInfo SrcInfo)
clang::CodeGen::TBAAAccessInfo
mergeTBAAInfoForMemoryTransfer(
clang::CodeGen::TBAAAccessInfo DestInfo,
clang::CodeGen::TBAAAccessInfo SrcInfo)
Description
mergeTBAAInfoForMemoryTransfer - Get merged TBAA information for the purposes of memory transfer calls.
Declared at: clang/lib/CodeGen/CodeGenModule.h:794
Parameters
- clang::CodeGen::TBAAAccessInfo DestInfo
- clang::CodeGen::TBAAAccessInfo SrcInfo
¶void moveLazyEmissionStates(
clang::CodeGen::CodeGenModule* NewBuilder)
void moveLazyEmissionStates(
clang::CodeGen::CodeGenModule* NewBuilder)
Description
Move some lazily-emitted states to the NewBuilder. This is especially essential for the incremental parsing environment like Clang Interpreter, because we'll lose all important information after each repl.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1526
Parameters
- clang::CodeGen::CodeGenModule* NewBuilder
¶void printPostfixForExternalizedDecl(
llvm::raw_ostream& OS,
const clang::Decl* D) const
void printPostfixForExternalizedDecl(
llvm::raw_ostream& OS,
const clang::Decl* D) const
Description
Print the postfix for externalized static variable or kernels for single source offloading languages CUDA and HIP. The unique postfix is created using either the CUID argument, or the file's UniqueID and active macros. The fallback method without a CUID requires that the offloading toolchain does not define separate macros via the -cc1 options.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1520
Parameters
- llvm::raw_ostream& OS
- const clang::Decl* D
¶void registerGlobalDtorsWithAtExit()
void registerGlobalDtorsWithAtExit()
Description
Register functions annotated with __attribute__((destructor)) using __cxa_atexit, if it is available, or atexit otherwise.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1634
¶void setAddrOfConstantCompoundLiteral(
const clang::CompoundLiteralExpr* CLE,
llvm::GlobalVariable* GV)
void setAddrOfConstantCompoundLiteral(
const clang::CompoundLiteralExpr* CLE,
llvm::GlobalVariable* GV)
Description
Notes that CLE's GlobalVariable is GV. Asserts that CLE isn't already emitted.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1040
Parameters
- const clang::CompoundLiteralExpr* CLE
- llvm::GlobalVariable* GV
¶void setAddrOfGlobalBlock(
const clang::BlockExpr* BE,
llvm::Constant* Addr)
void setAddrOfGlobalBlock(
const clang::BlockExpr* BE,
llvm::Constant* Addr)
Description
Notes that BE's global block is available via Addr. Asserts that BE isn't already emitted.
Declared at: clang/lib/CodeGen/CodeGenModule.h:998
Parameters
- const clang::BlockExpr* BE
- llvm::Constant* Addr
¶void setAtomicGetterHelperFnMap(
clang::QualType Ty,
llvm::Constant* Fn)
void setAtomicGetterHelperFnMap(
clang::QualType Ty,
llvm::Constant* Fn)
Declared at: clang/lib/CodeGen/CodeGenModule.h:699
Parameters
¶void setAtomicSetterHelperFnMap(
clang::QualType Ty,
llvm::Constant* Fn)
void setAtomicSetterHelperFnMap(
clang::QualType Ty,
llvm::Constant* Fn)
Declared at: clang/lib/CodeGen/CodeGenModule.h:691
Parameters
¶void setDLLImportDLLExport(
llvm::GlobalValue* GV,
clang::GlobalDecl D) const
void setDLLImportDLLExport(
llvm::GlobalValue* GV,
clang::GlobalDecl D) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:834
Parameters
¶void setDLLImportDLLExport(
llvm::GlobalValue* GV,
const clang::NamedDecl* D) const
void setDLLImportDLLExport(
llvm::GlobalValue* GV,
const clang::NamedDecl* D) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:835
Parameters
- llvm::GlobalValue* GV
- const clang::NamedDecl* D
¶void setDSOLocal(llvm::GlobalValue* GV) const
void setDSOLocal(llvm::GlobalValue* GV) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:824
Parameters
¶void setFunctionLinkage(clang::GlobalDecl GD,
llvm::Function* F)
void setFunctionLinkage(clang::GlobalDecl GD,
llvm::Function* F)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1289
Parameters
¶void setGVProperties(llvm::GlobalValue* GV,
clang::GlobalDecl GD) const
void setGVProperties(llvm::GlobalValue* GV,
clang::GlobalDecl GD) const
Description
Set visibility, dllimport/dllexport and dso_local. This must be called after dllimport/dllexport is set.
Declared at: clang/lib/CodeGen/CodeGenModule.h:838
Parameters
¶void setGVProperties(
llvm::GlobalValue* GV,
const clang::NamedDecl* D) const
void setGVProperties(
llvm::GlobalValue* GV,
const clang::NamedDecl* D) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:839
Parameters
- llvm::GlobalValue* GV
- const clang::NamedDecl* D
¶void setGVPropertiesAux(
llvm::GlobalValue* GV,
const clang::NamedDecl* D) const
void setGVPropertiesAux(
llvm::GlobalValue* GV,
const clang::NamedDecl* D) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:841
Parameters
- llvm::GlobalValue* GV
- const clang::NamedDecl* D
¶void setGlobalVisibility(
llvm::GlobalValue* GV,
const clang::NamedDecl* D) const
void setGlobalVisibility(
llvm::GlobalValue* GV,
const clang::NamedDecl* D) const
Description
Set the visibility for the given LLVM GlobalValue.
Declared at: clang/lib/CodeGen/CodeGenModule.h:822
Parameters
- llvm::GlobalValue* GV
- const clang::NamedDecl* D
¶void setLLVMFunctionFEnvAttributes(
const clang::FunctionDecl* D,
llvm::Function* F)
void setLLVMFunctionFEnvAttributes(
const clang::FunctionDecl* D,
llvm::Function* F)
Description
Set the LLVM function attributes that represent floating point environment.
Declared at: clang/lib/CodeGen/CodeGenModule.h:1212
Parameters
- const clang::FunctionDecl* D
- llvm::Function* F
¶void setNonAliasAttributes(clang::GlobalDecl GD,
llvm::GlobalObject* GO)
void setNonAliasAttributes(clang::GlobalDecl GD,
llvm::GlobalObject* GO)
Declared at: clang/lib/CodeGen/CodeGenModule.h:1557
Parameters
¶void setStaticLocalDeclAddress(
const clang::VarDecl* D,
llvm::Constant* C)
void setStaticLocalDeclAddress(
const clang::VarDecl* D,
llvm::Constant* C)
Declared at: clang/lib/CodeGen/CodeGenModule.h:665
Parameters
- const clang::VarDecl* D
- llvm::Constant* C
¶void setStaticLocalDeclGuardAddress(
const clang::VarDecl* D,
llvm::GlobalVariable* C)
void setStaticLocalDeclGuardAddress(
const clang::VarDecl* D,
llvm::GlobalVariable* C)
Declared at: clang/lib/CodeGen/CodeGenModule.h:677
Parameters
- const clang::VarDecl* D
- llvm::GlobalVariable* C
¶void setTLSMode(llvm::GlobalValue* GV,
const clang::VarDecl& D) const
void setTLSMode(llvm::GlobalValue* GV,
const clang::VarDecl& D) const
Description
Set the TLS mode for the given LLVM GlobalValue for the thread-local variable declaration D.
Declared at: clang/lib/CodeGen/CodeGenModule.h:845
Parameters
- llvm::GlobalValue* GV
- const clang::VarDecl& D
¶void setTypeDescriptorInMap(clang::QualType Ty,
llvm::Constant* C)
void setTypeDescriptorInMap(clang::QualType Ty,
llvm::Constant* C)
Declared at: clang/lib/CodeGen/CodeGenModule.h:707
Parameters
¶bool shouldEmitFunction(clang::GlobalDecl GD)
bool shouldEmitFunction(clang::GlobalDecl GD)
Declared at: clang/lib/CodeGen/CodeGenModule.h:539
Parameters
¶bool shouldMapVisibilityToDLLExport(
const clang::NamedDecl* D) const
bool shouldMapVisibilityToDLLExport(
const clang::NamedDecl* D) const
Declared at: clang/lib/CodeGen/CodeGenModule.h:826
Parameters
- const clang::NamedDecl* D
¶bool shouldOpportunisticallyEmitVTables()
bool shouldOpportunisticallyEmitVTables()
Declared at: clang/lib/CodeGen/CodeGenModule.h:540
¶bool shouldUseTBAA() const
bool shouldUseTBAA() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:742
¶bool stopAutoInit()
bool stopAutoInit()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1513
¶bool supportsCOMDAT() const
bool supportsCOMDAT() const
Declared at: clang/lib/CodeGen/CodeGenModule.h:736
¶void unregisterGlobalDtorsWithUnAtExit()
void unregisterGlobalDtorsWithUnAtExit()
Declared at: clang/lib/CodeGen/CodeGenModule.h:1639
¶~CodeGenModule()
~CodeGenModule()
Declared at: clang/lib/CodeGen/CodeGenModule.h:599