class LLVMContextImpl
Declaration
class LLVMContextImpl { /* full declaration omitted */ };
Declared at: llvm/lib/IR/LLVMContextImpl.h:1242
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 LLVMContext::InlineAsmDiagHandlerTy InlineAsmDiagHandler = nullptr
- public void* InlineAsmDiagContext = nullptr
- public std::unique_ptr<DiagnosticHandler> DiagHandler
- public bool RespectDiagnosticFilters = false
- public bool DiagnosticsHotnessRequested = false
- public uint64_t DiagnosticsHotnessThreshold = 0
- public std::unique_ptr<RemarkStreamer> RemarkDiagStreamer
- public LLVMContext::YieldCallbackTy YieldCallback = nullptr
- public void* YieldOpaqueHandle = nullptr
- 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 DenseMap<const llvm::Value*, llvm::ValueName*> ValueNames
- 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 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 StringMap<llvm::ConstantDataSequential*> CDSConstants
- public DenseMap< std::pair<const Function*, const BasicBlock*>, llvm::BlockAddress*> BlockAddresses
- public ConstantUniqueMap<llvm::ConstantExpr> ExprConstants
- public ConstantUniqueMap<llvm::InlineAsm> InlineAsms
- public llvm::ConstantInt* TheTrueVal = nullptr
- public llvm::ConstantInt* TheFalseVal = nullptr
- public std::unique_ptr<ConstantTokenNone> TheNoneToken
- public llvm::Type VoidTy
- public llvm::Type LabelTy
- public llvm::Type HalfTy
- 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::IntegerType Int1Ty
- public llvm::IntegerType Int8Ty
- public llvm::IntegerType Int16Ty
- public llvm::IntegerType Int32Ty
- public llvm::IntegerType Int64Ty
- public llvm::IntegerType Int128Ty
- 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::Instruction*, llvm::MDAttachmentMap> InstructionMetadata
- Collection of per-instruction metadata used in this context.
- public DenseMap<const llvm::GlobalObject*, llvm::MDGlobalAttachmentMap> GlobalObjectMetadata
- Collection of per-GlobalObject 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<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
Method Overview
- public LLVMContextImpl(llvm::LLVMContext & C)
- public void dropTriviallyDeadConstantArrays()
- public uint32_t getOperandBundleTagID(llvm::StringRef Tag) const
- public void getOperandBundleTags(SmallVectorImpl<llvm::StringRef> & Tags) const
- public llvm::OptPassGate & getOptPassGate() const
- public int getOrAddScopeInlinedAtIdxEntry(llvm::MDNode * Scope, llvm::MDNode * IA, int ExistingIdx)
- public int getOrAddScopeRecordIdxEntry(llvm::MDNode * N, int ExistingIdx)
- public StringMapEntry<uint32_t> * getOrInsertBundleTag(llvm::StringRef Tag)
- public SyncScope::ID getOrInsertSyncScopeID(llvm::StringRef SSN)
- public void getSyncScopeNames(SmallVectorImpl<llvm::StringRef> & SSNs) const
- public void setOptPassGate(llvm::OptPassGate &)
- public ~LLVMContextImpl()
Methods
¶LLVMContextImpl(llvm::LLVMContext& C)
LLVMContextImpl(llvm::LLVMContext& C)
Declared at: llvm/lib/IR/LLVMContextImpl.h:1405
Parameters
¶void dropTriviallyDeadConstantArrays()
void dropTriviallyDeadConstantArrays()
Description
Destroy the ConstantArrays if they are not used.
Declared at: llvm/lib/IR/LLVMContextImpl.h:1409
¶uint32_t getOperandBundleTagID(
llvm::StringRef Tag) const
uint32_t getOperandBundleTagID(
llvm::StringRef Tag) const
Declared at: llvm/lib/IR/LLVMContextImpl.h:1378
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:1377
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:1415
¶int getOrAddScopeInlinedAtIdxEntry(
llvm::MDNode* Scope,
llvm::MDNode* IA,
int ExistingIdx)
int getOrAddScopeInlinedAtIdxEntry(
llvm::MDNode* Scope,
llvm::MDNode* IA,
int ExistingIdx)
Declared at: llvm/lib/IR/LLVMContextImpl.h:1368
Parameters
- llvm::MDNode* Scope
- llvm::MDNode* IA
- int ExistingIdx
¶int getOrAddScopeRecordIdxEntry(llvm::MDNode* N,
int ExistingIdx)
int getOrAddScopeRecordIdxEntry(llvm::MDNode* N,
int ExistingIdx)
Declared at: llvm/lib/IR/LLVMContextImpl.h:1367
Parameters
- llvm::MDNode* N
- int ExistingIdx
¶StringMapEntry<uint32_t>* getOrInsertBundleTag(
llvm::StringRef Tag)
StringMapEntry<uint32_t>* getOrInsertBundleTag(
llvm::StringRef Tag)
Declared at: llvm/lib/IR/LLVMContextImpl.h:1376
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:1387
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:1392
Parameters
- SmallVectorImpl<llvm::StringRef>& SSNs
¶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:1422
Parameters
¶~LLVMContextImpl()
~LLVMContextImpl()
Declared at: llvm/lib/IR/LLVMContextImpl.h:1406