LLVM 22.0.0git
llvm::LLVMContextImpl Class Reference

#include "IR/LLVMContextImpl.h"

Public Types

using ArrayConstantsTy = ConstantUniqueMap<ConstantArray>
using StructConstantsTy = ConstantUniqueMap<ConstantStruct>
using VectorConstantsTy = ConstantUniqueMap<ConstantVector>
using FunctionTypeSet = DenseSet<FunctionType *, FunctionTypeKeyInfo>
using StructTypeSet = DenseSet<StructType *, AnonStructTypeKeyInfo>
using TargetExtTypeSet = DenseSet<TargetExtType *, TargetExtTypeKeyInfo>
using ValueHandlesTy = DenseMap<Value *, ValueHandleBase *>
 ValueHandles - This map keeps track of all of the value handles that are watching a Value*.

Public Member Functions

StringMapEntry< uint32_t > * getOrInsertBundleTag (StringRef Tag)
void getOperandBundleTags (SmallVectorImpl< StringRef > &Tags) const
uint32_t getOperandBundleTagID (StringRef Tag) const
SyncScope::ID getOrInsertSyncScopeID (StringRef SSN)
 getOrInsertSyncScopeID - Maps synchronization scope name to synchronization scope ID.
void getSyncScopeNames (SmallVectorImpl< StringRef > &SSNs) const
 getSyncScopeNames - Populates client supplied SmallVector with synchronization scope names registered with LLVMContext.
std::optional< StringRefgetSyncScopeName (SyncScope::ID Id) const
 getSyncScopeName - Returns the name of a SyncScope::ID registered with LLVMContext, if any.
 LLVMContextImpl (LLVMContext &C)
 ~LLVMContextImpl ()
OptPassGategetOptPassGate () const
 Access the object which can disable optional passes and individual optimizations at compile time.
void setOptPassGate (OptPassGate &)
 Set the object which can disable optional passes and individual optimizations at compile time.
void setTrailingDbgRecords (BasicBlock *B, DbgMarker *M)
DbgMarkergetTrailingDbgRecords (BasicBlock *B)
void deleteTrailingDbgRecords (BasicBlock *B)

Public Attributes

SmallPtrSet< Module *, 4 > OwnedModules
 OwnedModules - The set of modules instantiated in this context, and which will be automatically deleted if this context is deleted.
DenseMap< Module *, unsignedMachineFunctionNums
 MachineFunctionNums - Keep the next available unique number available for a MachineFunction in given module.
std::unique_ptr< remarks::RemarkStreamerMainRemarkStreamer
 The main remark streamer used by all the other streamers (e.g.
std::unique_ptr< DiagnosticHandlerDiagHandler
bool RespectDiagnosticFilters = false
bool DiagnosticsHotnessRequested = false
std::optional< uint64_tDiagnosticsHotnessThreshold = 0
 The minimum hotness value a diagnostic needs in order to be included in optimization diagnostics.
std::optional< uint32_tDiagnosticsMisExpectTolerance = 0
 The percentage of difference between profiling branch weights and llvm.expect branch weights to tolerate when emiting MisExpect diagnostics.
bool MisExpectWarningRequested = false
std::unique_ptr< LLVMRemarkStreamerLLVMRS
 The specialized remark streamer used by LLVM's OptimizationRemarkEmitter.
LLVMContext::YieldCallbackTy YieldCallback = nullptr
void * YieldOpaqueHandle = nullptr
DenseMap< const Value *, ValueName * > ValueNames
DenseMap< unsigned, std::unique_ptr< ConstantInt > > IntZeroConstants
DenseMap< unsigned, std::unique_ptr< ConstantInt > > IntOneConstants
DenseMap< APInt, std::unique_ptr< ConstantInt > > IntConstants
DenseMap< std::pair< ElementCount, APInt >, std::unique_ptr< ConstantInt > > IntSplatConstants
DenseMap< APFloat, std::unique_ptr< ConstantFP > > FPConstants
DenseMap< std::pair< ElementCount, APFloat >, std::unique_ptr< ConstantFP > > FPSplatConstants
FoldingSet< AttributeImplAttrsSet
FoldingSet< AttributeListImplAttrsLists
FoldingSet< AttributeSetNodeAttrsSetNodes
StringMap< MDString, BumpPtrAllocatorMDStringCache
DenseMap< Value *, ValueAsMetadata * > ValuesAsMetadata
DenseMap< Metadata *, MetadataAsValue * > MetadataAsValues
DenseSet< DIArgList *, DIArgListInfoDIArgLists
std::optional< DenseMap< const MDString *, DICompositeType * > > DITypeMap
std::vector< MDNode * > DistinctMDNodes
std::vector< ConstantRangeListAttributeImpl * > ConstantRangeListAttributes
DenseMap< Type *, std::unique_ptr< ConstantAggregateZero > > CAZConstants
ArrayConstantsTy ArrayConstants
StructConstantsTy StructConstants
VectorConstantsTy VectorConstants
DenseMap< PointerType *, std::unique_ptr< ConstantPointerNull > > CPNConstants
DenseMap< TargetExtType *, std::unique_ptr< ConstantTargetNone > > CTNConstants
DenseMap< Type *, std::unique_ptr< UndefValue > > UVConstants
DenseMap< Type *, std::unique_ptr< PoisonValue > > PVConstants
StringMap< std::unique_ptr< ConstantDataSequential > > CDSConstants
DenseMap< const BasicBlock *, BlockAddress * > BlockAddresses
DenseMap< const GlobalValue *, DSOLocalEquivalent * > DSOLocalEquivalents
DenseMap< const GlobalValue *, NoCFIValue * > NoCFIValues
ConstantUniqueMap< ConstantPtrAuthConstantPtrAuths
ConstantUniqueMap< ConstantExprExprConstants
ConstantUniqueMap< InlineAsmInlineAsms
ConstantIntTheTrueVal = nullptr
ConstantIntTheFalseVal = nullptr
Type VoidTy
Type LabelTy
Type HalfTy
Type BFloatTy
Type FloatTy
Type DoubleTy
Type MetadataTy
Type TokenTy
Type X86_FP80Ty
Type FP128Ty
Type PPC_FP128Ty
Type X86_AMXTy
IntegerType Int1Ty
IntegerType Int8Ty
IntegerType Int16Ty
IntegerType Int32Ty
IntegerType Int64Ty
IntegerType Int128Ty
std::unique_ptr< ConstantTokenNoneTheNoneToken
BumpPtrAllocator Alloc
UniqueStringSaver Saver {Alloc}
SpecificBumpPtrAllocator< ConstantRangeAttributeImplConstantRangeAttributeAlloc
DenseMap< unsigned, IntegerType * > IntegerTypes
FunctionTypeSet FunctionTypes
StructTypeSet AnonStructTypes
StringMap< StructType * > NamedStructTypes
unsigned NamedStructTypesUniqueID = 0
TargetExtTypeSet TargetExtTypes
DenseMap< std::pair< Type *, uint64_t >, ArrayType * > ArrayTypes
DenseMap< std::pair< Type *, ElementCount >, VectorType * > VectorTypes
PointerTypeAS0PointerType = nullptr
DenseMap< unsigned, PointerType * > PointerTypes
DenseMap< std::pair< Type *, unsigned >, TypedPointerType * > ASTypedPointerTypes
ValueHandlesTy ValueHandles
StringMap< unsignedCustomMDKindNames
 CustomMDKindNames - Map to hold the metadata string to ID mapping.
DenseMap< const Value *, MDAttachmentsValueMetadata
 Collection of metadata used in this context.
DenseMap< DIAssignID *, SmallVector< Instruction *, 1 > > AssignmentIDToInstrs
 Map DIAssignID -> Instructions with that attachment.
DenseMap< const GlobalObject *, StringRefGlobalObjectSections
 Collection of per-GlobalObject sections used in this context.
DenseMap< const GlobalValue *, StringRefGlobalValuePartitions
 Collection of per-GlobalValue partitions used in this context.
DenseMap< const GlobalValue *, GlobalValue::SanitizerMetadataGlobalValueSanitizerMetadata
DenseMap< std::pair< const char *, unsigned >, unsignedDiscriminatorTable
 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.
StringMap< uint32_tBundleTagCache
 A set of interned tags for operand bundles.
StringMap< SyncScope::IDSSC
 A set of interned synchronization scopes.
DenseMap< const Function *, std::string > GCNames
 Maintain the GC name for each function.
bool DiscardValueNames = false
 Flag to indicate if Value (other than GlobalValue) retains their name or not.
OptPassGateOPG = nullptr
SmallDenseMap< BasicBlock *, DbgMarker * > TrailingDbgRecords
 Mapping of blocks to collections of "trailing" DbgVariableRecords.
std::string DefaultTargetCPU
std::string DefaultTargetFeatures
uint64_t NextAtomGroup = 1
 The next available source atom group number.

Detailed Description

Definition at line 1617 of file LLVMContextImpl.h.

Member Typedef Documentation

◆ ArrayConstantsTy

◆ FunctionTypeSet

◆ StructConstantsTy

◆ StructTypeSet

◆ TargetExtTypeSet

◆ ValueHandlesTy

ValueHandles - This map keeps track of all of the value handles that are watching a Value*.

The Value::HasValueHandle bit is used to know whether or not a value has an entry in this map.

Definition at line 1777 of file LLVMContextImpl.h.

◆ VectorConstantsTy

Constructor & Destructor Documentation

◆ LLVMContextImpl()

◆ ~LLVMContextImpl()

Member Function Documentation

◆ deleteTrailingDbgRecords()

void llvm::LLVMContextImpl::deleteTrailingDbgRecords ( BasicBlock * B)
inline

Definition at line 1886 of file LLVMContextImpl.h.

References B(), and TrailingDbgRecords.

◆ getOperandBundleTagID()

uint32_t LLVMContextImpl::getOperandBundleTagID ( StringRef Tag) const

Definition at line 196 of file LLVMContextImpl.cpp.

References assert(), BundleTagCache, I, and llvm::Tag.

◆ getOperandBundleTags()

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

Definition at line 190 of file LLVMContextImpl.cpp.

References BundleTagCache, llvm::SmallVectorImpl< T >::resize(), and T.

◆ getOptPassGate()

OptPassGate & LLVMContextImpl::getOptPassGate ( ) const

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

Gets the OptPassGate for this LLVMContextImpl, which defaults to the singleton OptBisect if not explicitly set.

Definition at line 228 of file LLVMContextImpl.cpp.

References llvm::getGlobalPassGate(), and OPG.

◆ getOrInsertBundleTag()

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

Definition at line 185 of file LLVMContextImpl.cpp.

References BundleTagCache, and llvm::Tag.

◆ getOrInsertSyncScopeID()

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

getOrInsertSyncScopeID - Maps synchronization scope name to synchronization scope ID.

Every synchronization scope registered with LLVMContext has unique ID except pre-defined ones.

Definition at line 202 of file LLVMContextImpl.cpp.

References assert(), and SSC.

◆ getSyncScopeName()

std::optional< StringRef > LLVMContextImpl::getSyncScopeName ( SyncScope::ID Id) const

getSyncScopeName - Returns the name of a SyncScope::ID registered with LLVMContext, if any.

Definition at line 217 of file LLVMContextImpl.cpp.

References SSC, and llvm::SSE.

◆ getSyncScopeNames()

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

getSyncScopeNames - Populates client supplied SmallVector with synchronization scope names registered with LLVMContext.

Synchronization scope names are ordered by increasing synchronization scope IDs.

Definition at line 209 of file LLVMContextImpl.cpp.

References llvm::SmallVectorImpl< T >::resize(), SSC, and llvm::SSE.

◆ getTrailingDbgRecords()

DbgMarker * llvm::LLVMContextImpl::getTrailingDbgRecords ( BasicBlock * B)
inline

Definition at line 1882 of file LLVMContextImpl.h.

References B(), and TrailingDbgRecords.

◆ setOptPassGate()

void LLVMContextImpl::setOptPassGate ( OptPassGate & OPG)

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.

Definition at line 234 of file LLVMContextImpl.cpp.

References OPG.

◆ setTrailingDbgRecords()

void llvm::LLVMContextImpl::setTrailingDbgRecords ( BasicBlock * B,
DbgMarker * M )
inline

Definition at line 1877 of file LLVMContextImpl.h.

References assert(), B(), and TrailingDbgRecords.

Member Data Documentation

◆ Alloc

BumpPtrAllocator llvm::LLVMContextImpl::Alloc

Definition at line 1751 of file LLVMContextImpl.h.

Referenced by llvm::TypedPointerType::get().

◆ AnonStructTypes

StructTypeSet llvm::LLVMContextImpl::AnonStructTypes

Definition at line 1761 of file LLVMContextImpl.h.

◆ ArrayConstants

ArrayConstantsTy llvm::LLVMContextImpl::ArrayConstants

Definition at line 1710 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ ArrayTypes

DenseMap<std::pair<Type *, uint64_t>, ArrayType *> llvm::LLVMContextImpl::ArrayTypes

Definition at line 1768 of file LLVMContextImpl.h.

◆ AS0PointerType

PointerType* llvm::LLVMContextImpl::AS0PointerType = nullptr

Definition at line 1770 of file LLVMContextImpl.h.

◆ AssignmentIDToInstrs

DenseMap<DIAssignID *, SmallVector<Instruction *, 1> > llvm::LLVMContextImpl::AssignmentIDToInstrs

Map DIAssignID -> Instructions with that attachment.

Managed by Instruction via Instruction::updateDIAssignIDMapping. Query using the at:: functions defined in DebugInfo.h.

Definition at line 1789 of file LLVMContextImpl.h.

◆ ASTypedPointerTypes

DenseMap<std::pair<Type *, unsigned>, TypedPointerType *> llvm::LLVMContextImpl::ASTypedPointerTypes

Definition at line 1772 of file LLVMContextImpl.h.

Referenced by llvm::TypedPointerType::get().

◆ AttrsLists

FoldingSet<AttributeListImpl> llvm::LLVMContextImpl::AttrsLists

Definition at line 1679 of file LLVMContextImpl.h.

◆ AttrsSet

FoldingSet<AttributeImpl> llvm::LLVMContextImpl::AttrsSet

Definition at line 1678 of file LLVMContextImpl.h.

◆ AttrsSetNodes

FoldingSet<AttributeSetNode> llvm::LLVMContextImpl::AttrsSetNodes

Definition at line 1680 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ BFloatTy

Type llvm::LLVMContextImpl::BFloatTy

Definition at line 1744 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ BlockAddresses

DenseMap<const BasicBlock *, BlockAddress *> llvm::LLVMContextImpl::BlockAddresses

Definition at line 1728 of file LLVMContextImpl.h.

Referenced by llvm::BlockAddress::get(), and llvm::BlockAddress::lookup().

◆ BundleTagCache

StringMap<uint32_t> llvm::LLVMContextImpl::BundleTagCache

A set of interned tags for operand bundles.

The StringMap maps bundle tags to their IDs.

See also
LLVMContext::getOperandBundleTagID

Definition at line 1809 of file LLVMContextImpl.h.

Referenced by getOperandBundleTagID(), getOperandBundleTags(), and getOrInsertBundleTag().

◆ CAZConstants

DenseMap<Type *, std::unique_ptr<ConstantAggregateZero> > llvm::LLVMContextImpl::CAZConstants

Definition at line 1707 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ CDSConstants

StringMap<std::unique_ptr<ConstantDataSequential> > llvm::LLVMContextImpl::CDSConstants

Definition at line 1726 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ ConstantPtrAuths

ConstantUniqueMap<ConstantPtrAuth> llvm::LLVMContextImpl::ConstantPtrAuths

Definition at line 1734 of file LLVMContextImpl.h.

Referenced by llvm::ConstantPtrAuth::get().

◆ ConstantRangeAttributeAlloc

SpecificBumpPtrAllocator<ConstantRangeAttributeImpl> llvm::LLVMContextImpl::ConstantRangeAttributeAlloc

Definition at line 1754 of file LLVMContextImpl.h.

◆ ConstantRangeListAttributes

std::vector<ConstantRangeListAttributeImpl *> llvm::LLVMContextImpl::ConstantRangeListAttributes

Definition at line 1705 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ CPNConstants

DenseMap<PointerType *, std::unique_ptr<ConstantPointerNull> > llvm::LLVMContextImpl::CPNConstants

Definition at line 1718 of file LLVMContextImpl.h.

Referenced by llvm::ConstantPointerNull::get(), and ~LLVMContextImpl().

◆ CTNConstants

DenseMap<TargetExtType *, std::unique_ptr<ConstantTargetNone> > llvm::LLVMContextImpl::CTNConstants

Definition at line 1720 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ CustomMDKindNames

StringMap<unsigned> llvm::LLVMContextImpl::CustomMDKindNames

CustomMDKindNames - Map to hold the metadata string to ID mapping.

Definition at line 1781 of file LLVMContextImpl.h.

◆ DefaultTargetCPU

std::string llvm::LLVMContextImpl::DefaultTargetCPU

Definition at line 1888 of file LLVMContextImpl.h.

◆ DefaultTargetFeatures

std::string llvm::LLVMContextImpl::DefaultTargetFeatures

Definition at line 1889 of file LLVMContextImpl.h.

◆ DiagHandler

std::unique_ptr<DiagnosticHandler> llvm::LLVMContextImpl::DiagHandler

Definition at line 1632 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ DiagnosticsHotnessRequested

bool llvm::LLVMContextImpl::DiagnosticsHotnessRequested = false

Definition at line 1634 of file LLVMContextImpl.h.

◆ DiagnosticsHotnessThreshold

std::optional<uint64_t> llvm::LLVMContextImpl::DiagnosticsHotnessThreshold = 0

The minimum hotness value a diagnostic needs in order to be included in optimization diagnostics.

The threshold is an Optional value, which maps to one of the 3 states: 1). 0 => threshold disabled. All emarks will be printed. 2). positive int => manual threshold by user. Remarks with hotness exceed threshold will be printed. 3). None => 'auto' threshold by user. The actual value is not available at command line, but will be synced with hotness threhold from profile summary during compilation.

State 1 and 2 are considered as terminal states. State transition is only allowed from 3 to 2, when the threshold is first synced with profile summary. This ensures that the threshold is set only once and stays constant.

If threshold option is not specified, it is disabled (0) by default.

Definition at line 1653 of file LLVMContextImpl.h.

◆ DiagnosticsMisExpectTolerance

std::optional<uint32_t> llvm::LLVMContextImpl::DiagnosticsMisExpectTolerance = 0

The percentage of difference between profiling branch weights and llvm.expect branch weights to tolerate when emiting MisExpect diagnostics.

Definition at line 1657 of file LLVMContextImpl.h.

◆ DIArgLists

DenseSet<DIArgList *, DIArgListInfo> llvm::LLVMContextImpl::DIArgLists

Definition at line 1685 of file LLVMContextImpl.h.

Referenced by llvm::DIArgList::handleChangedOperand(), and ~LLVMContextImpl().

◆ DiscardValueNames

bool llvm::LLVMContextImpl::DiscardValueNames = false

Flag to indicate if Value (other than GlobalValue) retains their name or not.

Definition at line 1842 of file LLVMContextImpl.h.

◆ DiscriminatorTable

DenseMap<std::pair<const char *, unsigned>, unsigned> llvm::LLVMContextImpl::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.

Definition at line 1803 of file LLVMContextImpl.h.

◆ DistinctMDNodes

std::vector<MDNode *> llvm::LLVMContextImpl::DistinctMDNodes

Definition at line 1698 of file LLVMContextImpl.h.

Referenced by llvm::MDNode::storeDistinctInContext(), and ~LLVMContextImpl().

◆ DITypeMap

std::optional<DenseMap<const MDString *, DICompositeType *> > llvm::LLVMContextImpl::DITypeMap

Definition at line 1692 of file LLVMContextImpl.h.

◆ DoubleTy

Type llvm::LLVMContextImpl::DoubleTy

Definition at line 1744 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ DSOLocalEquivalents

DenseMap<const GlobalValue *, DSOLocalEquivalent *> llvm::LLVMContextImpl::DSOLocalEquivalents

Definition at line 1730 of file LLVMContextImpl.h.

Referenced by llvm::DSOLocalEquivalent::get().

◆ ExprConstants

◆ FloatTy

Type llvm::LLVMContextImpl::FloatTy

Definition at line 1744 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ FP128Ty

Type llvm::LLVMContextImpl::FP128Ty

Definition at line 1746 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ FPConstants

DenseMap<APFloat, std::unique_ptr<ConstantFP> > llvm::LLVMContextImpl::FPConstants

Definition at line 1674 of file LLVMContextImpl.h.

Referenced by llvm::ConstantFP::get(), and ~LLVMContextImpl().

◆ FPSplatConstants

DenseMap<std::pair<ElementCount, APFloat>, std::unique_ptr<ConstantFP> > llvm::LLVMContextImpl::FPSplatConstants

Definition at line 1676 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ FunctionTypes

FunctionTypeSet llvm::LLVMContextImpl::FunctionTypes

Definition at line 1759 of file LLVMContextImpl.h.

◆ GCNames

DenseMap<const Function *, std::string> llvm::LLVMContextImpl::GCNames

Maintain the GC name for each function.

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.

Definition at line 1838 of file LLVMContextImpl.h.

◆ GlobalObjectSections

DenseMap<const GlobalObject *, StringRef> llvm::LLVMContextImpl::GlobalObjectSections

Collection of per-GlobalObject sections used in this context.

Definition at line 1792 of file LLVMContextImpl.h.

Referenced by llvm::GlobalObject::setSection().

◆ GlobalValuePartitions

DenseMap<const GlobalValue *, StringRef> llvm::LLVMContextImpl::GlobalValuePartitions

Collection of per-GlobalValue partitions used in this context.

Definition at line 1795 of file LLVMContextImpl.h.

Referenced by llvm::GlobalValue::getPartition(), and llvm::GlobalValue::setPartition().

◆ GlobalValueSanitizerMetadata

◆ HalfTy

Type llvm::LLVMContextImpl::HalfTy

Definition at line 1744 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ InlineAsms

ConstantUniqueMap<InlineAsm> llvm::LLVMContextImpl::InlineAsms

Definition at line 1738 of file LLVMContextImpl.h.

Referenced by llvm::InlineAsm::get(), and ~LLVMContextImpl().

◆ Int128Ty

IntegerType llvm::LLVMContextImpl::Int128Ty

Definition at line 1747 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ Int16Ty

IntegerType llvm::LLVMContextImpl::Int16Ty

Definition at line 1747 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ Int1Ty

IntegerType llvm::LLVMContextImpl::Int1Ty

Definition at line 1747 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ Int32Ty

IntegerType llvm::LLVMContextImpl::Int32Ty

Definition at line 1747 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ Int64Ty

IntegerType llvm::LLVMContextImpl::Int64Ty

Definition at line 1747 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ Int8Ty

IntegerType llvm::LLVMContextImpl::Int8Ty

Definition at line 1747 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ IntConstants

DenseMap<APInt, std::unique_ptr<ConstantInt> > llvm::LLVMContextImpl::IntConstants

Definition at line 1670 of file LLVMContextImpl.h.

Referenced by llvm::ConstantInt::get(), and ~LLVMContextImpl().

◆ IntegerTypes

DenseMap<unsigned, IntegerType *> llvm::LLVMContextImpl::IntegerTypes

Definition at line 1756 of file LLVMContextImpl.h.

◆ IntOneConstants

DenseMap<unsigned, std::unique_ptr<ConstantInt> > llvm::LLVMContextImpl::IntOneConstants

Definition at line 1669 of file LLVMContextImpl.h.

Referenced by llvm::ConstantInt::get(), and ~LLVMContextImpl().

◆ IntSplatConstants

DenseMap<std::pair<ElementCount, APInt>, std::unique_ptr<ConstantInt> > llvm::LLVMContextImpl::IntSplatConstants

Definition at line 1672 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ IntZeroConstants

DenseMap<unsigned, std::unique_ptr<ConstantInt> > llvm::LLVMContextImpl::IntZeroConstants

Definition at line 1668 of file LLVMContextImpl.h.

Referenced by llvm::ConstantInt::get(), and ~LLVMContextImpl().

◆ LabelTy

Type llvm::LLVMContextImpl::LabelTy

Definition at line 1744 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ LLVMRS

std::unique_ptr<LLVMRemarkStreamer> llvm::LLVMContextImpl::LLVMRS

The specialized remark streamer used by LLVM's OptimizationRemarkEmitter.

Definition at line 1661 of file LLVMContextImpl.h.

◆ MachineFunctionNums

DenseMap<Module *, unsigned> llvm::LLVMContextImpl::MachineFunctionNums

MachineFunctionNums - Keep the next available unique number available for a MachineFunction in given module.

Module must in OwnedModules.

Definition at line 1625 of file LLVMContextImpl.h.

◆ MainRemarkStreamer

std::unique_ptr<remarks::RemarkStreamer> llvm::LLVMContextImpl::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.

Definition at line 1630 of file LLVMContextImpl.h.

◆ MDStringCache

StringMap<MDString, BumpPtrAllocator> llvm::LLVMContextImpl::MDStringCache

Definition at line 1682 of file LLVMContextImpl.h.

◆ MetadataAsValues

DenseMap<Metadata *, MetadataAsValue *> llvm::LLVMContextImpl::MetadataAsValues

◆ MetadataTy

Type llvm::LLVMContextImpl::MetadataTy

Definition at line 1744 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ MisExpectWarningRequested

bool llvm::LLVMContextImpl::MisExpectWarningRequested = false

Definition at line 1658 of file LLVMContextImpl.h.

◆ NamedStructTypes

StringMap<StructType *> llvm::LLVMContextImpl::NamedStructTypes

Definition at line 1762 of file LLVMContextImpl.h.

◆ NamedStructTypesUniqueID

unsigned llvm::LLVMContextImpl::NamedStructTypesUniqueID = 0

Definition at line 1763 of file LLVMContextImpl.h.

◆ NextAtomGroup

uint64_t llvm::LLVMContextImpl::NextAtomGroup = 1

The next available source atom group number.

The front end is responsible for assigning source atom numbers, but certain optimisations need to assign new group numbers to a set of instructions. Most often code duplication optimisations like loop unroll. Tracking a global maximum value means we can know (cheaply) we're never using a group number that's already used within this function.

Start a 1 because 0 means the source location isn't part of an atom group.

Definition at line 1899 of file LLVMContextImpl.h.

◆ NoCFIValues

DenseMap<const GlobalValue *, NoCFIValue *> llvm::LLVMContextImpl::NoCFIValues

Definition at line 1732 of file LLVMContextImpl.h.

Referenced by llvm::NoCFIValue::get().

◆ OPG

OptPassGate* llvm::LLVMContextImpl::OPG = nullptr
mutable

Definition at line 1847 of file LLVMContextImpl.h.

Referenced by getOptPassGate(), and setOptPassGate().

◆ OwnedModules

SmallPtrSet<Module *, 4> llvm::LLVMContextImpl::OwnedModules

OwnedModules - The set of modules instantiated in this context, and which will be automatically deleted if this context is deleted.

Definition at line 1621 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ PointerTypes

DenseMap<unsigned, PointerType *> llvm::LLVMContextImpl::PointerTypes

Definition at line 1771 of file LLVMContextImpl.h.

◆ PPC_FP128Ty

Type llvm::LLVMContextImpl::PPC_FP128Ty

Definition at line 1746 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ PVConstants

DenseMap<Type *, std::unique_ptr<PoisonValue> > llvm::LLVMContextImpl::PVConstants

Definition at line 1724 of file LLVMContextImpl.h.

Referenced by llvm::PoisonValue::get(), and ~LLVMContextImpl().

◆ RespectDiagnosticFilters

bool llvm::LLVMContextImpl::RespectDiagnosticFilters = false

Definition at line 1633 of file LLVMContextImpl.h.

◆ Saver

UniqueStringSaver llvm::LLVMContextImpl::Saver {Alloc}

◆ SSC

StringMap<SyncScope::ID> llvm::LLVMContextImpl::SSC

A set of interned synchronization scopes.

The StringMap maps synchronization scope names to their respective synchronization scope IDs.

Definition at line 1817 of file LLVMContextImpl.h.

Referenced by getOrInsertSyncScopeID(), getSyncScopeName(), and getSyncScopeNames().

◆ StructConstants

StructConstantsTy llvm::LLVMContextImpl::StructConstants

Definition at line 1713 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ TargetExtTypes

TargetExtTypeSet llvm::LLVMContextImpl::TargetExtTypes

Definition at line 1766 of file LLVMContextImpl.h.

◆ TheFalseVal

ConstantInt* llvm::LLVMContextImpl::TheFalseVal = nullptr

Definition at line 1741 of file LLVMContextImpl.h.

Referenced by llvm::ConstantInt::getFalse().

◆ TheNoneToken

std::unique_ptr<ConstantTokenNone> llvm::LLVMContextImpl::TheNoneToken

Definition at line 1749 of file LLVMContextImpl.h.

Referenced by llvm::ConstantTokenNone::get().

◆ TheTrueVal

ConstantInt* llvm::LLVMContextImpl::TheTrueVal = nullptr

Definition at line 1740 of file LLVMContextImpl.h.

Referenced by llvm::ConstantInt::getTrue().

◆ TokenTy

Type llvm::LLVMContextImpl::TokenTy

Definition at line 1745 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ TrailingDbgRecords

SmallDenseMap<BasicBlock *, DbgMarker *> llvm::LLVMContextImpl::TrailingDbgRecords

Mapping of blocks to collections of "trailing" DbgVariableRecords.

As part of the "RemoveDIs" project, debug-info variable location records are going to cease being instructions... which raises the problem of where should they be recorded when we remove the terminator of a blocks, such as:

foo = add i32 0, 0 br label bar

If the branch is removed, a legitimate transient state while editing a block, any debug-records between those two instructions will not have a location. Each block thus records any DbgVariableRecord records that "trail" in such a way. These are stored in LLVMContext because typically LLVM only edits a small number of blocks at a time, so there's no need to bloat BasicBlock with such a data structure.

Definition at line 1874 of file LLVMContextImpl.h.

Referenced by deleteTrailingDbgRecords(), getTrailingDbgRecords(), setTrailingDbgRecords(), and ~LLVMContextImpl().

◆ UVConstants

DenseMap<Type *, std::unique_ptr<UndefValue> > llvm::LLVMContextImpl::UVConstants

Definition at line 1722 of file LLVMContextImpl.h.

Referenced by llvm::UndefValue::get(), and ~LLVMContextImpl().

◆ ValueHandles

ValueHandlesTy llvm::LLVMContextImpl::ValueHandles

Definition at line 1778 of file LLVMContextImpl.h.

◆ ValueMetadata

◆ ValueNames

DenseMap<const Value *, ValueName *> llvm::LLVMContextImpl::ValueNames

Definition at line 1666 of file LLVMContextImpl.h.

◆ ValuesAsMetadata

DenseMap<Value *, ValueAsMetadata *> llvm::LLVMContextImpl::ValuesAsMetadata

Definition at line 1683 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ VectorConstants

VectorConstantsTy llvm::LLVMContextImpl::VectorConstants

Definition at line 1716 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ VectorTypes

DenseMap<std::pair<Type *, ElementCount>, VectorType *> llvm::LLVMContextImpl::VectorTypes

Definition at line 1769 of file LLVMContextImpl.h.

◆ VoidTy

Type llvm::LLVMContextImpl::VoidTy

Definition at line 1744 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ X86_AMXTy

Type llvm::LLVMContextImpl::X86_AMXTy

Definition at line 1746 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ X86_FP80Ty

Type llvm::LLVMContextImpl::X86_FP80Ty

Definition at line 1746 of file LLVMContextImpl.h.

Referenced by LLVMContextImpl().

◆ YieldCallback

LLVMContext::YieldCallbackTy llvm::LLVMContextImpl::YieldCallback = nullptr

Definition at line 1663 of file LLVMContextImpl.h.

◆ YieldOpaqueHandle

void* llvm::LLVMContextImpl::YieldOpaqueHandle = nullptr

Definition at line 1664 of file LLVMContextImpl.h.


The documentation for this class was generated from the following files: