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
- public LLVMContextImpl(llvm::LLVMContext & C)
- public void dropTriviallyDeadConstantArrays()
- public bool getOpaquePointers()
- public uint32_t getOperandBundleTagID(llvm::StringRef Tag) const
- public void getOperandBundleTags(SmallVectorImpl<llvm::StringRef> & Tags) const
- public llvm::OptPassGate & getOptPassGate() const
- public StringMapEntry<uint32_t> * getOrInsertBundleTag(llvm::StringRef Tag)
- public SyncScope::ID getOrInsertSyncScopeID(llvm::StringRef SSN)
- public void getSyncScopeNames(SmallVectorImpl<llvm::StringRef> & SSNs) const
- public bool hasOpaquePointersValue()
- public void setOpaquePointers(bool OP)
- public void setOptPassGate(llvm::OptPassGate &)
- public ~LLVMContextImpl()
Methods
¶LLVMContextImpl(llvm::LLVMContext& C)
LLVMContextImpl(llvm::LLVMContext& C)
Declared at: llvm/lib/IR/LLVMContextImpl.h:1549
Parameters
¶void dropTriviallyDeadConstantArrays()
void dropTriviallyDeadConstantArrays()
Description
Destroy the ConstantArrays if they are not used.
Declared at: llvm/lib/IR/LLVMContextImpl.h:1553
¶bool getOpaquePointers()
bool getOpaquePointers()
Declared at: llvm/lib/IR/LLVMContextImpl.h:1570
¶uint32_t getOperandBundleTagID(
llvm::StringRef Tag) const
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
void getOperandBundleTags(
SmallVectorImpl<llvm::StringRef>& Tags) const
Declared at: llvm/lib/IR/LLVMContextImpl.h:1521
Parameters
- SmallVectorImpl<llvm::StringRef>& Tags
¶llvm::OptPassGate& getOptPassGate() const
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)
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)
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
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()
bool hasOpaquePointersValue()
Declared at: llvm/lib/IR/LLVMContextImpl.h:1571
¶void setOpaquePointers(bool OP)
void setOpaquePointers(bool OP)
Declared at: llvm/lib/IR/LLVMContextImpl.h:1572
Parameters
- bool OP
¶void setOptPassGate(llvm::OptPassGate&)
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
¶~LLVMContextImpl()
~LLVMContextImpl()
Declared at: llvm/lib/IR/LLVMContextImpl.h:1550