LLVM 20.0.0git
Public Types | Public Member Functions | Public Attributes | List of all members
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 ()
 
void dropTriviallyDeadConstantArrays ()
 Destroy the ConstantArrays if they are not used.
 
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< std::pair< const Function *, 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
 

Detailed Description

Definition at line 1469 of file LLVMContextImpl.h.

Member Typedef Documentation

◆ ArrayConstantsTy

Definition at line 1561 of file LLVMContextImpl.h.

◆ FunctionTypeSet

Definition at line 1611 of file LLVMContextImpl.h.

◆ StructConstantsTy

Definition at line 1564 of file LLVMContextImpl.h.

◆ StructTypeSet

Definition at line 1613 of file LLVMContextImpl.h.

◆ TargetExtTypeSet

Definition at line 1618 of file LLVMContextImpl.h.

◆ 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 1630 of file LLVMContextImpl.h.

◆ VectorConstantsTy

Definition at line 1567 of file LLVMContextImpl.h.

Constructor & Destructor Documentation

◆ LLVMContextImpl()

LLVMContextImpl::LLVMContextImpl ( LLVMContext C)

Definition at line 33 of file LLVMContextImpl.cpp.

◆ ~LLVMContextImpl()

LLVMContextImpl::~LLVMContextImpl ( )

Member Function Documentation

◆ deleteTrailingDbgRecords()

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

Definition at line 1742 of file LLVMContextImpl.h.

References B, and TrailingDbgRecords.

◆ dropTriviallyDeadConstantArrays()

void LLVMContextImpl::dropTriviallyDeadConstantArrays ( )

◆ getOperandBundleTagID()

uint32_t LLVMContextImpl::getOperandBundleTagID ( StringRef  Tag) const

◆ getOperandBundleTags()

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

◆ 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 256 of file LLVMContextImpl.cpp.

References llvm::getGlobalPassGate(), and OPG.

Referenced by llvm::LLVMContext::getOptPassGate().

◆ getOrInsertBundleTag()

StringMapEntry< uint32_t > * LLVMContextImpl::getOrInsertBundleTag ( StringRef  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 230 of file LLVMContextImpl.cpp.

References assert(), and SSC.

Referenced by llvm::LLVMContext::getOrInsertSyncScopeID(), and llvm::LLVMContext::LLVMContext().

◆ 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 245 of file LLVMContextImpl.cpp.

References SSC, and llvm::SSE.

Referenced by llvm::LLVMContext::getSyncScopeName().

◆ 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 237 of file LLVMContextImpl.cpp.

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

Referenced by llvm::LLVMContext::getSyncScopeNames().

◆ getTrailingDbgRecords()

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

Definition at line 1738 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 262 of file LLVMContextImpl.cpp.

References OPG.

Referenced by llvm::LLVMContext::setOptPassGate().

◆ setTrailingDbgRecords()

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

Definition at line 1733 of file LLVMContextImpl.h.

References assert(), B, and TrailingDbgRecords.

Member Data Documentation

◆ Alloc

BumpPtrAllocator llvm::LLVMContextImpl::Alloc

Definition at line 1604 of file LLVMContextImpl.h.

Referenced by llvm::Attribute::get(), and llvm::TypedPointerType::get().

◆ AnonStructTypes

StructTypeSet llvm::LLVMContextImpl::AnonStructTypes

Definition at line 1614 of file LLVMContextImpl.h.

◆ ArrayConstants

ArrayConstantsTy llvm::LLVMContextImpl::ArrayConstants

◆ ArrayTypes

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

Definition at line 1621 of file LLVMContextImpl.h.

◆ AS0PointerType

PointerType* llvm::LLVMContextImpl::AS0PointerType = nullptr

Definition at line 1623 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 1642 of file LLVMContextImpl.h.

Referenced by llvm::at::getAssignmentInsts().

◆ ASTypedPointerTypes

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

Definition at line 1625 of file LLVMContextImpl.h.

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

◆ AttrsLists

FoldingSet<AttributeListImpl> llvm::LLVMContextImpl::AttrsLists

Definition at line 1531 of file LLVMContextImpl.h.

◆ AttrsSet

FoldingSet<AttributeImpl> llvm::LLVMContextImpl::AttrsSet

Definition at line 1530 of file LLVMContextImpl.h.

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

◆ AttrsSetNodes

FoldingSet<AttributeSetNode> llvm::LLVMContextImpl::AttrsSetNodes

Definition at line 1532 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ BFloatTy

Type llvm::LLVMContextImpl::BFloatTy

Definition at line 1597 of file LLVMContextImpl.h.

◆ BlockAddresses

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

Definition at line 1581 of file LLVMContextImpl.h.

◆ 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 1662 of file LLVMContextImpl.h.

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

◆ CAZConstants

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

Definition at line 1559 of file LLVMContextImpl.h.

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

◆ CDSConstants

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

Definition at line 1578 of file LLVMContextImpl.h.

Referenced by llvm::ConstantDataSequential::getImpl(), and ~LLVMContextImpl().

◆ ConstantPtrAuths

ConstantUniqueMap<ConstantPtrAuth> llvm::LLVMContextImpl::ConstantPtrAuths

Definition at line 1587 of file LLVMContextImpl.h.

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

◆ ConstantRangeAttributeAlloc

SpecificBumpPtrAllocator<ConstantRangeAttributeImpl> llvm::LLVMContextImpl::ConstantRangeAttributeAlloc

Definition at line 1607 of file LLVMContextImpl.h.

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

◆ ConstantRangeListAttributes

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

Definition at line 1557 of file LLVMContextImpl.h.

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

◆ CPNConstants

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

Definition at line 1570 of file LLVMContextImpl.h.

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

◆ CTNConstants

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

Definition at line 1572 of file LLVMContextImpl.h.

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

◆ CustomMDKindNames

StringMap<unsigned> llvm::LLVMContextImpl::CustomMDKindNames

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

Definition at line 1634 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::getMDKindID(), and llvm::LLVMContext::getMDKindNames().

◆ DefaultTargetCPU

std::string llvm::LLVMContextImpl::DefaultTargetCPU

◆ DefaultTargetFeatures

std::string llvm::LLVMContextImpl::DefaultTargetFeatures

◆ DiagHandler

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

◆ DiagnosticsHotnessRequested

bool llvm::LLVMContextImpl::DiagnosticsHotnessRequested = false

◆ 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 1505 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::getDiagnosticsHotnessThreshold(), llvm::LLVMContext::isDiagnosticsHotnessThresholdSetFromPSI(), and llvm::LLVMContext::setDiagnosticsHotnessThreshold().

◆ 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 1509 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::getDiagnosticsMisExpectTolerance(), and llvm::LLVMContext::setDiagnosticsMisExpectTolerance().

◆ DIArgLists

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

◆ DiscardValueNames

bool llvm::LLVMContextImpl::DiscardValueNames = false

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

Definition at line 1695 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::setDiscardValueNames(), and llvm::LLVMContext::shouldDiscardValueNames().

◆ 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 1656 of file LLVMContextImpl.h.

◆ DistinctMDNodes

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

Definition at line 1550 of file LLVMContextImpl.h.

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

◆ DITypeMap

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

◆ DoubleTy

Type llvm::LLVMContextImpl::DoubleTy

Definition at line 1597 of file LLVMContextImpl.h.

◆ DSOLocalEquivalents

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

Definition at line 1583 of file LLVMContextImpl.h.

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

◆ ExprConstants

ConstantUniqueMap<ConstantExpr> llvm::LLVMContextImpl::ExprConstants

◆ FloatTy

Type llvm::LLVMContextImpl::FloatTy

Definition at line 1597 of file LLVMContextImpl.h.

◆ FP128Ty

Type llvm::LLVMContextImpl::FP128Ty

Definition at line 1599 of file LLVMContextImpl.h.

◆ FPConstants

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

Definition at line 1526 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 1528 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ FunctionTypes

FunctionTypeSet llvm::LLVMContextImpl::FunctionTypes

Definition at line 1612 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 1691 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::deleteGC(), llvm::LLVMContext::getGC(), and llvm::LLVMContext::setGC().

◆ GlobalObjectSections

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

Collection of per-GlobalObject sections used in this context.

Definition at line 1645 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 1648 of file LLVMContextImpl.h.

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

◆ GlobalValueSanitizerMetadata

DenseMap<const GlobalValue *, GlobalValue::SanitizerMetadata> llvm::LLVMContextImpl::GlobalValueSanitizerMetadata

◆ HalfTy

Type llvm::LLVMContextImpl::HalfTy

Definition at line 1597 of file LLVMContextImpl.h.

◆ InlineAsms

ConstantUniqueMap<InlineAsm> llvm::LLVMContextImpl::InlineAsms

Definition at line 1591 of file LLVMContextImpl.h.

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

◆ Int128Ty

IntegerType llvm::LLVMContextImpl::Int128Ty

Definition at line 1600 of file LLVMContextImpl.h.

◆ Int16Ty

IntegerType llvm::LLVMContextImpl::Int16Ty

Definition at line 1600 of file LLVMContextImpl.h.

◆ Int1Ty

IntegerType llvm::LLVMContextImpl::Int1Ty

Definition at line 1600 of file LLVMContextImpl.h.

◆ Int32Ty

IntegerType llvm::LLVMContextImpl::Int32Ty

Definition at line 1600 of file LLVMContextImpl.h.

◆ Int64Ty

IntegerType llvm::LLVMContextImpl::Int64Ty

Definition at line 1600 of file LLVMContextImpl.h.

◆ Int8Ty

IntegerType llvm::LLVMContextImpl::Int8Ty

Definition at line 1600 of file LLVMContextImpl.h.

◆ IntConstants

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

Definition at line 1522 of file LLVMContextImpl.h.

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

◆ IntegerTypes

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

Definition at line 1609 of file LLVMContextImpl.h.

◆ IntOneConstants

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

Definition at line 1521 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 1524 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ IntZeroConstants

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

Definition at line 1520 of file LLVMContextImpl.h.

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

◆ LabelTy

Type llvm::LLVMContextImpl::LabelTy

Definition at line 1597 of file LLVMContextImpl.h.

◆ LLVMRS

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

The specialized remark streamer used by LLVM's OptimizationRemarkEmitter.

Definition at line 1513 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::getLLVMRemarkStreamer(), and llvm::LLVMContext::setLLVMRemarkStreamer().

◆ 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 1477 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::generateMachineFunctionNum().

◆ 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 1482 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::getMainRemarkStreamer(), and llvm::LLVMContext::setMainRemarkStreamer().

◆ MDStringCache

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

Definition at line 1534 of file LLVMContextImpl.h.

◆ MetadataAsValues

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

◆ MetadataTy

Type llvm::LLVMContextImpl::MetadataTy

Definition at line 1597 of file LLVMContextImpl.h.

◆ MisExpectWarningRequested

bool llvm::LLVMContextImpl::MisExpectWarningRequested = false

◆ NamedStructTypes

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

Definition at line 1615 of file LLVMContextImpl.h.

◆ NamedStructTypesUniqueID

unsigned llvm::LLVMContextImpl::NamedStructTypesUniqueID = 0

Definition at line 1616 of file LLVMContextImpl.h.

◆ NoCFIValues

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

Definition at line 1585 of file LLVMContextImpl.h.

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

◆ OPG

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

Definition at line 1703 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 1473 of file LLVMContextImpl.h.

Referenced by llvm::LLVMContext::generateMachineFunctionNum(), and ~LLVMContextImpl().

◆ PointerTypes

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

Definition at line 1624 of file LLVMContextImpl.h.

◆ PPC_FP128Ty

Type llvm::LLVMContextImpl::PPC_FP128Ty

Definition at line 1599 of file LLVMContextImpl.h.

◆ PVConstants

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

Definition at line 1576 of file LLVMContextImpl.h.

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

◆ RespectDiagnosticFilters

bool llvm::LLVMContextImpl::RespectDiagnosticFilters = false

◆ 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 1670 of file LLVMContextImpl.h.

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

◆ StructConstants

StructConstantsTy llvm::LLVMContextImpl::StructConstants

Definition at line 1565 of file LLVMContextImpl.h.

Referenced by ~LLVMContextImpl().

◆ TargetExtTypes

TargetExtTypeSet llvm::LLVMContextImpl::TargetExtTypes

Definition at line 1619 of file LLVMContextImpl.h.

◆ TheFalseVal

ConstantInt* llvm::LLVMContextImpl::TheFalseVal = nullptr

Definition at line 1594 of file LLVMContextImpl.h.

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

◆ TheNoneToken

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

Definition at line 1602 of file LLVMContextImpl.h.

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

◆ TheTrueVal

ConstantInt* llvm::LLVMContextImpl::TheTrueVal = nullptr

Definition at line 1593 of file LLVMContextImpl.h.

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

◆ TokenTy

Type llvm::LLVMContextImpl::TokenTy

Definition at line 1598 of file LLVMContextImpl.h.

◆ 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 1730 of file LLVMContextImpl.h.

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

◆ UVConstants

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

Definition at line 1574 of file LLVMContextImpl.h.

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

◆ ValueHandles

ValueHandlesTy llvm::LLVMContextImpl::ValueHandles

Definition at line 1631 of file LLVMContextImpl.h.

◆ ValueMetadata

DenseMap<const Value *, MDAttachments> llvm::LLVMContextImpl::ValueMetadata

◆ ValueNames

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

Definition at line 1518 of file LLVMContextImpl.h.

◆ ValuesAsMetadata

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

◆ VectorConstants

VectorConstantsTy llvm::LLVMContextImpl::VectorConstants

Definition at line 1568 of file LLVMContextImpl.h.

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

◆ VectorTypes

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

Definition at line 1622 of file LLVMContextImpl.h.

◆ VoidTy

Type llvm::LLVMContextImpl::VoidTy

Definition at line 1597 of file LLVMContextImpl.h.

◆ X86_AMXTy

Type llvm::LLVMContextImpl::X86_AMXTy

Definition at line 1599 of file LLVMContextImpl.h.

◆ X86_FP80Ty

Type llvm::LLVMContextImpl::X86_FP80Ty

Definition at line 1599 of file LLVMContextImpl.h.

◆ YieldCallback

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

◆ YieldOpaqueHandle

void* llvm::LLVMContextImpl::YieldOpaqueHandle = nullptr

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