class LLVMContextImpl

Declaration

class LLVMContextImpl { /* full declaration omitted */ };

Declared at: llvm/lib/IR/LLVMContextImpl.h:1354

Member Variables

public SmallPtrSet<llvm::Module*, 4> OwnedModules
OwnedModules - The set of modules instantiated in this context, and which will be automatically deleted if this context is deleted.
public std::unique_ptr<remarks::RemarkStreamer> MainRemarkStreamer
The main remark streamer used by all the other streamers (e.g. IR, MIR, frontends, etc.). This should only be used by the specific streamers, and never directly.
public std::unique_ptr<DiagnosticHandler> DiagHandler
public bool RespectDiagnosticFilters = false
public bool DiagnosticsHotnessRequested = false
public Optional<uint64_t> DiagnosticsHotnessThreshold = 0
If threshold option is not specified, it is disabled (0) by default.
public Optional<uint64_t> DiagnosticsMisExpectTolerance = 0
The percentage of difference between profiling branch weights and
public bool MisExpectWarningRequested = false
public std::unique_ptr<LLVMRemarkStreamer> LLVMRS
The specialized remark streamer used by LLVM's OptimizationRemarkEmitter.
public LLVMContext::YieldCallbackTy YieldCallback = nullptr
public void* YieldOpaqueHandle = nullptr
public DenseMap<const llvm::Value*, llvm::ValueName*> ValueNames
public llvm::LLVMContextImpl::IntMapTy IntConstants
public llvm::LLVMContextImpl::FPMapTy FPConstants
public FoldingSet<llvm::AttributeImpl> AttrsSet
public FoldingSet<llvm::AttributeListImpl> AttrsLists
public FoldingSet<llvm::AttributeSetNode> AttrsSetNodes
public StringMap<llvm::MDString, llvm::BumpPtrAllocator> MDStringCache
public DenseMap<llvm::Value*, llvm::ValueAsMetadata*> ValuesAsMetadata
public DenseMap<llvm::Metadata*, llvm::MetadataAsValue*> MetadataAsValues
public DenseSet<llvm::MDTuple*, llvm::MDTupleInfo> MDTuples
public DenseSet<llvm::DILocation*, llvm::DILocationInfo> DILocations
public DenseSet<llvm::DIExpression*, llvm::DIExpressionInfo> DIExpressions
public DenseSet<llvm::DIGlobalVariableExpression*, llvm::DIGlobalVariableExpressionInfo> DIGlobalVariableExpressions
public DenseSet<llvm::GenericDINode*, llvm::GenericDINodeInfo> GenericDINodes
public DenseSet<llvm::DISubrange*, llvm::DISubrangeInfo> DISubranges
public DenseSet<llvm::DIEnumerator*, llvm::DIEnumeratorInfo> DIEnumerators
public DenseSet<llvm::DIBasicType*, llvm::DIBasicTypeInfo> DIBasicTypes
public DenseSet<llvm::DIDerivedType*, llvm::DIDerivedTypeInfo> DIDerivedTypes
public DenseSet<llvm::DICompositeType*, llvm::DICompositeTypeInfo> DICompositeTypes
public DenseSet<llvm::DISubroutineType*, llvm::DISubroutineTypeInfo> DISubroutineTypes
public DenseSet<llvm::DIFile*, llvm::DIFileInfo> DIFiles
public DenseSet<llvm::DISubprogram*, llvm::DISubprogramInfo> DISubprograms
public DenseSet<llvm::DILexicalBlock*, llvm::DILexicalBlockInfo> DILexicalBlocks
public DenseSet<llvm::DILexicalBlockFile*, llvm::DILexicalBlockFileInfo> DILexicalBlockFiles
public DenseSet<llvm::DINamespace*, llvm::DINamespaceInfo> DINamespaces
public DenseSet<llvm::DIModule*, llvm::DIModuleInfo> DIModules
public DenseSet<llvm::DITemplateTypeParameter*, llvm::DITemplateTypeParameterInfo> DITemplateTypeParameters
public DenseSet<llvm::DITemplateValueParameter*, llvm::DITemplateValueParameterInfo> DITemplateValueParameters
public DenseSet<llvm::DIGlobalVariable*, llvm::DIGlobalVariableInfo> DIGlobalVariables
public DenseSet<llvm::DILocalVariable*, llvm::DILocalVariableInfo> DILocalVariables
public DenseSet<llvm::DILabel*, llvm::DILabelInfo> DILabels
public DenseSet<llvm::DIObjCProperty*, llvm::DIObjCPropertyInfo> DIObjCPropertys
public DenseSet<llvm::DIImportedEntity*, llvm::DIImportedEntityInfo> DIImportedEntitys
public DenseSet<llvm::DIMacro*, llvm::DIMacroInfo> DIMacros
public DenseSet<llvm::DIMacroFile*, llvm::DIMacroFileInfo> DIMacroFiles
public DenseSet<llvm::DICommonBlock*, llvm::DICommonBlockInfo> DICommonBlocks
public DenseSet<llvm::DIArgList*, llvm::DIArgListInfo> DIArgLists
public DenseSet<llvm::DIStringType*, llvm::DIStringTypeInfo> DIStringTypes
public DenseSet<llvm::DIGenericSubrange*, llvm::DIGenericSubrangeInfo> DIGenericSubranges
public Optional<DenseMap<const llvm::MDString*, llvm::DICompositeType*>> DITypeMap
public std::vector<MDNode*> DistinctMDNodes
public DenseMap<llvm::Type*, std::unique_ptr<ConstantAggregateZero>> CAZConstants
public llvm::LLVMContextImpl::ArrayConstantsTy ArrayConstants
public llvm::LLVMContextImpl::StructConstantsTy StructConstants
public llvm::LLVMContextImpl::VectorConstantsTy VectorConstants
public DenseMap<llvm::PointerType*, std::unique_ptr<ConstantPointerNull>> CPNConstants
public DenseMap<llvm::Type*, std::unique_ptr<UndefValue>> UVConstants
public DenseMap<llvm::Type*, std::unique_ptr<PoisonValue>> PVConstants
public StringMap<std::unique_ptr<ConstantDataSequential>> CDSConstants
public DenseMap< std::pair<const Function*, const BasicBlock*>, llvm::BlockAddress*> BlockAddresses
public DenseMap<const llvm::GlobalValue*, llvm::DSOLocalEquivalent*> DSOLocalEquivalents
public DenseMap<const llvm::GlobalValue*, llvm::NoCFIValue*> NoCFIValues
public ConstantUniqueMap<llvm::ConstantExpr> ExprConstants
public ConstantUniqueMap<llvm::InlineAsm> InlineAsms
public llvm::ConstantInt* TheTrueVal = nullptr
public llvm::ConstantInt* TheFalseVal = nullptr
public llvm::Type VoidTy
public llvm::Type LabelTy
public llvm::Type HalfTy
public llvm::Type BFloatTy
public llvm::Type FloatTy
public llvm::Type DoubleTy
public llvm::Type MetadataTy
public llvm::Type TokenTy
public llvm::Type X86_FP80Ty
public llvm::Type FP128Ty
public llvm::Type PPC_FP128Ty
public llvm::Type X86_MMXTy
public llvm::Type X86_AMXTy
public llvm::IntegerType Int1Ty
public llvm::IntegerType Int8Ty
public llvm::IntegerType Int16Ty
public llvm::IntegerType Int32Ty
public llvm::IntegerType Int64Ty
public llvm::IntegerType Int128Ty
public std::unique_ptr<ConstantTokenNone> TheNoneToken
public llvm::BumpPtrAllocator Alloc
public llvm::UniqueStringSaver Saver = {this->Alloc}
public DenseMap<unsigned int, llvm::IntegerType*> IntegerTypes
public llvm::LLVMContextImpl::FunctionTypeSet FunctionTypes
public llvm::LLVMContextImpl::StructTypeSet AnonStructTypes
public StringMap<llvm::StructType*> NamedStructTypes
public unsigned int NamedStructTypesUniqueID = 0
public DenseMap<std::pair<Type*, uint64_t>, llvm::ArrayType*> ArrayTypes
public DenseMap<std::pair<Type*, ElementCount>, llvm::VectorType*> VectorTypes
public DenseMap<llvm::Type*, llvm::PointerType*> PointerTypes
public DenseMap<std::pair<Type*, unsigned int>, llvm::PointerType*> ASPointerTypes
public llvm::LLVMContextImpl::ValueHandlesTy ValueHandles
public StringMap<unsigned int> CustomMDKindNames
CustomMDKindNames - Map to hold the metadata string to ID mapping.
public DenseMap<const llvm::Value*, llvm::MDAttachments> ValueMetadata
Collection of metadata used in this context.
public DenseMap<const llvm::GlobalObject*, llvm::StringRef> GlobalObjectSections
Collection of per-GlobalObject sections used in this context.
public DenseMap<const llvm::GlobalValue*, llvm::StringRef> GlobalValuePartitions
Collection of per-GlobalValue partitions used in this context.
public DenseMap<const llvm::GlobalValue*, GlobalValue::SanitizerMetadata> GlobalValueSanitizerMetadata
public DenseMap<std::pair<const char*, unsigned int>, unsigned int> DiscriminatorTable
DiscriminatorTable - This table maps file:line locations to an integer representing the next DWARF path discriminator to assign to instructions in different blocks at the same location.
public StringMap<uint32_t> BundleTagCache
public StringMap<SyncScope::ID> SSC
A set of interned synchronization scopes. The StringMap maps synchronization scope names to their respective synchronization scope IDs.
public DenseMap<const llvm::Function*, std::string> GCNames
This saves allocating an additional word in Function for programs which do not use GC (i.e., most programs) at the cost of increased overhead for clients which do use GC.
public bool DiscardValueNames = false
Flag to indicate if Value (other than GlobalValue) retains their name or not.
public llvm::OptPassGate* OPG = nullptr
public llvm::Any TargetDataStorage
private Optional<bool> OpaquePointers

Method Overview

Methods

LLVMContextImpl(llvm::LLVMContext& C)

Declared at: llvm/lib/IR/LLVMContextImpl.h:1549

Parameters

llvm::LLVMContext& C

void dropTriviallyDeadConstantArrays()

Description

Destroy the ConstantArrays if they are not used.

Declared at: llvm/lib/IR/LLVMContextImpl.h:1553

bool getOpaquePointers()

Declared at: llvm/lib/IR/LLVMContextImpl.h:1570

uint32_t getOperandBundleTagID(
    llvm::StringRef Tag) const

Declared at: llvm/lib/IR/LLVMContextImpl.h:1522

Parameters

llvm::StringRef Tag

void getOperandBundleTags(
    SmallVectorImpl<llvm::StringRef>& Tags) const

Declared at: llvm/lib/IR/LLVMContextImpl.h:1521

Parameters

SmallVectorImpl<llvm::StringRef>& Tags

llvm::OptPassGate& getOptPassGate() const

Description

Access the object which can disable optional passes and individual optimizations at compile time.

Declared at: llvm/lib/IR/LLVMContextImpl.h:1559

StringMapEntry<uint32_t>* getOrInsertBundleTag(
    llvm::StringRef Tag)

Declared at: llvm/lib/IR/LLVMContextImpl.h:1520

Parameters

llvm::StringRef Tag

SyncScope::ID getOrInsertSyncScopeID(
    llvm::StringRef SSN)

Description

getOrInsertSyncScopeID - Maps synchronization scope name to synchronization scope ID. Every synchronization scope registered with LLVMContext has unique ID except pre-defined ones.

Declared at: llvm/lib/IR/LLVMContextImpl.h:1531

Parameters

llvm::StringRef SSN

void getSyncScopeNames(
    SmallVectorImpl<llvm::StringRef>& SSNs) const

Description

getSyncScopeNames - Populates client supplied SmallVector with synchronization scope names registered with LLVMContext. Synchronization scope names are ordered by increasing synchronization scope IDs.

Declared at: llvm/lib/IR/LLVMContextImpl.h:1536

Parameters

SmallVectorImpl<llvm::StringRef>& SSNs

bool hasOpaquePointersValue()

Declared at: llvm/lib/IR/LLVMContextImpl.h:1571

void setOpaquePointers(bool OP)

Declared at: llvm/lib/IR/LLVMContextImpl.h:1572

Parameters

bool OP

void setOptPassGate(llvm::OptPassGate&)

Description

Set the object which can disable optional passes and individual optimizations at compile time. The lifetime of the object must be guaranteed to extend as long as the LLVMContext is used by compilation.

Declared at: llvm/lib/IR/LLVMContextImpl.h:1566

Parameters

llvm::OptPassGate&

~LLVMContextImpl()

Declared at: llvm/lib/IR/LLVMContextImpl.h:1550