LLVM: llvm::LLVMContextImpl Class Reference (original) (raw)
#include "[IR/LLVMContextImpl.h](LLVMContextImpl%5F8h%5Fsource.html)"
| 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< StringRef > | getSyncScopeName (SyncScope::ID Id) const |
| getSyncScopeName - Returns the name of a SyncScope::ID registered with LLVMContext, if any. | |
| LLVMContextImpl (LLVMContext &C) | |
| ~LLVMContextImpl () | |
| OptPassGate & | getOptPassGate () 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) |
| DbgMarker * | getTrailingDbgRecords (BasicBlock *B) |
| void | deleteTrailingDbgRecords (BasicBlock *B) |
Definition at line 1620 of file LLVMContextImpl.h.
◆ 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 1780 of file LLVMContextImpl.h.
◆ VectorConstantsTy
Definition at line 31 of file LLVMContextImpl.cpp.
References BFloatTy, llvm::CallingConv::C, DiagHandler, DoubleTy, DoubleTyID, FloatTy, FloatTyID, FP128Ty, HalfTy, Int128Ty, Int16Ty, Int1Ty, Int32Ty, Int64Ty, Int8Ty, LabelTy, MetadataTy, PPC_FP128Ty, TokenTy, VoidTy, X86_AMXTy, and X86_FP80Ty.
◆ ~LLVMContextImpl()
| LLVMContextImpl::~LLVMContextImpl | ( | ) |
|---|
Definition at line 42 of file LLVMContextImpl.cpp.
References ArrayConstants, assert(), AttrsSetNodes, CAZConstants, CDSConstants, ConstantPtrAuths, ConstantRangeListAttributes, CPNConstants, CTNConstants, DIArgLists, DistinctMDNodes, ExprConstants, FPConstants, FPSplatConstants, I, InlineAsms, IntConstants, IntOneConstants, IntSplatConstants, IntZeroConstants, MetadataAsValues, OwnedModules, llvm::SmallVectorTemplateBase< T, bool >::push_back(), PVConstants, llvm::SmallVectorImpl< T >::reserve(), StructConstants, TrailingDbgRecords, UVConstants, ValueMetadata, ValuesAsMetadata, and VectorConstants.
◆ deleteTrailingDbgRecords()
| void llvm::LLVMContextImpl::deleteTrailingDbgRecords ( BasicBlock * B) | inline |
|---|
◆ getOperandBundleTagID()
◆ getOperandBundleTags()
◆ getOptPassGate()
| OptPassGate & LLVMContextImpl::getOptPassGate | ( | ) | const |
|---|
◆ getOrInsertBundleTag()
◆ getOrInsertSyncScopeID()
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.
◆ getSyncScopeName()
◆ getSyncScopeNames()
◆ getTrailingDbgRecords()
◆ 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()
◆ Alloc
◆ AnonStructTypes
StructTypeSet llvm::LLVMContextImpl::AnonStructTypes
◆ ArrayConstants
ArrayConstantsTy llvm::LLVMContextImpl::ArrayConstants
◆ ArrayTypes
◆ AS0PointerType
PointerType* llvm::LLVMContextImpl::AS0PointerType = nullptr
◆ 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 1792 of file LLVMContextImpl.h.
◆ ASTypedPointerTypes
◆ AttrsLists
◆ AttrsSet
◆ AttrsSetNodes
◆ BFloatTy
Type llvm::LLVMContextImpl::BFloatTy
◆ BlockAddresses
◆ BundleTagCache
◆ CAZConstants
◆ CDSConstants
◆ ConstantPtrAuths
◆ ConstantRangeAttributeAlloc
◆ ConstantRangeListAttributes
◆ CPNConstants
◆ CTNConstants
◆ CustomMDKindNames
CustomMDKindNames - Map to hold the metadata string to ID mapping.
Definition at line 1784 of file LLVMContextImpl.h.
◆ DefaultTargetCPU
std::string llvm::LLVMContextImpl::DefaultTargetCPU
◆ DefaultTargetFeatures
std::string llvm::LLVMContextImpl::DefaultTargetFeatures
◆ 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 1656 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 1660 of file LLVMContextImpl.h.
◆ DIArgLists
◆ DiscardValueNames
bool llvm::LLVMContextImpl::DiscardValueNames = false
◆ 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 1806 of file LLVMContextImpl.h.
◆ DistinctMDNodes
std::vector<MDNode *> llvm::LLVMContextImpl::DistinctMDNodes
◆ DITypeMap
◆ DoubleTy
Type llvm::LLVMContextImpl::DoubleTy
◆ DSOLocalEquivalents
◆ ExprConstants
◆ FloatTy
Type llvm::LLVMContextImpl::FloatTy
◆ FP128Ty
Type llvm::LLVMContextImpl::FP128Ty
◆ FPConstants
◆ FPSplatConstants
◆ FunctionTypes
FunctionTypeSet llvm::LLVMContextImpl::FunctionTypes
◆ 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 1841 of file LLVMContextImpl.h.
◆ GlobalObjectSections
◆ GlobalValuePartitions
◆ GlobalValueSanitizerMetadata
◆ HalfTy
Type llvm::LLVMContextImpl::HalfTy
◆ InlineAsms
◆ Int128Ty
◆ Int16Ty
◆ Int1Ty
◆ Int32Ty
◆ Int64Ty
◆ Int8Ty
◆ IntConstants
◆ IntegerTypes
◆ IntOneConstants
◆ IntSplatConstants
◆ IntZeroConstants
◆ LabelTy
Type llvm::LLVMContextImpl::LabelTy
◆ LLVMRS
◆ MachineFunctionNums
◆ 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 1633 of file LLVMContextImpl.h.
◆ MDStringCache
◆ MetadataAsValues
◆ MetadataTy
Type llvm::LLVMContextImpl::MetadataTy
◆ MisExpectWarningRequested
bool llvm::LLVMContextImpl::MisExpectWarningRequested = false
◆ NamedStructTypes
◆ NamedStructTypesUniqueID
unsigned llvm::LLVMContextImpl::NamedStructTypesUniqueID = 0
◆ 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 1902 of file LLVMContextImpl.h.
◆ NoCFIValues
◆ OPG
◆ OwnedModules
OwnedModules - The set of modules instantiated in this context, and which will be automatically deleted if this context is deleted.
Definition at line 1624 of file LLVMContextImpl.h.
Referenced by ~LLVMContextImpl().
◆ PointerTypes
◆ PPC_FP128Ty
Type llvm::LLVMContextImpl::PPC_FP128Ty
◆ PVConstants
◆ RespectDiagnosticFilters
bool llvm::LLVMContextImpl::RespectDiagnosticFilters = false
◆ Saver
◆ SSC
◆ StructConstants
StructConstantsTy llvm::LLVMContextImpl::StructConstants
◆ TargetExtTypes
TargetExtTypeSet llvm::LLVMContextImpl::TargetExtTypes
◆ TheFalseVal
ConstantInt* llvm::LLVMContextImpl::TheFalseVal = nullptr
◆ TheNoneToken
◆ TheTrueVal
ConstantInt* llvm::LLVMContextImpl::TheTrueVal = nullptr
◆ TokenTy
Type llvm::LLVMContextImpl::TokenTy
◆ 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 1877 of file LLVMContextImpl.h.
Referenced by deleteTrailingDbgRecords(), getTrailingDbgRecords(), setTrailingDbgRecords(), and ~LLVMContextImpl().
◆ UVConstants
◆ ValueHandles
ValueHandlesTy llvm::LLVMContextImpl::ValueHandles
◆ ValueMetadata
◆ ValueNames
◆ ValuesAsMetadata
◆ VectorConstants
VectorConstantsTy llvm::LLVMContextImpl::VectorConstants
◆ VectorTypes
◆ VoidTy
Type llvm::LLVMContextImpl::VoidTy
◆ X86_AMXTy
Type llvm::LLVMContextImpl::X86_AMXTy
◆ X86_FP80Ty
Type llvm::LLVMContextImpl::X86_FP80Ty
◆ YieldCallback
◆ YieldOpaqueHandle
void* llvm::LLVMContextImpl::YieldOpaqueHandle = nullptr
The documentation for this class was generated from the following files:
- lib/IR/LLVMContextImpl.h
- lib/IR/LLVMContextImpl.cpp