llvm

Top-level LLVM library namespace.

Namespaces

NameDescription
AA Abstract Attribute helper functions.
AArch64
AArch64BuildAttributes
AMDGPU AMDGPU-specific address-space helpers and DWARF mappings.
AMDGPUAS OpenCL uses address spaces to differentiate between various memory regions on the hardware. On the CPU all of the address spaces point to the same memory, however on the GPU, each address space points to a separate piece of memory that is unique from other memory locations.
APIntOps Additional APInt utility operations.
ARM
ARMBuildAttrs
AVR
ArchYAML
AttributeFuncs
BBAddrMapYAML
BTF
BitmaskEnumDetail Implementation details and operator overloads for bitmask enumerations.
COFF
COFFYAML
CSKY
CSKYAttrs
CallingConv CallingConv Namespace - This namespace contains an enum with a value for the well-known calling conventions.
Check
CodeGenOpt Helpers for parsing and converting code-generation optimization levels.
CodeModel Code model types.
CodeViewYAML
ConverterEBCDIC
DOT
DWARFYAML
DXContainerYAML
DomTreeBuilder
ELF
ELFAttrs
ELFYAML
EngineKind
FPOpFusion
FloatABI Floating-point ABI selection.
GCOV
GISelAddressing
GOFF
GOFFYAML
GVNExpression
GraphProgram
HWASanAccessInfo
HexStyle
HexagonAttrs
IDFCalculatorDetail
ISD ISD namespace - This namespace contains an enum which represents all of the SelectionDAG node types and value types.
ImutAVLDetail Internal helpers for optional tree canonicalization (digest cache and collision chains). Not part of the public interface.
IndexedCGData
IndexedInstrProf
InlineConstants
IntegerInclusiveIntervalUtils
IntervalMapImpl IntervalMapImpl - Namespace used for IntervalMap implementation details. It should be considered private to the implementation.
Intrinsic This namespace contains an enum with a value for every intrinsic/builtin function known by LLVM. The enum values are returned by Function::getIntrinsicID().
JumpTable
LCOMM
LegalityPredicates
LegalizeActions
LegalizeMutations
LoongArch
MCD
MCID
MCOI
MCParserUtils
MIPatternMatch
MISched
MSP430Attrs
MSSAHelpers
MachO
MachOYAML
MinidumpYAML
Mips
NVPTX
NVPTXAS
NVVMAttr
OMF
OffloadYAML
PBQP
PICLevel PIC level used to map -fpic/-fPIC.
PIELevel Position-independent executable level.
PPC
PatternMatch
PatternMatchHelpers
RISCV
RISCVAttrs
RISCVCFI
RISCVISAUtils
RISCVVType
RTLIB
RawInstrProf
Reloc Relocation model types.
SCEVPatternMatch
SDPatternMatch
ScaledNumbers
Sched
SignBitsOps
SwitchCG
SymbolRewriter
SyncScope
TLSModel Thread-local storage models.
TableGen
TargetOpcode Invariant opcodes: All instruction sets have these as their low opcodes.
TargetStackID
ThinLTOCodeGeneratorImpl ThinLTOCodeGeneratorImpl - Namespace used for ThinLTOCodeGenerator implementation details. It should be considered private to the implementation.
ThreadModel
VFABI
VNCoercion
WasmYAML
WebAssembly
Win64EH
WinEH
X86
X86Disassembler
XCOFF
XCOFFYAML
Xtensa
ZeroCallUsedRegs Specify what type of zeroing for callee-used registers.
abi
adl_detail Helpers that invoke range algorithms via argument-dependent lookup.
afdo_detail
amdhsa
at Assignment Tracking (at).
bfi_detail
binaryformat
bitc
bitfields_details Implementation helpers that pack and unpack typed bitfield elements into unsigned storage words.
callable_detail Internal helpers for owning and invoking callables.
callgraph
cas Content-addressable storage (CAS) APIs.
cfg
cgdata
cl This namespace contains all of the command line option processing machinery. It is intentionally a short name to make qualified usage concise.
codegen
codegenoptions
codelayout
codeview
compression
consthoist A private "module" namespace for types and utilities used by ConstantHoisting. These are implementation details and should not be used by clients.
coro
coverage
ctx_profile
densemap DenseMap-specific hashing helpers.
details
directive
driver
dwarf Calculates the starting offsets for various sections within the .debug_names section.
dwarf_linker
dxbc
dxil
fp
fuzzerop @}
gsym
hashbuilder_detail
hashing Implementation details for hash computation.
hlsl
ifs
ilist_detail Implementation details for intrusive list node prev/next storage.
impl
impl_detail
instrumentor
ir2vec
irsymtab
itanium_demangle
jitlink
json
jumpthreading A private "module" namespace for types and utilities used by JumpThreading. These are implementation details and should not be used by clients.
legacy
lltok
logicalview
lowertypetests
lsp
lto
mc
mca
mcdwarf
mcdxbc
mdconst Transitional API for extracting constants from Metadata.
memprof
memtag
minidump
mir2vec
misexpect
ms_demangle
msf
msgpack
mustache
numbers Mathematical constants backported from C++20 <numbers>.
nvvm
objcarc
objcopy
object
offloading
omp
opt
orc
ore Add a small namespace to avoid name clashes with the classes used in the streaming interface. We want these to be short for better write/readability.
outliner
parallel Helpers for running work across a pool of worker threads.
pdb
pgo
po_detail Implementation details for post-order graph iterators.
pointer_union_detail Implementation details for PointerUnion tag packing.
rdf
reassociate A private "module" namespace for types and utilities used by Reassociate. These are implementation details and should not be used by clients.
remarks
sampleprof
sampleprofutil
sandboxir
sframe
slpvectorizer A private "module" namespace for types and utilities used by this pass. These are implementation details and should not be used by clients.
support Implementation details for formatv support helpers.
symbolize
sys Host system utilities.
telemetry
this_thread
trailing_objects_internal
vfs
wasm
wholeprogramdevirt
windows_manifest
xray
yaml

Types

NameDescription
AAAddressSpace An abstract interface for address space information.
AAAlign An abstract interface for all align attributes.
AAAllocationInfo
AAAssumptionInfo An abstract attribute for getting assumption information.
AACacheLoc Cache key for BasicAA results. It only includes the pointer and size from MemoryLocation, as BasicAA is AATags independent. Additionally, it includes the value of MayBeCrossIteration, which may affect BasicAA results.
AACallEdgeIterator An Iterator for call edges, creates AACallEdges attributes in a lazy way.
AACallEdges An abstract state for querying live call edges. This interface uses the Attributor's optimistic liveness information to compute the edges that are alive.
AACallGraphNode
AADenormalFPMath An abstract Attribute for specializing "dynamic" components of denormal_fpenv to a known denormal mode.
AADepGraph The data structure for the dependency graph
AADepGraphNode The data structure for the nodes of a dependency graph
AADereferenceable An abstract interface for all dereferenceable attribute.
AAEvaluator
AAExecutionDomain
AAGlobalValueInfo An abstract interface for llvm::GlobalValue information interference.
AAHeapToStack
AAIndirectCallInfo An abstract interface for indirect call information interference.
AAInstanceInfo An abstract interface to track if a value leaves it's defining function instance.
AAInterFnReachability An abstract Attribute for computing reachability between functions.
AAIntraFnReachability An abstract interface to determine reachability of point A to B.
AAInvariantLoadPointer An abstract interface for identifying pointers from which loads can be marked invariant.
AAIsDead An abstract interface for liveness abstract attribute.
AAMDNodes A collection of metadata nodes that might be associated with a memory access used by the alias-analysis infrastructure.
AAManager A manager for alias analyses.
AAMemoryBehavior An abstract interface for memory access kind related attributes (readnone/readonly/writeonly).
AAMemoryLocation An abstract interface for all memory location attributes (readnone/argmemonly/inaccessiblememonly/inaccessibleorargmemonly).
AAMustProgress An abstract interface for all nonnull attributes.
AANoAlias An abstract interface for all noalias attributes.
AANoAliasAddrSpace An abstract interface for potential address space information.
AANoCapture An abstract interface for all nocapture attributes.
AANoFPClass
AANoFree An AbstractAttribute for nofree.
AANoRecurse An abstract attribute for norecurse.
AANoReturn An AbstractAttribute for noreturn.
AANoSync
AANoUndef An abstract interface for all noundef attributes.
AANoUnwind Abstract attribute for the no-unwind function attribute. Abstract Attribute Classes ----------------------------------------------------------------------------
AANonConvergent An abstract Attribute for determining the necessity of the convergent attribute.
AANonNull An abstract interface for all nonnull attributes.
AAPointerInfo An abstract interface for struct information.
AAPotentialConstantValues An abstract interface for potential values analysis.
AAPotentialValues
AAPrivatizablePtr An abstract interface for privatizability.
AAQueryInfo This class stores info we want to provide to or retain within an alias query. By default, the root query is stateless and starts with a freshly constructed info object. Specific alias analyses can use this query info to store per-query state that is important for recursive or nested queries to avoid recomputing. To enable preserving this state across multiple queries where safe (due to the IR not changing), use a BatchAAResults wrapper. The information stored in an AAQueryInfo is currently limitted to the caches used by BasicAA, but can further be extended to fit other AA needs.
AAResultBase A base class to help implement the function alias analysis results concept.
AAResults
AAResultsWrapperPass A wrapper pass to provide the legacy pass manager access to a suitably prepared AAResults object.
AAUndefinedBehavior An abstract attribute for undefined behavior.
AAUnderlyingObjects An abstract attribute for getting all assumption underlying objects.
AAValueConstantRange An abstract interface for range value analysis.
AAValueSimplify An abstract interface for value simplify abstract attribute.
AAWillReturn An abstract attribute for willreturn.
AArch64AttributeParser
AArch64BuildAttrSubsections
ADCEPass A DCE pass that assumes instructions are dead until proven otherwise.
APFixedPoint The APFixedPoint class works similarly to APInt/APSInt in that it is a functional replacement for a scaled integer. It supports a wide range of semantics including the one used by fixed point types proposed in ISO/IEC JTC1 SC22 WG14 N1169. The class carries the value and semantics of a fixed point, and provides different operations that would normally be performed on fixed point types.
APFloat Arbitrary-precision floating-point value.
APFloatBase Shared type definitions for APFloat and its internal implementation classes.
APInt Arbitrary-precision integer.
APSInt An arbitrary precision integer that knows its signedness.
ARMAttributeParser
ARMJITSymbolFlags ARM-specific JIT symbol flags. FIXME: This should be moved into a target-specific header.
ARMTargetStreamer
ASanAccessInfo
ASanStackFrameLayout
ASanStackVariableDescription
AShrOperator
AbstractAttribute Base struct for all "concrete attribute" deductions.
AbstractCallSite AbstractCallSite
AbstractDependenceGraphBuilder This abstract builder class defines a set of high-level steps for creating DDG-like graphs. The client code is expected to inherit from this class and define concrete implementation for each of the pure virtual functions used in the high-level algorithm.
AbstractLatticeFunction AbstractLatticeFunction - This class is implemented by the dataflow instance to specify what the lattice values are and how they handle merges etc. This gives the client the power to compute lattice values from instructions, constants, etc. The current requirement is that lattice values must be copyable. At the moment, nothing tries to avoid copying. Additionally, lattice keys must be able to be used as keys of a mapping data structure. Internally, the generic solver currently uses a DenseMap to map lattice keys to lattice values. If the lattice key is a non-standard type, a specialization of DenseMapInfo must be provided.
AbstractSlotTrackerStorage Abstract interface of slot tracker storage.
AbstractState An interface to query the internal state of an abstract attribute.
AccelTable This class holds an abstract representation of an Accelerator Table, consisting of a sequence of buckets, each bucket containint a sequence of HashData entries. The class is parameterized by the type of entries it holds. The type template parameter also defines the hash function to use for hashing names.
AccelTableBase A base class holding non-template-dependant functionality of the AccelTable class. Clients should not use this class directly but rather instantiate AccelTable with a type derived from AccelTableData.
AccelTableData Interface which the different types of accelerator table data have to conform. It serves as a base class for different values of the template argument of the AccelTable class template.
ActiveBlocksOption
AddDiscriminatorsPass
AddOperator
AddrLabelMap
AddrSpaceCastInst This class represents a conversion between pointers from one address space to another.
AddrSpaceCastOperator
AddrSpaceCastSDNode
AddressProbesMap
AddressRange A class that represents an address range. The range is specified using a start and an end address: [Start, End).]
AddressRangeValuePair An address range paired with an associated integer value.
AddressRanges The AddressRanges class helps normalize address range collections. This class keeps a sorted vector of AddressRange objects and can perform insertions and searches efficiently. Intersecting([100,200), [150,300))]] and adjacent([100,200), [200,300)) address ranges are combined during]] insertion.
AddressRangesBase The AddressRangesBase class presents the base functionality for the normalized address ranges collection. This class keeps a sorted vector of AddressRange-like objects and can perform searches efficiently. The address ranges are always sorted and never contain any invalid, empty or intersected address ranges.
AddressRangesMap AddressRangesMap class maps values to the address ranges. It keeps normalized address ranges and corresponding values. This class keeps a sorted vector of AddressRangeValuePair objects and can perform insertions and searches efficiently. Intersecting([100,200), [150,300)) ranges splitted into non-conflicting]] parts([100,200), [200,300)). Adjacent([100,200), [200,300)) address]]]] ranges are not combined during insertion.
AddressSanitizerOptions
AddressSanitizerPass Public interface to the address sanitizer module pass for instrumenting code to check for various memory errors.
AdvisoryLock A synchronization primitive with weak mutual exclusion guarantees. Implementations of this interface may allow multiple threads/processes to acquire the ownership of the lock simultaneously. Typically, threads/processes waiting for the lock to be unlocked will validate that the computation was performed by the expected thread/process and re-run the computation if not.
AggregationData
AggressiveInstCombinePass
AliasMatchingData Tablegenerated data structures needed to match alias patterns.
AliasPattern Data for each alias pattern. Includes feature bits, string, number of operands, and a variadic list of conditions to check.
AliasPatternCond
AliasResult The possible results of an alias query.
AliasScopeNode This is a simple wrapper around an MDNode which provides a higher-level interface by hiding the details of how alias analysis information is encoded in its operands.
AliasSet
AliasSetTracker
AliasSetsPrinterPass
AliasSummary Alias summary information.
Align This struct is a compact representation of a valid (non-zero power of two) alignment. It is suitable for use as static global constants.
AlignedCharArrayUnion A suitably aligned and sized character array member which can hold elements of any type.
AlignmentFromAssumptionsPass
AllAnalysesOn This templated class represents "all analyses that operate over <a particular IR unit>" (e.g. a Function or a Module) in instances of PreservedAnalysis.
AllocInfo Summary of memprof metadata on allocations.
AllocTokenMetadata Metadata about an allocation used to generate a token ID.
AllocTokenOptions
AllocTokenPass A module pass that rewrites heap allocations to use token-enabled allocation functions based on various source-level properties.
AllocaInst an instruction to allocate memory on the stack
AllocaPackedValues
AllocationOrder
AllocatorBase CRTP base class providing obvious overloads for the core Allocate() methods of LLVM-style allocators.
AllocatorList A linked-list with a custom, local allocator.
AlwaysInlinerPass Inlines functions marked as "always_inline".
AnalysisGetter Wrapper for FunctionAnalysisManager.
AnalysisInfoMixin A CRTP mix-in that provides informational APIs needed for analysis passes.
AnalysisKey A special type used by analysis passes to provide an address that identifies that particular analysis pass type.
AnalysisManager A container for analyses that lazily runs them and caches their results.
AnalysisResolver AnalysisResolver - Simple interface used by Pass objects to pull all analysis information out of pass manager that is responsible to manage the pass.
AnalysisSetKey A special type used to provide an address that identifies a set of related analyses. These sets are primarily used below to mark sets of analyses as preserved.
AnalysisUsage Represent the analysis usage information of a pass. This tracks analyses that the pass REQUIRES (must be available when the pass runs), REQUIRES TRANSITIVE (must be available throughout the lifetime of the pass), and analyses that the pass PRESERVES (the pass does not invalidate the results of these analyses). This information is provided by a pass to the Pass infrastructure through the getAnalysisUsage virtual function.
Annotation2MetadataPass Pass to convert llvm.global.annotations to !annotation metadata.
AnnotationRemarksPass
AnonNamespaceEmitter
AnonymousNameInit "anonymous_n" - Represent an anonymous record name
AntiDepBreaker This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards).
Any Type-erased holder for a single copy-constructible value.
AnyCoroEndInst
AnyCoroIdInst This represents a common base class for llvm.coro.id instructions.
AnyCoroIdRetconInst This represents either the llvm.coro.id.retcon or llvm.coro.id.retcon.once instruction.
AnyCoroSuspendInst
AnyMemCpyInst This class represents any memcpy intrinsic i.e. llvm.element.unordered.atomic.memcpy and llvm.memcpy
AnyMemIntrinsic
AnyMemMoveInst This class represents any memmove intrinsic i.e. llvm.element.unordered.atomic.memmove and llvm.memmove
AnyMemSetInst This class represents any memset intrinsic
AnyMemTransferInst
AppendingBinaryByteStream An implementation of WritableBinaryStream which can write at its end causing the underlying data to grow. This class owns the underlying data.
AppleAccelTableData A base class for different implementations of Data classes for Apple Accelerator Tables. The columns in the table are defined by the static Atoms variable defined on the subclasses.
AppleAccelTableOffsetData Accelerator table data implementation for simple Apple accelerator tables with just a DIE reference.
AppleAccelTableStaticOffsetData Accelerator table data implementation for simple Apple accelerator tables with a DIE offset but no actual DIE pointer.
AppleAccelTableStaticTypeData Accelerator table data implementation for type accelerator tables with a DIE offset but no actual DIE pointer.
AppleAccelTableTypeData Accelerator table data implementation for Apple type accelerator tables.
AppleAcceleratorTable This implements the Apple accelerator table format, a precursor of the DWARF 5 accelerator table format.
ArgInfo Helper struct shared between Function Specialization and SCCP Solver.
Argument This class represents an incoming formal argument to a Function. A formal argument, since it is formal'', does not contain an actual value but instead represents the type, argument number, and attributes of an argument for a specific function. When used in the body of said function, the argument of course represents the value of the actual argument that the function was called with.
ArgumentInit
ArgumentPromotionPass Argument promotion pass.
ArrayRecycler Recycle small arrays allocated from a BumpPtrAllocator.
ArrayRef Represent a constant reference to an array (0 or more elements consecutively in memory), i.e. a start pointer and a length. It allows various APIs to take consecutive elements easily and conveniently.
ArrayType Class to represent array types.
AsmCommentConsumer A callback class which is notified of each comment in an assembly file as it is lexed.
AsmCond AsmCond - Class to support conditional assembly
AsmFieldInfo
AsmLexer
AsmParserContext Registry of file location information for LLVM IR constructs.
AsmPrinter This class is intended to be used as a driving class for all asm writers.
AsmPrinterAnalysis
AsmPrinterHandler Collects and handles AsmPrinter objects required to build debug or EH information.
AsmRewrite
AsmToken Target independent representation for an assembler token.
AsmTypeInfo
AssemblerConstantPools
AssemblyAnnotationWriter
AssertAlignSDNode An SDNode that records if a register contains a value that is guaranteed to be aligned accordingly.
AssertingVH Value handle that asserts if the Value is deleted.
AssignGUIDPass
AssignmentTrackingAnalysis
AssignmentTrackingPass Convert llvm.dbg.declare intrinsics into sets of llvm.dbg.assign intrinsics by treating stores to the dbg.declare'd address as assignments to the variable. Not all kinds of variables are supported yet; those will be left with their dbg.declare intrinsics. The pass sets the debug-info-assignment-tracking module flag to true to indicate assignment tracking has been enabled.
AssumeAlignInfo
AssumeBuilderPass This pass will try to build an llvm.assume for every instruction in the function. Its main purpose is testing.
AssumeDereferenceableInfo
AssumeInst This represents the llvm.assume intrinsic.
AssumeNoUndefInfo
AssumeNonNullInfo
AssumeSeparateStorageInfo
AssumeSimplifyPass This pass attempts to minimize the number of assume without loosing any information.
AssumptionAnalysis A function analysis which provides an AssumptionCache.
AssumptionCache A cache of @llvm.assume calls within a function.
AssumptionCacheTracker An immutable pass that tracks lazily created AssumptionCache objects.
AssumptionPrinterPass Printer pass for the AssumptionAnalysis results.
AtomicCmpXchgInst An instruction that atomically checks whether a specified value is in a memory location, and, if it is, stores a new value there. The value returned by this instruction is a pair containing the original value as first element, and an i1 indicating success (true) or failure (false) as second element.
AtomicExpandPass
AtomicInfo
AtomicRMWInst an instruction that atomically reads a memory location, combines it with another value, and then stores the result back. Returns the old value.
AtomicSDNode This is an SDNode representing atomic operations.
AttrBuilder This class is used in conjunction with the Attribute::get method to create an Attribute object. The object itself is uniquified. The Builder's value, however, is not. So this can be used as a quick way to test for equality, presence of attributes, etc.
Attribute Functions, function parameters, and return types can have attributes to indicate how they should be treated by optimizations and code generation. This class represents one of those attributes. It's light-weight and should be passed around by-value.
AttributeImpl
AttributeList This class holds the attributes for a function, its return value, and its parameters. You access the attributes for each of them via an index into the AttributeList object. The function attributes are at index `AttributeList::FunctionIndex', the return value is at index `AttributeList::ReturnIndex', and the attributes for the parameters start at index `AttributeList::FirstArgIndex'.
AttributeListImpl
AttributeMask This class stores enough information to efficiently remove some attributes from an existing AttrBuilder, AttributeSet or AttributeList.
AttributeSet This class holds the attributes for a particular argument, parameter, function, or return value. It is an immutable value type that is cheap to copy. Adding and removing enum attributes is intended to be fast, but adding and removing string or integer attributes involves a FoldingSet lookup.
AttributeSetNode
Attributor The fixpoint analysis framework that orchestrates the attribute deduction.
AttributorCGSCCPass
AttributorCallGraph
AttributorConfig Configuration for the Attributor.
AttributorLightCGSCCPass A more lightweight version of the Attributor which only runs attribute inference but no simplifications.
AttributorLightPass A more lightweight version of the Attributor which only runs attribute inference but no simplifications.
AttributorPass Module pass that runs the attributor analysis.
AutoInitRemark Special case for -ftrivial-auto-var-init remarks.
Automaton A deterministic finite-state automaton. The automaton is defined in TableGen; this object drives an automaton defined by tblgen-emitted tables.
BBClusterInfo
BCArray Represents an array of some other type.
BCBlob Represents an untyped blob of bytes.
BCBlockRAII RAII object to pair entering and exiting a sub-block.
BCChar6 Represents a character encoded in LLVM's Char6 encoding.
BCDumpOptions
BCFixed Represents a fixed-width value in a bitcode record.
BCGenericRecordLayout Represents a single bitcode record type.
BCLiteral Represents a literal operand in a bitcode record.
BCRecordLayout A record with a fixed record code.
BCVBR Represents a variable-width value in a bitcode record.
BDCEPass
BFIDOTGraphTraitsBase
BLAKE3 A class that wraps the BLAKE3 algorithm.
BPFunctionNode A function with a set of utility nodes where it is beneficial to order two functions close together if they have similar utility nodes
BPFunctionNodeTest_Basic_Test
BPIPassTrait Simple trait class that provides a mapping between BPI passes and the corresponding BPInfo.
BTFContext
BTFParser
BalancedPartitioning
BalancedPartitioningConfig Algorithm parameters; default values are tuned on real-world binaries
BalancedPartitioningTest_Basic_Test
BalancedPartitioningTest_Large_Test
BalancedPartitioningTest_MoveGain_Test
BaseIndexOffset Helper struct to parse and store a memory address as base + index + offset. We ignore sign extensions when it is safe to do so. The following two expressions are not equivalent. To differentiate we need to store whether there was a sign extension involved in the index computation. (load (i64 add (i64 copyfromreg %c) (i64 signextend (add (i8 load %index) (i8 1)))) vs
BaseRecord
BasicAA Analysis pass providing a never-invalidated alias analysis result.
BasicAAResult This is the AA result object for the basic, local, and stateless alias analysis. It implements the AA query interface in an entirely stateless manner. As one consequence, it is never invalidated due to IR changes. While it does retain some storage, that is used as an optimization and not to preserve information from query to query. However it does retain handles to various other analyses and must be recomputed when those analyses are.
BasicAAWrapperPass Legacy wrapper pass to provide the BasicAAResult object.
BasicBlock LLVM Basic Block Representation
BasicBlockEdge
BasicBlockMatchingAndInference
BasicBlockSDNode
BasicBlockSectionsProfileReader
BasicBlockSectionsProfileReaderAnalysis Analysis pass providing the BasicBlockSectionsProfileReader.
BasicBlockSectionsProfileReaderWrapperPass
BasicDIEUnit
BasicSubtargetFeatureKV
BasicSubtargetSubTypeKV Used to provide key value pairs for feature and CPU bit flags.
BasicTTIImpl Concrete BasicTTIImpl that can be used if no further customization is needed.
BasicTTIImplBase Base class which can be used to help build a TTI implementation.
BatchAACrossIterationScope Temporarily set the cross iteration mode on a BatchAA instance.
BatchAAResults This class is a wrapper over an AAResults, and it is intended to be used only when there are no IR changes inbetween queries. BatchAAResults is reusing the same AAQueryInfo to preserve the state across queries, esentially making AA work in "batch mode". The internal state cannot be cleared, so to go "out-of-batch-mode", the user must either use AAResults, or create a new BatchAAResults.
BinOpInit !op (X, Y) - Combine two inits.
BinaryByteStream An implementation of BinaryStream which holds its entire data set in a single contiguous buffer. BinaryByteStream guarantees that no read operation will ever incur a copy. Note that BinaryByteStream does not own the underlying buffer.
BinaryInstrProfCorrelator BinaryInstrProfCorrelator - A child of InstrProfCorrelatorImpl that takes an object file as input to correlate profiles.
BinaryItemStream BinaryItemStream represents a sequence of objects stored in some kind of external container but for which it is useful to view as a stream of contiguous bytes. An example of this might be if you have a collection of records and you serialize each one into a buffer, and store these serialized records in a container. The pointers themselves are not laid out contiguously in memory, but we may wish to read from or write to these records as if they were.
BinaryItemTraits
BinaryOpIntrinsic This class represents an intrinsic that is based on a binary operation. This includes op.with.overflow and saturating add/sub intrinsics.
BinaryOperator
BinaryStream An interface for accessing data in a stream-like format, but which discourages copying. Instead of specifying a buffer in which to copy data on a read, the API returns an ArrayRef to data owned by the stream's implementation. Since implementations may not necessarily store data in a single contiguous buffer (or even in memory at all), in such cases a it may be necessary for an implementation to cache such a buffer so that it can return it.
BinaryStreamError Base class for errors originating when parsing raw PDB files
BinaryStreamReader Provides read only access to a subclass of BinaryStream. Provides bounds checking and helpers for writing certain common data types such as null-terminated strings, integers in various flavors of endianness, etc. Can be subclassed to provide reading of custom datatypes, although no are overridable.
BinaryStreamRef BinaryStreamRef is to BinaryStream what ArrayRef is to an Array. It provides copy-semantics and read only access to a "window" of the underlying BinaryStream. Note that BinaryStreamRef is not a BinaryStream. That is to say, it does not inherit and override the methods of BinaryStream. In general, you should not pass around pointers or references to BinaryStreams and use inheritance to achieve polymorphism. Instead, you should pass around BinaryStreamRefs by value and achieve polymorphism that way.
BinaryStreamRefBase Common stuff for mutable and immutable StreamRefs.
BinaryStreamWriter Provides write only access to a subclass of WritableBinaryStream. Provides bounds checking and helpers for writing certain common data types such as null-terminated strings, integers in various flavors of endianness, etc. Can be subclassed to provide reading and writing of custom datatypes, although no methods are overridable.
BinarySubstreamRef
BitCastInst This class represents a no-op cast from one type to another.
BitCastOperator
BitCodeAbbrev BitCodeAbbrev - This class represents an abbreviation record. An abbreviation allows a complex record that has redundancy to be stored in a specialized format instead of the fully-general, fully-vbr, format.
BitCodeAbbrevOp BitCodeAbbrevOp - This describes one or more operands in an abbreviation. This is actually a union of two different things: 1. It could be a literal integer value ("the operand is always 17"). 2. It could be an encoding specification ("this operand encoded like so").
BitInit 'true'/'false' - Represent a concrete initializer for a bit.
BitIntegerState Specialization of the integer state for a bit-wise encoding.
BitMaskClassIterator This class encapuslates the logic to iterate over bitmask returned by the various RegClass related APIs. E.g., this class can be used to iterate over the subclasses provided by TargetRegisterClass::getSubClassMask or SuperRegClassIterator::getMask.
BitRecTy 'bit' - Represent a single bit
BitVector
BitcodeAnalyzer
BitcodeFileContents
BitcodeLTOInfo Basic information extracted from a bitcode module to be used for LTO.
BitcodeModule Represents a module in a bitcode file.
BitcodeWriter
BitcodeWriterPass Pass for writing a module of IR out to a bitcode file.
Bitfield Holds functions to get, set or test bitfields.
BitsInit '{ a, b, c }' - Represents an initializer for a BitsRecTy value. It contains a vector of bits, whose size is determined by the type.
BitsRecTy 'bits<n>' - Represent a fixed number of bits
Bitset This is a constexpr reimplementation of a subset of std::bitset. It would be nice to use std::bitset directly, but it doesn't support constant initialization.
BitstreamBlockInfo This class maintains the abbreviations read from a block info block.
BitstreamCursor This represents a position within a bitcode file, implemented on top of a SimpleBitstreamCursor.
BitstreamEntry When advancing through a bitstream cursor, each advance can discover a few different kinds of entries:
BitstreamWriter
BlendedBlockHash An object wrapping several components of a basic block hash. The combined (blended) hash is represented and stored as one uint64_t, while individual components are of smaller size (e.g., uint16_t or uint8_t).
BlockAddress The address of a basic block.
BlockAddressSDNode
BlockCoverageInference
BlockDataT
BlockExtractorPass
BlockFrequency
BlockFrequencyAnalysis Analysis pass which computes BlockFrequencyInfo.
BlockFrequencyInfo BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequencies.
BlockFrequencyInfoImpl Shared implementation for block frequency analysis.
BlockFrequencyInfoImplBase Base class for BlockFrequencyInfoImpl
BlockFrequencyInfoWrapperPass Legacy analysis pass which computes BlockFrequencyInfo.
BlockFrequencyPrinterPass Printer pass for the BlockFrequencyInfo results.
BlockToIndexMapping
BooleanLoopTags Single-operand tags replacing a removed two-operand form !{!"<Enable>", i1 X}: X = true selects Enable, X = false selects Disable.
BooleanState Simple wrapper for a single bit (boolean) state.
BoundsCheckingPass A pass to instrument code and perform run-time bounds checking on loads, stores, and other memory intrinsics.
BranchFolderPass
BranchProbability
BranchProbabilityAnalysis Analysis pass which computes BranchProbabilityInfo.
BranchProbabilityInfo Analysis providing branch probability information.
BranchProbabilityInfoWrapperPass Legacy analysis pass which computes BranchProbabilityInfo.
BranchProbabilityPrinterPass Printer pass for the BranchProbabilityAnalysis results.
BranchRelaxationPass
BreakCriticalEdgesPass
BreakFalseDepsPass
BuildAttributeItem
BuildAttributeSubSection
BuildVectorSDNode A "pseudo-class" with methods for operating on BUILD_VECTORs.
BumpPtrAllocatorImpl Allocate memory in an ever growing pool, as if by bump-pointer.
ByteProvider Represents known origin of an individual byte in combine pattern. The value of the byte is either constant zero, or comes from memory / some other productive instruction (e.g. arithmetic instructions). Bit manipulation instructions like shifts are not ByteProviders, rather are used to extract Bytes.
ByteType Class to represent byte types.
CCState CCState - This class holds information needed while lowering arguments and return values. It captures which registers are already assigned and which stack slots are used. It provides accessors to allocate these values.
CCValAssign CCValAssign - Represent assignment of one arg/retval to a location.
CFGAnalyses Represents analyses that only rely on functions' control flow.
CFGMST An union-find based Minimum Spanning Tree for CFG
CFGOnlyPrinterPass
CFGOnlyViewerPass
CFGPrinterPass
CFGProfile
CFGSCCPrinterPass
CFGViewerPass
CFGuardPass
CFIFixupLegacy
CFIFixupPass
CFIFunctionFrameAnalyzer This class implements the CFIFunctionFrameReceiver interface to validate Call Frame Information in a stream of function frames. For validation, it instantiates a DWARFCFIAnalysis for each frame. The errors/warnings are emitted through the MCContext instance to the constructor. If a frame finishes without being started or if all the frames are not finished before this classes is destructed, the program fails through an assertion.
CFIFunctionFrameReceiver This abstract base class is an interface for receiving DWARF function frames Call Frame Information. DWARFCFIFunctionFrameStreamer channels the function frames information gathered from an MCStreamer using a pointer to an instance of this class for the whole program.
CFIFunctionFrameStreamer This class is an MCStreamer implementation that watches for machine instructions and CFI directives. It cuts the stream into function frames and channels them to CFIFunctionFrameReceiver. A function frame is the machine instructions and CFI directives that are between .cfi_startproc and .cfi_endproc directives.
CFIInstBuilder Helper class for creating CFI instructions and inserting them into MIR.
CFIInstrInserterPass
CGDataError
CGDataOStream A wrapper class to abstract writer stream with support of bytes back patching.
CGDataPatchItem A struct to define how the data stream should be patched.
CGPassBuilderOption
CGProfilePass
CGSCCToFunctionPassAdaptor Adaptor that maps from a SCC to its functions.
CGSCCUpdateResult Support structure for SCC passes to communicate updates the call graph back to the CGSCC pass manager infrastructure.
CHERICapabilityFormatBase
CHERIoTCapabilityFormat
CRCTable A custom std::array with 256 entries, that also has a print function.
CSEConfigBase
CSEConfigConstantOnly
CSEConfigFull
CSEMIRBuilder Defines a builder that does CSE of MachineInstructions using GISelCSEInfo. Eg usage.
CSKYAttributeParser
CacheCost CacheCost represents the estimated cost of a inner loop as the number of cache lines used by the memory references it contains. The 'cache cost' of a loop 'L' in a loop nest 'LN' is computed as the sum of the cache costs of all of its reference groups when the loop is considered to be in the innermost position in the nest. A reference group represents memory references that fall into the same cache line. Each reference group is analysed with respect to the innermost loop in a loop nest. The cost of a reference is defined as follow: - one if it is loop invariant w.r.t the innermost loop, - equal to the loop trip count divided by the cache line times the reference stride if the reference stride is less than the cache line size (CLS), and the coefficient of this loop's index variable used in all other subscripts is zero (e.g. RefCost = TripCount/(CLS/RefStride)) - equal to the innermost loop trip count if the reference stride is greater or equal to the cache line size CLS.
CachePruningPolicy Policy for the pruneCache() function. A default constructed CachePruningPolicy provides a reasonable default policy.
CachedFileStream This class wraps an output stream for a file. Most clients should just be able to return an instance of this base class from the stream callback, but if a client needs to perform some action after the stream is written to, that can be done by deriving from this class and overriding the destructor or the commit() method.
CachedHashString A container which contains a string, which it owns, plus a precomputed hash.
CachedHashStringRef A container which contains a StringRef plus a precomputed hash.
CalculateSmallVectorDefaultInlinedElements Helper class for calculating the default number of inline elements for SmallVector<T>.
CallBase Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to calling a function.
CallBrInst CallBr instruction, tracking function calls that may not return control but instead transfer it to a third location. The SubclassData field is used to hold the calling convention of the call.
CallEntryPseudoSourceValue
CallGraph The basic data container for the call graph of a Module of IR.
CallGraphAnalysis An analysis pass to compute the CallGraph for a Module.
CallGraphDOTPrinterPass Pass for printing the call graph to a dot file
CallGraphNode A node in the call graph for a module.
CallGraphPrinterPass Printer pass for the CallGraphAnalysis results.
CallGraphSCC CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on.
CallGraphSCCPass
CallGraphSCCsPrinterPass Printer pass for the summarized CallGraphAnalysis results.
CallGraphUpdater Wrapper to unify "old style" CallGraph and "new style" LazyCallGraph.
CallGraphViewerPass Pass for viewing the call graph
CallGraphWrapperPass The ModulePass which wraps up a CallGraph and the logic to build it.
CallInst This class represents a function call, abstracting a target machine's calling convention. This class uses low bit of the SubClassData field to indicate whether or not this is a tail call. The rest of the bits hold the calling convention of the call.
CallLowering
CallSiteFormat
CallSiteSplittingPass
CallbackVH Value handle with callbacks on RAUW and destruction.
CalledValuePropagationPass
CalleeInfo Class to accumulate and hold information about a callee.
CalleeSavedInfo The CalleeSavedInfo class tracks the information need to locate where a callee saved register is in the current frame. Callee saved reg can also be saved to a different register rather than on the stack by setting DstReg instead of FrameIdx.
CallsiteID
CallsiteInfo Summary of memprof callsite metadata.
CanonicalLoopInfo Class to represented the control flow structure of an OpenMP canonical loop.
CanonicalizeAliasesPass Simple pass that canonicalizes aliases.
CanonicalizeFreezeInLoopsPass A pass that canonicalizes freeze instructions in a loop.
CaptureAnalysis Virtual base class for providers of capture analysis.
CaptureInfo Represents which components of the pointer may be captured in which location. This represents the captures(...) attribute in IR.
CaptureResult Result of a PointerMayBeCaptured query, which includes the captured components for both the case where return is considered a capture, and where it isn't.
CaptureTracker This callback is used in conjunction with PointerMayBeCaptured. In addition to the interface here, you'll need to provide your own getters to see whether anything was captured.
CastInfo This struct provides a method for customizing the way a cast is performed. It inherits from CastIsPossible, to support the case of declaring many CastIsPossible specializations without having to specialize the full CastInfo.
CastInst This is the base class for all instructions that perform data casts. It is simply provided so that instruction category testing can be performed with code like:
CastIsPossible This struct provides a way to check if a given cast is possible. It provides a static function called isPossible that is used to check if a cast can be performed. It should be overridden like this:
CatchPadInst
CatchReturnInst
CatchSwitchInst
CfiFunctionIndex Encapsulate the names of CFI target functions. It interfaces with ThinLTO to determine efficiently which of the names need to be exported for a particular module.
ChangeReporter
CheckDebugMachineModulePass
Clause
CleanupInstaller
CleanupPadInst
CleanupReturnInst
ClonedCodeInfo This struct can be used to capture information about code being cloned, while it is being cloned.
ClrEHUnwindMapEntry
CmpInst This class is the base class for the comparison instructions. Abstract base class of comparison instructions.
CmpIntrinsic This class represents a ucmp/scmp intrinsic
CmpPredicate An abstraction over a floating-point predicate, and a pack of an integer predicate with samesign information. Some functions in ICmpInst construct and return this type in place of a Predicate.
CoalescerPair
CoalescingBitVector A bitvector that coalesces adjacent set bits into intervals.
CodeExtractor Utility class for extracting code into a new function.
CodeExtractorAnalysisCache A cache for the CodeExtractor analysis. The operation CodeExtractor::extractCodeRegion is guaranteed not to invalidate this object. This object should conservatively be considered invalid if any other mutating operations on the IR occur.
CodeGenCoverage
CodeGenData
CodeGenDataReader
CodeGenDataWriter
CodeGenPassBuilder This class provides access to building LLVM's passes.
CodeGenPreparePass
CodeGenTargetMachineImpl implements a set of functionality in the TargetMachine class for targets that make use of the independent code generator (CodeGen) library. Must not be used directly in code unless to inherit its implementation.
CodeMetrics Utility to calculate the size and a few similar metrics for a set of basic blocks.
CodeViewContext CodeViewContext has the real knowledge about this format, so let it access our members.
CollectorMetadataAnalysis An analysis pass which caches information about the entire Module. Records a cache of the 'active' gc strategy objects for the current Module.
CombinationGenerator Exhaustive generator of combinations across a vector-of-vectors choice space.
Combiner Combiner implementation. This is per-function, so passes need to recreate one of these each time they enter a new function.
CombinerHelper
CombinerInfo
Comdat
CompileUnitIdentifiers
ComplexDeinterleavingPass
ConcreteOperator A helper template for defining operators for individual opcodes.
ConcurrentHashTableByPtr Concurrent, insert-only hash table that stores unique KeyDataTy values.
ConcurrentHashTableInfoByPtr Default hash/equality/create policy for ConcurrentHashTableByPtr.
CondBrInst Conditional Branch instruction.
CondCodeSDNode
CondContext Evaluate query assuming this condition holds.
CondOpInit !cond(condition_1: value1, ... , condition_n: value) Selects the first value for which condition is true. Otherwise reports an error.
ConnectedVNInfoEqClasses ConnectedVNInfoEqClasses - Helper class that can divide VNInfos in a LiveInterval into equivalence clases of connected components. A LiveInterval that has multiple connected components can be broken into multiple LiveIntervals.
ConstMIBundleOperands ConstMIBundleOperands - Iterate over all operands in a const bundle of machine instructions.
ConstStrippingForwardingCast Provides a cast trait that strips const from types to make it easier to implement a const-version of a non-const cast. It just removes boilerplate and reduces the amount of code you as the user need to implement. You can use it like this:
Constant This is an important base class in LLVM. It provides the common facilities of all constant values in an LLVM program. A constant is a value that is immutable at runtime. Functions are constants because their address is immutable. Same with global variables.
ConstantAggrKeyType
ConstantAggregate Base class for aggregate constants (with operands).
ConstantAggregateZero All zero aggregate value
ConstantArray ConstantArray - Constant Array Declarations
ConstantAsMetadata
ConstantByte Class for constant bytes.
ConstantData Base class for constants with no operands.
ConstantDataArray An array constant whose element type is a simple 1/2/4/8-byte integer, bytes or float/double, and whose elements are just simple data values (i.e. ConstantInt/ConstantFP). This Constant node has no operands because it stores all of the elements of the constant as densely packed data, instead of as Value*'s.
ConstantDataArraySlice Represents offset+length into a ConstantDataArray.
ConstantDataSequential ConstantDataSequential - A vector or array constant whose element type is a simple 1/2/4/8-byte integer/byte or half/bfloat/float/double, and whose elements are just simple data values (i.e. ConstantInt/ConstantByte/ ConstantFP). This Constant node has no operands because it stores all of the elements of the constant as densely packed data, instead of as Value*'s.
ConstantDataVector A vector constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. ConstantInt/ConstantFP). This Constant node has no operands because it stores all of the elements of the constant as densely packed data, instead of as Value*'s.
ConstantExpr A constant value that is initialized with an expression using other constant values.
ConstantExprKeyType
ConstantFP ConstantFP - Floating Point Values [float, double]
ConstantFPRange This class represents a range of floating-point values.
ConstantFPSDNode
ConstantFolder ConstantFolder - Create constants with minimum, target independent, folding.
ConstantHoistingPass
ConstantInt This is the shared class of boolean and integer constants. This class represents both boolean and integral constants. Class for constant integers.
ConstantMergePass A pass that merges duplicate global constants into a single constant.
ConstantPointerNull A constant pointer value that points to null. This represents both scalar pointer nulls and vector splats of pointer nulls.
ConstantPool
ConstantPoolEntry
ConstantPoolSDNode
ConstantPtrAuth A signed pointer, in the ptrauth sense.
ConstantPtrAuthKeyType
ConstantRange This class represents a range of values.
ConstantRangeList This class represents a list of constant ranges.
ConstantSDNode
ConstantStruct
ConstantTargetNone A constant target extension type default initializer
ConstantTokenNone A constant token which is empty
ConstantUniqueMap
ConstantVector Constant Vector Declarations
ConstrainedFPCmpIntrinsic Constrained floating point compare intrinsics.
ConstrainedFPIntrinsic This is the common base class for constrained floating point intrinsics.
ConstraintEliminationPass
ConstraintSystem
ContextAndReplaceableUses Pointer to the context, with optional RAUW support.
ContextTotalSize
ContextTrieNode
ContextualFoldingSetTrait Like FoldingSetTrait, but for ContextualFoldingSets.
ControlFlowHub Create a control-flow hub that splits branches through guard blocks.
ControlHeightReductionPass
ConvergenceControlInst Represents calls to the llvm.experimintal.convergence.* intrinsics.
ConvergingVLIWScheduler
CopyProfPass
CopyProfStoresPass
CoroAlignInst This represents the llvm.coro.align instruction.
CoroAllocInst This represents the llvm.coro.alloc instruction.
CoroAllocaAllocInst This represents the llvm.coro.alloca.alloc instruction.
CoroAllocaFreeInst This represents the llvm.coro.alloca.free instruction.
CoroAllocaGetInst This represents the llvm.coro.alloca.get instruction.
CoroAnnotationElidePass
CoroAsyncContextAllocInst This represents the llvm.coro.context.alloc instruction.
CoroAsyncContextDeallocInst This represents the llvm.coro.context.dealloc instruction.
CoroAsyncEndInst This represents the llvm.coro.end instruction.
CoroAsyncResumeInst This represents the llvm.coro.async.resume instruction. During lowering this is replaced by the resume function of a suspend point (the continuation function).
CoroAsyncSizeReplace This represents the llvm.coro.async.size.replace instruction.
CoroAwaitSuspendInst This represents the llvm.coro.await.suspend.{void,bool,handle} instructions.
CoroBeginInst This class represents the llvm.coro.begin or llvm.coro.begin.custom.abi instructions.
CoroCleanupPass
CoroConditionalWrapper
CoroDeadInst This represents the llvm.coro.dead instruction.
CoroEarlyPass
CoroElidePass
CoroEndInst This represents the llvm.coro.end instruction.
CoroEndResults This represents the llvm.end.results instruction.
CoroFrameInst This represents the llvm.coro.frame instruction.
CoroFreeInst This represents the llvm.coro.free instruction.
CoroIdAsyncInst This represents the llvm.coro.id.async instruction.
CoroIdInst This represents the llvm.coro.id instruction.
CoroIdRetconInst This represents the llvm.coro.id.retcon instruction.
CoroIdRetconOnceInst This represents the llvm.coro.id.retcon.once instruction.
CoroIsInRampInst This represents the llvm.coro.is_in_ramp instruction.
CoroPromiseInst This represents the llvm.coro.promise instruction.
CoroSaveInst This represents the llvm.coro.save instruction.
CoroSizeInst This represents the llvm.coro.size instruction.
CoroSplitPass
CoroSubFnInst This class represents the llvm.coro.subfn.addr instruction.
CoroSuspendAsyncInst This represents the llvm.coro.suspend.async instruction.
CoroSuspendInst This represents the llvm.coro.suspend instruction.
CoroSuspendRetconInst This represents the llvm.coro.suspend.retcon instruction.
CorrelatedValuePropagationPass
CostBenefitPair
CostModelPrinterPass Printer pass for cost modeling results.
CostTblEntryT Cost Table Entry
CountSumOrPercent
CountVisitsPass
CrashRecoveryContext Crash recovery helper object.
CrashRecoveryContextCleanup Abstract base class of cleanup handlers.
CrashRecoveryContextCleanupBase Base class of cleanup handler that controls recovery of resources of the given type.
CrashRecoveryContextCleanupRegistrar Helper class for managing resource cleanups.
CrashRecoveryContextDeleteCleanup Cleanup handler that reclaims resource by calling 'delete' on it.
CrashRecoveryContextDestructorCleanup Cleanup handler that reclaims resource by calling destructor on it.
CrashRecoveryContextReleaseRefCleanup Cleanup handler that reclaims resource by calling its method 'Release'.
CriticalEdgeSplittingOptions Option class for critical edge splitting.
CrossDSOCFIPass
CtxProfAnalysis
CtxProfAnalysisPrinterPass
CxxUnwindMapEntry
CycleAnalysis Analysis pass which computes a CycleInfo.
CycleInfo
CycleInfoPrinterPass
CycleInfoVerifierPass
CycleInfoWrapperPass Legacy analysis pass which computes a CycleInfo.
CycleRef Opaque handle to a cycle within a GenericCycleInfo that wraps the cycle's preorder index. Handles remain valid as long as the cycle forest is not recomputed; addBlockToCycle() adds a block but never adds, removes, or reorders cycles, so it leaves every handle valid.
DAGDeltaAlgorithm Implements a "delta debugging" algorithm for minimizing directed acyclic graphs using a predicate function.
DCData
DCEPass Basic Dead Code Elimination pass.
DDGAnalysis Analysis pass that builds the DDG for a loop.
DDGAnalysisPrinterPass Textual printer pass for the DDG of a loop.
DDGBuilder Concrete implementation of a pure data dependence graph builder. This class provides custom implementation for the pure-virtual functions used in the generic dependence graph build algorithm.
DDGDotPrinterPass
DDGEdge Data Dependency Graph Edge. An edge in the DDG can represent a def-use relationship or a memory dependence based on the result of DependenceAnalysis. A rooted edge connects the root node to one of the components of the graph.
DDGNode Data Dependence Graph Node The graph can represent the following types of nodes: 1. Single instruction node containing just one instruction. 2. Multiple instruction node where two or more instructions from the same basic block are merged into one node. 3. Pi-block node which is a group of other DDG nodes that are part of a strongly-connected component of the graph. A pi-block node contains more than one single or multiple instruction nodes. The root node cannot be part of a pi-block. 4. Root node is a special node that connects to all components such that there is always a path from it to any node in the graph.
DFAJumpThreadingPass
DFAPacketizer
DFCalculateWorkObject
DGEdge Represent an edge in the directed graph. The edge contains the target node it connects to.
DGNode Represent a node in the directed graph. The node has a (possibly empty) list of outgoing edges.
DIArgList List of ValueAsMetadata, to be used as an argument to a dbg.value intrinsic.
DIAssignID Assignment ID. Used to link stores (as an attachment) and dbg.assigns (as an operand). DIAssignID metadata is never uniqued as we compare instances using referential equality (the instance/address is the ID).
DIBasicType Basic type, like 'int' or 'float'.
DIBuilder
DICommonBlock Debug common block.
DICompileUnit Compile unit.
DICompositeType Composite types.
DIContext
DIDerivedType Derived types.
DIDumpOptions Container for dump options that control which debug information will be dumped.
DIE A structured debug information entry. Has an abbreviation which describes its organization.
DIEAbbrev Dwarf abbreviation, describes the organization of a debug information object.
DIEAbbrevData Dwarf abbreviation data, describes one attribute of a Dwarf abbreviation.
DIEAbbrevSet Helps unique DIEAbbrev objects and assigns abbreviation numbers.
DIEAddrOffset A BaseTypeRef DIE.
DIEBaseTypeRef A BaseTypeRef DIE.
DIEBlock DIEBlock - Represents a block of values.
DIEDelta A simple label difference DIE.
DIEEntry A pointer to another debug information entry. An instance of this class can also be used as a proxy for a debug information entry not yet defined (ie. types.)
DIEExpr An expression DIE.
DIEInlineString A container for inline string values.
DIEInteger An integer value DIE.
DIELabel A label DIE.
DIELoc DIELoc - Represents an expression location.
DIELocList Represents a pointer to a location list in the debug_loc section.
DIEString A container for string pool string values.
DIEUnit Represents a compile or type unit.
DIEValue
DIEValueList A list of DIE values.
DIEnumerator Enumeration value.
DIExpression DWARF expression.
DIExpressionCursor Holds a DIExpression and keeps track of how many operands have been consumed so far.
DIFile File.
DIFixedPointType Fixed-point type.
DIGenericSubrange
DIGlobal Container for description of a global variable.
DIGlobalVariable Global variables.
DIGlobalVariableExpression A pair of DIGlobalVariable and DIExpression.
DIImportedEntity An imported module (C++ using directive or similar).
DIInliningInfo A format-neutral container for inlined code description.
DILabel Label.
DILexicalBlock Debug lexical block.
DILexicalBlockBase
DILexicalBlockFile
DILineInfo A format-neutral container for source line information.
DILineInfoSpecifier Controls which fields of DILineInfo container should be filled with data.
DILocal
DILocalScope A scope for locals.
DILocalVariable Local variable.
DILocation Debug location.
DIMacro Macro
DIMacroFile Macro file
DIMacroNode Macro Info DWARF-like metadata node.
DIModule Represents a module in the programming language, for example, a Clang module, or a Fortran module.
DINamespace Debug lexical block.
DINode Tagged DWARF-like metadata node.
DIObjCProperty
DIProperty A property of a class or structure.
DIScope Base class for scope-like contexts.
DISourceLanguageName Wrapper structure that holds source language identity metadata that includes language name, optional language version, and an optional language dialect.
DIStringType String type, Fortran CHARACTER(n)
DISubprogram Subprogram description. Uses SubclassData1.
DISubrange Array subrange.
DISubrangeType Subrange type. This is somewhat similar to DISubrange, but it is also a DIType.
DISubroutineType Type array for a subprogram.
DITemplateParameter Base class for template parameters.
DITemplateTypeParameter
DITemplateValueParameter
DIType Base class for types.
DIVariable Base class for variables.
DOTFuncInfo
DOTGraphTraits DOTGraphTraits - Template class that can be specialized to customize how graphs are converted to 'dot' graphs. When specializing, you may inherit from DefaultDOTGraphTraits if you don't need to override everything.
DOTGraphTraitsModulePrinterWrapperPass
DOTGraphTraitsModuleViewerWrapperPass
DOTGraphTraitsPrinter
DOTGraphTraitsPrinterWrapperPass
DOTGraphTraitsViewer
DOTGraphTraitsViewerWrapperPass
DOTMachineFuncInfo
DSEPass This class implements a trivial dead store elimination. We consider only the redundant stores that are local to a single Basic Block.
DSOLocalEquivalent Wrapper for a function that represents a value that functionally represents the original function. This can be a function, global alias to a function, or an ifunc.
DWARF5AccelTable
DWARF5AccelTableData The Data class implementation for DWARF v5 accelerator table. Unlike the Apple Data classes, this class is just a DIE wrapper, and does not know to serialize itself. The complete serialization logic is in the emitDWARF5AccelTable function.
DWARFAbbreviationDeclaration A single DWARF abbreviation declaration (code, tag, children, attributes).
DWARFAbbreviationDeclarationSet A set of DWARF abbreviation declarations.
DWARFAcceleratorTable The accelerator tables are designed to allow efficient random access (using a symbol name as a key) into debug info by providing an index of the debug info DIEs. This class implements the common functionality of Apple and DWARF 5 accelerator tables. TODO: Generalize the rest of the AppleAcceleratorTable interface and move it to this class.
DWARFAddressRange An absolute address range [LowPC, HighPC) within a section.]
DWARFAttribute Encapsulates a DWARF attribute value and all of the data required to describe the attribute value.
DWARFCFIAnalysis DWARFCFIAnalysis validates the DWARF Call Frame Information one machine instruction at a time. This class maintains an internal CFI state initialized with the prologue directives and updated with each instruction's associated directives. In each update, it checks if the machine instruction changes the CFI state in a way that matches the changes from the CFI directives. This checking may results in errors and warnings.
DWARFCFIState This class is used to maintain a CFI state, referred to as an unwinding row, during CFI analysis. The only way to modify the state is by updating it with a CFI directive.
DWARFCompileUnit
DWARFContext DWARFContext This data structure is the top level entity that deals with dwarf debug information parsing. The actual data is supplied through DWARFObj.
DWARFDataExtractor A DWARFDataExtractor (typically for an in-memory copy of an object-file section) plus a relocation map for that section, if there is one.
DWARFDataExtractorBase A DataExtractor suitable use for parsing dwarf from memory. Clients use Relocator::getRelocatedValueImpl to relocate values as appropriate.
DWARFDataExtractorSimple
DWARFDebugAbbrev
DWARFDebugAddrTable A class representing an address table as specified in DWARF v5. The table consists of a header followed by an array of address values from .debug_addr section.
DWARFDebugArangeSet
DWARFDebugAranges
DWARFDebugFrame A parsed .debug_frame or .eh_frame section
DWARFDebugInfoEntry DWARFDebugInfoEntry - A DIE with only the minimum required data.
DWARFDebugLine
DWARFDebugLoc
DWARFDebugLoclists
DWARFDebugMacro
DWARFDebugNames .debug_names section consists of one or more units. Each unit starts with a header, which is followed by a list of compilation units, local and foreign type units.
DWARFDebugPubTable Represents structure for holding and parsing .debug_pub* tables.
DWARFDebugRangeList A DWARF .debug_ranges range list.
DWARFDebugRnglist A class representing a single rangelist.
DWARFDebugRnglistTable
DWARFDie Utility class that carries the DWARF compile/type unit and the debug info entry in an object.
DWARFExpression
DWARFFormValue
DWARFGdbIndex
DWARFListEntryBase A base class for DWARF list entries, such as range or location list entries.
DWARFListTableBase A class representing a table of lists as specified in the DWARF v5 standard for location lists and range lists. The table consists of a header followed by an array of offsets into a DWARF section, followed by zero or more list entries. The list entries are kept in a map where the keys are the lists' section offsets.
DWARFListTableHeader A class representing the header of a list table such as the range list table in the .debug_rnglists section.
DWARFListType A base class for lists of entries that are extracted from a particular section, such as range lists or location lists.
DWARFLocationEntry A single location within a location list. Entries are stored in the DWARF5 form even if they originally come from a DWARF<=4 location list.
DWARFLocationExpression Represents a single DWARF expression, whose value is location-dependent. Typically used in DW_AT_location attributes to describe the location of objects.
DWARFLocationTable An abstract base class for various kinds of location tables (.debug_loc, .debug_loclists, and their dwo variants).
DWARFObject
DWARFSection
DWARFTypePrinter
DWARFTypeUnit
DWARFUnit A DWARF compile or type unit and its parsed DIEs.
DWARFUnitHeader Base class describing the header of any kind of "unit." Some information is specific to certain unit types. We separate this class out so we can parse the header before deciding what specific kind of unit to construct.
DWARFUnitIndex
DWARFUnitVector Describe a collection of units. Intended to hold all units either from .debug_info and .debug_types, or from .debug_info.dwo and .debug_types.dwo.
DWARFVerifier A class that verifies DWARF debug information given a DWARF Context.
DWPError
DWPStringPool
DWPWriter Direct ELF writer for DWP output.
DXContainerObjectWriter
DXILMetadataAnalysis
DXILMetadataAnalysisPrinterPass Printer pass for the DXILMetadataAnalysis results.
DXILMetadataAnalysisWrapperPass Legacy pass
DXILResourceAnalysis
DXILResourceBindingAnalysis
DXILResourceBindingInfo
DXILResourceBindingWrapperPass
DXILResourceMap
DXILResourcePrinterPass Printer pass for the DXILResourceAnalysis results.
DXILResourceTypeAnalysis
DXILResourceTypeMap
DXILResourceTypeWrapperPass
DXILResourceWrapperPass
DXILUpgradePass Upgrade DXIL-style metadata into their LLVM representations
DagInit (v a, b) - Represent a DAG tree value. DAG inits are required to have at least one value then a (possibly empty) list of arguments. Each argument can have a name associated with it.
DagRecTy 'dag' - Represent a dag fragment
DataDependenceGraph Data Dependency Graph
DataExtractor
DataFlowSanitizerPass
DataLayout A parsed version of the target data layout string in and methods for querying it.
DbgAssignIntrinsic This represents the llvm.dbg.assign instruction.
DbgDeclareInst This represents the llvm.dbg.declare instruction.
DbgInfoIntrinsic This is the common base class for debug info intrinsics.
DbgLabelInst This represents the llvm.dbg.label instruction.
DbgLabelInstrMap For each inlined instance of a source-level label, keep the corresponding DBG_LABEL instruction. The DBG_LABEL instruction could be used to generate a temporary (assembler) label before it.
DbgLabelRecord Records a position in IR for a source label (DILabel). Corresponds to the llvm.dbg.label intrinsic.
DbgMarker Per-instruction record of debug-info. If an Instruction is the position of some debugging information, it points at a DbgMarker storing that info. Each marker points back at the instruction that owns it. Various utilities are provided for manipulating the DbgRecords contained within this marker.
DbgRangeEntry
DbgRecord Base class for non-instruction debug metadata records that have positions within IR. Features various methods copied across from the Instruction class to aid ease-of-use. DbgRecords should always be linked into a DbgMarker's StoredDbgRecords list. The marker connects a DbgRecord back to its position in the BasicBlock.
DbgRecordParamRef A typed tracking MDNode reference that does not require a definition for its parameter type. Necessary to avoid including DebugInfoMetadata.h, which has a significant impact on compile times if included in this file.
DbgSSABlock
DbgSSABlockPredIterator Thin wrapper around a block successor iterator.
DbgSSABlockSuccIterator Thin wrapper around a block successor iterator.
DbgSSAPhi /////////////////////////////////////
DbgValueDef A definition of a variable; can represent either a debug.
DbgValueHistoryMap For each user variable, keep a list of instruction ranges where this variable is accessible. The variables are listed in order of appearance.
DbgValueInst This represents the llvm.dbg.value instruction.
DbgValueRangeTable Utility class used to find and store the live debug ranges for variables in a module.
DbgVariableFragmentInfo
DbgVariableIntrinsic This is the common base class for debug info intrinsics for variables.
DbgVariableLocation Represents the location at which a variable is stored.
DbgVariableRecord Record of a variable value-assignment, aka a non instruction representation of the dbg.value intrinsic.
DeactivationSymbolSDNode
DeadArgumentEliminationPass Eliminate dead arguments (and return values) from functions.
DeadLaneDetector
DeadMachineInstructionElimPass
DeadOnReturnInfo
DebugAssignmentTrackingAnalysis
DebugAssignmentTrackingPrinterPass
DebugCounter
DebugEpochBase Empty stub of DebugEpochBase used when ABI-breaking checks are disabled.
DebugHandlerBase Base class for debug information backends. Common functionality related to tracking which variables and scopes are alive at a given PC live here.
DebugInfoFinder Utility to find all debug info in a module.
DebugInlineInfo Inlining location extracted from debug info.
DebugLoc A debug info location.
DebugNamesAbbrev
DebugSSAUpdater Class used to determine the live ranges of debug variables in IR using SSA construction (via the SSAUpdaterImpl class), used for analysis purposes.
DebugValueUser Base class for tracking ValueAsMetadata/DIArgLists with user lookups and Owner callbacks outside of ValueAsMetadata.
DebugVariable Identifies a unique instance of a variable.
DebugVariableAggregate Identifies a unique instance of a whole variable (discards/ignores fragment information).
DebugifyCustomPassManager DebugifyCustomPassManager wraps each pass with the debugify passes if needed. NOTE: We support legacy custom pass manager only. TODO: Add New PM support for custom pass manager.
DebugifyEachInstrumentation
DebuginfodCollection Tracks a collection of debuginfod artifacts on the local filesystem.
DebuginfodFetcher
DebuginfodLog
DebuginfodLogEntry
DebuginfodServer
DecIntegerState Specialization of the integer state for a decreasing value, hence 0 is the best state and ~0u the worst.
DeclareRuntimeLibcallsPass
DecomposedBitTest Represents the operation icmp (X & Mask) pred C, where pred can only be eq or ne.
DefInit AL - Represent a reference to a 'def' in the description
DefaultAnalysisGraphTraits Default traits class for extracting a graph from an analysis pass.
DefaultContextualFoldingSetTrait Like DefaultFoldingSetTrait, but for ContextualFoldingSets.
DefaultDOTGraphTraits DefaultDOTGraphTraits - This class provides the default implementations of all of the DOTGraphTraits methods. If a specialization does not need to override all methods here it should inherit so that it can get the default implementations.
DefaultDoCastIfPossible This cast trait just provides the default implementation of doCastIfPossible to make CastInfo specializations more declarative. The Derived template parameter must be provided for forwarding castFailed and doCast.
DefaultEvictionAdvisor
DefaultFoldingSetTrait This class provides default implementations for FoldingSetTrait implementations.
DefaultInlineAdvice
DefaultInlineAdvisor The default (manual heuristics) implementation of the InlineAdvisor. This implementation does not need to keep state between inliner pass runs, and is reusable as-is for inliner pass test scenarios, as well as for regular use.
DefaultPriorityAdvisor
DefaultVLIWScheduler
DefinitionAndSourceRegister Simple struct used to hold a Register value and the instruction which defines it.
DelimitedScope
DelinearizationPrinterPass
DeltaAlgorithm Implements the delta debugging algorithm (A. Zeller '99) for minimizing arbitrary sets using a predicate function.
DeltaTree B-tree mapping file indices to rewrite deltas with fast accumulated lookup.
DemandedBits
DemandedBitsAnalysis An analysis that produces DemandedBits for a function.
DemandedBitsPrinterPass Printer pass for DemandedBits
DenormalFPEnv Represents the full denormal controls for a function, including the default mode and the f32 specific override.
DenormalFPMathState
DenormalMode Represent subnormal handling kind for floating point instruction inputs and outputs.
DenseMap
DenseMapBase
DenseMapInfo An information struct used to provide DenseMap with the various necessary components for a given value type T. Enable is an optional additional parameter that is used to support SFINAE (generally using std::enable_if_t) in derived DenseMapInfo specializations; in non-SFINAE use cases this should just be void.
DenseMapIterator Forward iterator over occupied DenseMap / SmallDenseMap buckets.
DenseSet Implements a dense probed hash-table based set.
Dependence Dependence - This class represents a dependence between two memory memory references in a function. It contains minimal information and is used in the very common situation where the compiler is unable to determine anything beyond the existence of a dependence; that is, it represents a confused dependence (see also FullDependence). In most cases (for output, flow, and anti dependences), the dependence implies an ordering, where the source must precede the destination; in contrast, input dependences are unordered.
DependenceAnalysis AnalysisPass to compute dependence information in a function
DependenceAnalysisPrinterPass Printer pass to dump DA results.
DependenceAnalysisWrapperPass Legacy pass manager pass to access dependence information
DependenceGraphInfo Encapsulate some common data and functionality needed for different variations of data dependence graphs.
DependenceInfo DependenceInfo - This class is the main dependence-analysis driver.
DerefState State for dereferenceable attribute
DerivedUser Extension point for the Value hierarchy. All classes outside of lib/IR that wish to inherit from User should instead inherit from DerivedUser instead. Inheriting from this class is discouraged.
DestSourcePair
DetectDeadLanesPass
DevirtCallSite A call site that could be devirtualized.
DevirtSCCRepeatedPass A helper that repeats an SCC pass each time an indirect call is refined to a direct call by that pass.
DiagnosticHandler This is the base class for diagnostic handling in LLVM. The handleDiagnostics method must be overriden by the subclasses to handle diagnostic. The *RemarkEnabled methods can be overriden to control which remarks are enabled.
DiagnosticInfo This is the base abstract class for diagnostic reporting in the backend. The print method must be overloaded by the subclasses to print a user-friendly message in the client of the backend (let us call it a frontend).
DiagnosticInfoDebugMetadataVersion Diagnostic information for debug metadata version reporting. This is basically a module and a version.
DiagnosticInfoDontCall
DiagnosticInfoGeneric
DiagnosticInfoGenericWithLoc
DiagnosticInfoIROptimization Common features for diagnostics dealing with optimization remarks that are used by IR passes.
DiagnosticInfoISelFallback Diagnostic information for ISel fallback path.
DiagnosticInfoIgnoringInvalidDebugMetadata Diagnostic information for stripping invalid debug metadata.
DiagnosticInfoInlineAsm Diagnostic information for inline asm reporting. This is basically a message and an optional location.
DiagnosticInfoInstrumentation Diagnostic information for IR instrumentation reporting.
DiagnosticInfoLegalizationFailure
DiagnosticInfoMIROptimization Common features for diagnostics dealing with optimization remarks that are used by machine passes.
DiagnosticInfoMIRParser Diagnostic information for machine IR parser.
DiagnosticInfoMisExpect Diagnostic information for MisExpect analysis.
DiagnosticInfoOptimizationBase Common features for diagnostics dealing with optimization remarks that are used by both IR and MIR passes.
DiagnosticInfoOptimizationFailure Diagnostic information for optimization failures.
DiagnosticInfoPGOProfile Diagnostic information for the PGO profiler.
DiagnosticInfoRegAllocFailure
DiagnosticInfoResourceLimit Diagnostic information for stack size etc. reporting. This is basically a function and a size.
DiagnosticInfoSampleProfile Diagnostic information for the sample profiler.
DiagnosticInfoSrcMgr Diagnostic information for SMDiagnostic reporting.
DiagnosticInfoStackSize
DiagnosticInfoUnsupported Diagnostic information for unsupported feature in backend.
DiagnosticInfoUnsupportedTargetIntrinsic Diagnostic information for unsupported target intrinsics in backend.
DiagnosticInfoWithLocationBase Common features for diagnostics with an associated location.
DiagnosticLocation
DiagnosticPredicate
DiagnosticPrinter Interface for custom diagnostic printing.
DiagnosticPrinterRawOStream Basic diagnostic printer that uses an underlying raw_ostream.
DictScope
DirectedGraph Directed graph
Directive
DirectiveLanguage
DisableLIRP Options to disable Loop Idiom Recognize, which can be shared with other passes.
DistinctMDOperandPlaceholder Placeholder metadata for operands of distinct MDNodes.
DivRemMapKey
DivRemPairsPass Hoist/decompose integer division and remainder instructions to enable CFG improvements and better codegen.
DivergencePropagator Compute divergence starting with a divergent branch.
DoNothingMemorySSAWalker A MemorySSAWalker that does no alias queries, or anything else. It simply returns the links as they were constructed by the builder.
DomConditionCache
DomOnlyPrinter
DomOnlyViewer
DomPrinter
DomTreeGraphTraitsBase
DomTreeNodeBase Base class for the actual dominator tree node.
DomTreeNodeTraits Default DomTreeNode traits for NodeT. The default implementation assume a Function-like NodeT. Can be specialized to support different node types.
DomTreeUpdater
DomViewer
DomainValue A DomainValue is a bit like LiveIntervals' ValNo, but it also keeps track of execution domains.
DominanceFrontier
DominanceFrontierAnalysis Analysis pass which computes a DominanceFrontier.
DominanceFrontierBase DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function.
DominanceFrontierPrinterPass Printer pass for the DominanceFrontier.
DominanceFrontierWrapperPass
DominatorTree Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
DominatorTreeAnalysis Analysis pass which computes a DominatorTree.
DominatorTreeBase Core dominator tree base class.
DominatorTreePrinterPass Printer pass for the DominatorTree.
DominatorTreeVerifierPass Verifier pass for the DominatorTree.
DominatorTreeWrapperPass Legacy analysis pass which computes a DominatorTree.
DotCfgChangeReporter
DotFuncBCIInfo
DropTypeTestsPass
DropUnnecessaryAssumesPass
DroppedVariableStats A base class to collect and print dropped debug information variable statistics.
DroppedVariableStatsIR A class to collect and print dropped debug information due to LLVM IR optimization passes. After every LLVM IR pass is run, it will print how many #dbg_values were dropped due to that pass.
DroppedVariableStatsMIR A class to collect and print dropped debug information due to MIR optimization passes. After every MIR pass is run, it will print how many #DBG_VALUEs were dropped due to that pass.
DstOp
DummyCGSCCPass This pass is required by interprocedural register allocation. It forces codegen to follow bottom up order on call graph.
DummyPriorityAdvisor Stupid priority advisor which just enqueues in virtual register number order, for debug purposes only.
Duration Duration value type.
DwarfCompileUnit
DwarfDebug
DwarfEHPreparePass
DwarfInstrProfCorrelator DwarfInstrProfCorrelator - A child of InstrProfCorrelatorImpl that takes DWARF debug info as input to correlate profiles.
DwarfStringPoolEntry Data for a string pool entry.
DwarfStringPoolEntryRef DwarfStringPoolEntryRef: Dwarf string pool entry reference.
DwarfStringPoolEntryWithExtString DwarfStringPoolEntry with string keeping externally.
DwarfTypeUnit
DynamicAPInt Dynamically sized arbitrary-precision integer.
ECError This class wraps a std::error_code in a Error.
EHContGuardTargetsPass
EHStreamer
ELFAttributeParser
ELFCompactAttrParser
ELFExtendedAttrParser
ELFObjectWriter
ELFRelocationEntry
ETMDecoder
EVT Extended Value Type. Capable of holding value types which are not native for any processor (such as the i12345 type), as well as the types an MVT can represent.
EarliestEscapeAnalysis Context-sensitive CaptureAnalysis provider, which computes and caches the earliest common dominator closure of all captures. It provides a good approximation to a precise "captures before" analysis.
EarlyCSEPass A simple and fast domtree-based CSE pass.
EarlyIfConverterPass
EarlyMachineLICMPass
EarlyTailDuplicatePass
EdgeBundles
EdgeBundlesAnalysis
EdgeBundlesWrapperLegacy
ElementCount
EliminateAvailableExternallyPass A pass that transforms external global definitions into declarations.
EmbedBitcodeOptions
EmbedBitcodePass Pass embeds a copy of the module optimized with the provided pass pipeline into a global variable.
EmbeddedModelRunnerOptions ReleaseModeModelRunner - production mode implementation of the MLModelRunner. It uses an AOT-compiled SavedModel for efficient execution.
EmitCModelRunner
EmptyData
EmptyStringSetTag The "value type" of StringSet represented as an empty struct.
EngineBuilder Builder class for ExecutionEngines. Use this by stack-allocating a builder, chaining the various set* methods, and terminating it with a .create() call.
Ensemble
EntryExitInstrumenterPass
EnumString Compact runtime entry mapping an enumeration value to name string(s).
EnumStringDef Compile-time data representation of enum entries. Only use for constexpr variables passed to BUILD_ENUM_STRINGS, do NOT access the created variable directly in code! The idea is that this is only used at compile-time to build a more compact and relocation-free representation in the binary.
EnumStrings Lookup table wrapping compact enum-to-string storage.
EnumStringsStorage Compile-time storage packing enum string entries and character data.
EnumVal
EnumeratedArray Fixed-size array indexed by values of a scoped enumeration.
EphemeralValuesAnalysis
EphemeralValuesCache A cache of ephemeral values within a function.
EquivalenceClasses Collection of equivalence classes with insert, union, and find operations.
Error Lightweight error class with error context and mandatory checking.
ErrorAsOutParameter Helper for Errors used as out-parameters.
ErrorHandlerTraits Helper for testing applicability of, and applying, handlers for ErrorInfo types.
ErrorInfo Base class for user error types. Users should declare their error types like:
ErrorInfoBase Base class for error info classes. Do not extend this directly: Extend the ErrorInfo template subclass instead.
ErrorList Special ErrorInfo subclass representing a list of ErrorInfos. Instances of this class are constructed by joinError.
ErrorOr Represents either an error or a value T.
ErrorSuccess Subclass of Error for the sole purpose of identifying the success path in the type system. This allows to catch invalid conversion to Expected<T> at compile time.
EscapeEnumerator EscapeEnumerator - This is a little algorithm to find all escape points from a function so that "finally"-style code can be inserted. In addition to finding the existing return and unwind instructions, it also (if necessary) transforms any call instructions into invokes and sends them to a landing pad.
Evaluator This class evaluates LLVM IR, producing the Constant representing each SSA instruction.
EvictionCost Cost of evicting interference - used by default advisor, and the eviction chain heuristic in RegAllocGreedy.
ExecutionDomainFix
ExecutionEngine Abstract interface for implementation execution of LLVM modules, designed to support both interpreter and just-in-time (JIT) compiler implementations.
ExecutionEngineState Helper class for helping synchronize access to the global address map table. Access to this class should be serialized under a mutex.
ExistsOpInit !exists<type>(expr) - Dynamically determine if a record of type named expr exists.
ExitOnError Helper for check-and-exit error handling.
ExpandIRInstsPass
ExpandMemCmpPass
ExpandPostRAPseudosPass
ExpandReductionsPass
ExpandVariadicsPass
Expected Tagged union holding either a T or a Error.
ExpectedAsOutParameter Helper for Expected<T>s used as out-parameters.
ExponentialBackoff A class to help implement exponential backoff.
ExtAddrMode Used to describe addressing mode similar to ExtAddrMode in CodeGenPrepare. It holds the register values, the scale value and the displacement. It also holds a descriptor for the expression used to calculate the address from the operands.
ExternalAAWrapperPass A wrapper pass for external alias analyses. This just squirrels away the callback used to run any analyses and register their results.
ExternalSymbolPseudoSourceValue A specialized pseudo source value for holding external symbol values.
ExternalSymbolSDNode
ExtraFunctionPassManager A pass manager to run a set of extra function passes if the ShouldRunExtraPasses marker analysis is present. This allows passes to request additional transformations on demand. An example is extra simplifications after loop-vectorization, if runtime checks have been added.
ExtraLoopPassManager A pass manager to run a set of extra loop passes if the MarkerTy analysis is present. This allows passes to request additional transformations on demand. An example is doing additional runs of SimpleLoopUnswitch.
ExtractElementInst This instruction extracts a single (scalar) element from a VectorType value
ExtractGVPass
ExtractValueInst This instruction extracts a struct member or array element value from an aggregate value.
EytzingerTable Owning container that stores elements in a complete binary search tree formatted in Eytzinger (breadth-first) order.
EytzingerTableSpan Non-owning view of a buffer formatted as a complete binary search tree in Eytzinger (breadth-first) order.
FCmpInst This instruction compares its operands according to the predicate given to the constructor. It only operates on floating point values or packed vectors of floating point values. The operands must be identical types. Represents a floating point comparison operator.
FEntryInserterPass
FMFSource This provides a helper for copying FMF from an instruction or setting specified flags.
FPBinaryOperator Binary operators support fast-math flags, users should not use this class directly, BinaryOperator can create instructions with correct type automatically.
FPExtInst This class represents an extension of floating point types.
FPMathOperator Utility class for floating point operations which can have information about relaxed accuracy requirements attached to them.
FPPassManager FPPassManager manages BBPassManagers and FunctionPasses. It batches all function passes and basic block pass managers together and sequence them to process one function at a time before processing next function.
FPStateAccessSDNode
FPToSIInst This class represents a cast from floating point to signed integer.
FPToUIInst This class represents a cast from floating point to unsigned integer
FPTruncInst This class represents a truncation of floating point types.
FPUnaryOperator Unary operators support fast-math flags, users should not use this class directly, Unary can create instructions with correct type automatically.
FPValueAndVReg
FailureOr This class provides support for representing a failure result, or a valid value of type T. This allows for integrating with LogicalResult, while also providing a value on the success path.
FastFoldingSetNode FoldingSetNode that caches a precomputed FoldingSetNodeID.
FastISel This is a fast-path instruction selection class that generates poor code and doesn't support illegal types or non-trivial lowering, but runs quickly.
FastMathFlags Convenience struct for specifying and reasoning about fast-math flags.
FastMathFlagsStorage Provide fast-math flags storage, instructions that support fast-math flags should inherit from this class.
FatLtoCleanup
FaultMapParser A parser for the __llvm_faultmaps section generated by the FaultMaps class declared in llvm/CodeGen/FaultMaps.h. This parser is version locked with with the __llvm_faultmaps section generated by the version of LLVM that includes it. No guarantees are made with respect to forward or backward compatibility.
FaultMaps
FeatureBitArray Class used to store the subtarget bits in the tables created by tablegen.
FeatureBitset Container class for subtarget features. This is a constexpr reimplementation of a subset of std::bitset. It would be nice to use std::bitset directly, but it doesn't support constant initialization.
FenceInst An instruction for ordering other memory operations.
FieldInit X.Y - Represent a reference to a subfield of a variable
FileBufferByteStream An implementation of WritableBinaryStream backed by an llvm FileOutputBuffer.
FileCache This type represents a file cache system that manages caching of files. It encapsulates a caching function and the directory path where the cache is stored. To request an item from the cache, pass a unique string as the Key. For hits, the cached file will be added to the link and this function will return AddStreamFn(). For misses, the cache will return a stream callback which must be called at most once to produce content for the stream. The file stream produced by the stream callback will add the file to the link after the stream is written to. ModuleName is the unique module identifier for the bitcode module the cache is being checked for.
FileCheck FileCheck class takes the request and exposes various methods that use information from the request.
FileCheckDiag Abstract base class for recording a FileCheck diagnostic for a pattern (e.g., CHECK-NEXT directive or --implicit-check-not).
FileCheckDiagList A FileCheckDiag series emitted by the FileCheck library.
FileCheckPatternContext
FileCheckRequest Contains info about various FileCheck options.
FileCheckString
FileCollector Captures file system interaction and generates data to be later replayed with the RedirectingFileSystem.
FileCollectorBase
FileCollectorFileSystem
FileError This class wraps a filename and another Error.
FileLoc Struct holding Line:Column location
FileLocRange Struct holding a semiopen range [Start; End)]
FileOutputBuffer FileOutputBuffer - This interface provides simple way to create an in-memory buffer which will be written to a file. During the lifetime of these objects, the content or existence of the specified file is undefined. That is, creating an OutputBuffer for a file may immediately remove the file. If the FileOutputBuffer is committed, the target file's content will become the buffer content at the time of the commit. If the FileOutputBuffer is not committed, the file will be deleted in the FileOutputBuffer destructor.
FilePermissionsApplier FilePermssionsApplier helps to copy permissions from an input file to an output one. It memorizes the status of the input file and can apply permissions and dates to the output file.
FileRemover FileRemover - This class is a simple object meant to be stack allocated. If an exception is thrown from a region, the object removes the filename specified (if deleteIt is true).
FinalizeBundleTestPass
FinalizeISelPass
FirstIndexOfType Find the first index where a type appears in a list of types.
FixIrreduciblePass
FixedNumOperandTraits FixedNumOperandTraits - determine the allocation regime of the Use array when it is a prefix to the User object, and the number of Use objects is known at compile time.
FixedPointBuilder
FixedPointSemantics The fixed point semantics work similarly to fltSemantics. The width specifies the whole bit width of the underlying scaled integer (with padding if any). The scale represents the number of fractional bits in this type. When HasUnsignedPadding is true and this type is unsigned, the first bit in the value this represents is treated as padding.
FixedStackPseudoSourceValue A specialized PseudoSourceValue for holding FixedStack values, which must include a frame index.
FixedStreamArray FixedStreamArray is similar to VarStreamArray, except with each record having a fixed-length. As with VarStreamArray, there is no upfront cost associated with building or copying a FixedStreamArray, as the memory for each element is not read from the backing stream until that element is iterated.
FixedStreamArrayIterator
FixedVectorType Class to represent fixed width SIMD vectors
FixupStatepointCallerSavedPass
FlagEntry
FlatIt Marker class to iterate over the elements of a Region in flat mode.
FlattenCFGPass
Float2IntPass
FlowBlock A wrapper of a binary basic block.
FlowFunction A wrapper of binary function with basic blocks and jumps.
FlowJump A wrapper of a jump between two basic blocks.
FmtAlign Helper class to format to a Width wide field, with alignment Where within that field.
FoldOpInit !foldl (a, b, expr, start, lst) - Fold over a list.
FoldingSetBase Non-templated base class for FoldingSet and ContextualFoldingSet, holding the memory management and probing that does not depend on the node type.
FoldingSetImpl An implementation detail that lets us share code between FoldingSet and ContextualFoldingSet.
FoldingSetIterator Forward iterator for FoldingSet and ContextualFoldingSet.
FoldingSetNodeID Folding set node identifier.
FoldingSetNodeIDRef This class describes a reference to an interned FoldingSetNodeID, which can be a useful to store node id data rather than using plain FoldingSetNodeIDs, since the 32-element SmallVector is often much larger than necessary, and the possibility of heap allocation means it requires a non-trivial destructor call.
FoldingSetNodeWrapper This template class is used to "wrap" arbitrary types in an enclosing object so that they can be inserted into FoldingSets.
FoldingSetTrait This trait class is used to define behavior of how to "profile" (in the FoldingSet parlance) an object of a given type. The default behavior is to invoke a 'Profile' method on an object, but through template specialization the behavior can be tailored for specific types. Combined with the FoldingSetNodeWrapper class, one can add objects to FoldingSets that were not originally designed to have that behavior.
FoldingSetVector FoldingSet with deterministic insertion-order iteration.
ForceFunctionAttrsPass Pass which forces specific function attributes into the IR, primarily as a debugging tool.
FormatAdapter
FormattedBytes
FormattedNumber This is a helper class used for format_hex() and format_decimal().
FormattedString This is a helper class for left_justify, right_justify, and center_justify.
FortifiedLibCallSimplifier This class implements simplifications for calls to fortified library functions.
ForwardToPointerCast Provides a cast trait that uses a defined pointer to pointer cast as a base for reference-to-reference casts. Note that it does not provide castFailed and doCastIfPossible because a pointer-to-pointer cast would likely just return nullptr which could cause nullptr dereference. You can use it like this:
ForwardedRegister Describes a register that needs to be forwarded from the prologue to a musttail call.
FrameIndexSDNode
FreeDeleter Deleter that calls free on a pointer allocated with malloc.
FreeMachineFunctionPass
FreezeInst This class represents a freeze function that returns random concrete value if an operand is either a poison value or an undef value
FullDependence FullDependence - This class represents a dependence between two memory references in a function. It contains detailed information about the dependence (direction vectors, etc.) and is used when the compiler is able to accurately analyze the interaction of the references; that is, it is not a confused dependence (see Dependence). In most cases (for output, flow, and anti dependences), the dependence implies an ordering, where the source must precede the destination; in contrast, input dependences are unordered.
FuncDataT
FuncletLayoutPass
FuncletPadInst
Function
FunctionAnalysisManagerCGSCCProxy A proxy from a FunctionAnalysisManager to an SCC.
FunctionAnalysisManagerMachineFunctionProxy
FunctionCallee A handy container for a FunctionType+Callee-pointer pair, which can be passed around as a single entity. This assists in replacing the use of PointerType::getElementType() to access the function's type, since that's slated for removal as part of the [opaque pointer types]project.
FunctionComparator FunctionComparator - Compares two functions to determine whether or not.
FunctionHashInfo
FunctionImportGlobalProcessing Class to handle necessary GlobalValue changes required by ThinLTO function importing, including linkage changes and any necessary renaming.
FunctionImportPass The function importing pass
FunctionImporter The function importer is automatically importing function from other modules based on the provided summary informations.
FunctionLoweringInfo FunctionLoweringInfo - This contains information that is global to a function that is used when lowering a region of the function.
FunctionOptimizationProfile
FunctionPass FunctionPass class - This class is used to implement most global optimizations. Optimizations should subclass this class if they meet the following constraints:
FunctionPointerLikeTypeTraits Provide suitable custom traits struct for function pointers.
FunctionPropertiesAnalysis
FunctionPropertiesInfo
FunctionPropertiesPrinterPass Printer pass for the FunctionPropertiesAnalysis results.
FunctionPropertiesStatisticsPass Statistics pass for the FunctionPropertiesAnalysis results.
FunctionPropertiesUpdater Correctly update FunctionPropertiesInfo post-inlining. A FunctionPropertiesUpdater keeps the state necessary for tracking the changes llvm::InlineFunction makes. The idea is that inlining will at most modify a few BBs of the Caller (maybe the entry BB and definitely the callsite BB) and potentially affect exception handling BBs in the case of invoke inlining.
FunctionSpecializer
FunctionSummary Function summary information to aid decisions and implementation of importing.
FunctionToLoopPassAdaptor Adaptor that maps from a function to its loops.
FunctionToMachineFunctionPassAdaptor
FunctionType Class to represent function types
FunctionVarLocs Data structure describing the variable locations in a function. Used as the result of the AssignmentTrackingAnalysis pass. Essentially read-only outside of AssignmentTrackingAnalysis where it is built.
GAdd Represents an integer addition.
GAddCarryOut Represents overflowing add operations. G_UADDO, G_SADDO
GAddSubCarryInOut Represents overflowing add/sub operations that also consume a carry-in. G_UADDE, G_SADDE, G_USUBE, G_SSUBE
GAddSubCarryOut Represents overflowing add/sub operations. Only carry-out: G_UADDO, G_SADDO, G_USUBO, G_SSUBO Carry-in and carry-out: G_UADDE, G_SADDE, G_USUBE, G_SSUBE
GAnd Represents a logical and.
GAnyCmp Represent a G_ICMP or G_FCMP.
GAnyExt Represents an any ext.
GAnyLoad Represents any generic load, including sign/zero extending variants.
GAnyStore Represents any generic store, including truncating variants.
GBinOp Represents a binary operation, i.e, x = y op z.
GBinOpCarryOut Represents overflowing binary operations. Only carry-out: G_UADDO, G_SADDO, G_USUBO, G_SSUBO, G_UMULO, G_SMULO Carry-in and carry-out: G_UADDE, G_SADDE, G_USUBE, G_SSUBE
GBuildVector Represents a G_BUILD_VECTOR.
GBuildVectorTrunc Represents a G_BUILD_VECTOR_TRUNC.
GCEmptyBasicBlocksPass
GCFunctionAnalysis An analysis pass which caches information about the Function. Records the function level information used by GCRoots. This pass depends on CollectorMetadataAnalysis.
GCFunctionInfo Garbage collection metadata for a single function. Currently, this information only applies to GCStrategies which use GCRoot.
GCLoweringPass LowerIntrinsics - This pass rewrites calls to the llvm.gcread or llvm.gcwrite intrinsics, replacing them with simple loads and stores as directed by the GCStrategy. It also performs automatic root initialization and custom intrinsic lowering.
GCMetadataPrinter GCMetadataPrinter - Emits GC metadata as assembly code. Instances are created, managed, and owned by the AsmPrinter.
GCModuleInfo An analysis pass which caches information about the entire Module. Records both the function level information used by GCRoots and a cache of the 'active' gc strategy objects for the current Module.
GCOVArc
GCOVBlock GCOVBlock - Collects block information.
GCOVBlockLocation Represent file of lines same with block_location_info in gcc.
GCOVBuffer GCOVBuffer - A wrapper around MemoryBuffer to provide GCOV specific read operations.
GCOVFile GCOVFile - Collects coverage information for one pair of coverage file (.gcno and .gcda).
GCOVFunction GCOVFunction - Collects function information.
GCOVOptions
GCOVProfilerPass The gcov-style instrumentation pass
GCPoint GCPoint - Metadata for a collector-safe point in machine code.
GCProjectionInst Common base class for representing values projected from a statepoint. Currently, the only projections available are gc.result and gc.relocate.
GCRelocateInst Represents calls to the gc.relocate intrinsic.
GCResultInst Represents calls to the gc.result intrinsic.
GCRoot GCRoot - Metadata for a pointer to an object managed by the garbage collector.
GCStatepointInst Represents a gc.statepoint intrinsic call. This extends directly from CallBase as the IntrinsicInst only supports calls and gc.statepoint is invokable.
GCStrategy GCStrategy describes a garbage collector algorithm's code generation requirements, and provides overridable hooks for those needs which cannot be abstractly described. GCStrategy objects must be looked up through the Function. The objects themselves are owned by the Context and must be immutable.
GCStrategyMap
GCastOp Represents a cast operation. It models the llvm::CastInst concept. The exception is bitcast.
GConcatVectors Represents a G_CONCAT_VECTORS.
GConstant Represents a G_CONSTANT.
GEPNoWrapFlags Represents flags for the getelementptr instruction/expression. The following flags are supported: * inbounds (implies nusw) * nusw (no unsigned signed wrap) * nuw (no unsigned wrap) See LangRef for a description of their semantics.
GEPOperator
GExtLoad Represents either a G_SEXTLOAD, G_ZEXTLOAD, or G_FPEXTLOAD.
GExtOp Represents an integer-like extending operation.
GExtOrTruncOp Represents an integer-like extending or truncating operation.
GExtractSubvector Represents an extract subvector.
GExtractVectorElement Represents an extract vector element.
GFBinOp Represents a floating point binary operation.
GFCmp Represent a G_FCMP.
GFConstant An floating-point-like constant.
GFPExtLoad Represents a G_FPEXTLOAD.
GFPTruncStore Represents a G_FPTRUNCSTORE.
GFreeze Represents a freeze.
GICmp Represent a G_ICMP.
GIConstant An integer-like constant.
GIMatchTableExecutor Provides the logic to execute GlobalISel match tables, which are used by the instruction selector and instruction combiners as their engine to match and apply MIR patterns.
GISelCSEAnalysis
GISelCSEAnalysisWrapper Simple wrapper that does the following. 1) Lazily evaluate the MachineFunction to compute CSEable instructions. 2) Allows configuration of which instructions are CSEd through CSEConfig object. Provides a method called get which takes a CSEConfig object.
GISelCSEAnalysisWrapperPass The actual analysis pass wrapper.
GISelCSEInfo The CSE Analysis object. This installs itself as a delegate to the MachineFunction to track new instructions as well as deletions. It however will not be able to track instruction mutations. In such cases, recordNewInstruction should be called (for eg inside MachineIRBuilder::recordInsertion). Also because of how just the instruction can be inserted without adding any operands to the instruction, instructions are uniqued and inserted lazily. CSEInfo should assert when trying to enter an incomplete instruction into the CSEMap. There is Opcode level granularity on which instructions can be CSE'd and for now, only Generic instructions are CSEable.
GISelChangeObserver Abstract class that contains various methods for clients to notify about changes. This should be the preferred way for APIs to notify changes. Typically calling erasingInstr/createdInstr multiple times should not affect the result. The observer would likely need to check if it was already notified earlier (consider using GISelWorkList).
GISelInstProfileBuilder
GISelObserverWrapper Simple wrapper observer that takes several observers, and calls each one for each event. If there are multiple observers (say CSE, Legalizer, Combiner), it's sufficient to register this to the machine function as the delegate.
GISelValueTracking
GISelValueTrackingAnalysis
GISelValueTrackingAnalysisLegacy Eventually add other features such as caching/ser/deserializing to MIR etc. Those implementations can derive from GISelValueTracking and override computeKnownBitsImpl.
GISelValueTrackingPrinterPass
GISelWorkList
GImplicitDef Represents a G_IMPLICIT_DEF.
GIndexedAnyExtLoad Represents either G_INDEXED_LOAD, G_INDEXED_ZEXTLOAD or G_INDEXED_SEXTLOAD.
GIndexedExtLoad Represents a G_INDEX_ZEXTLOAD/G_INDEXED_SEXTLOAD.
GIndexedLoad Represents indexed loads. These are different enough from regular loads that they get their own class. Including them in GAnyLoad would probably make a footgun for someone.
GIndexedSExtLoad Represents a G_SEXTLOAD.
GIndexedStore Represents indexed stores.
GIndexedZExtLoad Represents a G_ZEXTLOAD.
GInsertSubvector Represents a insert subvector.
GInsertVectorElement Represents an insert vector element.
GIntBinOp Represents an integer binary operation.
GIntrinsic Represents a call to an intrinsic.
GLoad Represents a G_LOAD.
GLoadStore Represents any type of generic load or store. G_LOAD, G_STORE, G_ZEXTLOAD, G_SEXTLOAD, G_FPEXTLOAD, G_FPTRUNCSTORE.
GLogicalBinOp Represents a logical binary operation.
GMemOperation Provides common memory operand functionality.
GMerge Represents a G_MERGE_VALUES.
GMergeLikeInstr Represents G_BUILD_VECTOR, G_CONCAT_VECTORS or G_MERGE_VALUES. All these have the common property of generating a single value from multiple sources.
GMul Represents an integer multiplication.
GOFFObjectWriter
GOFFRelocationEntry
GOr Represents a logical or.
GPhi Represents a G_PHI.
GPtrAdd Represents a G_PTR_ADD.
GSExtLoad Represents a G_SEXTLOAD.
GSUCmp Represents a threeway compare.
GSelect Represents a G_SELECT.
GSext Represents a sext.
GShl Represents a shift left.
GShuffleVector Represents a G_SHUFFLE_VECTOR.
GSplatVector Represents a splat vector.
GStepVector Represents a step vector.
GStore Represents a G_STORE.
GSub Represents an integer subtraction.
GSubCarryOut Represents overflowing sub operations. G_USUBO, G_SSUBO
GTrunc Represents a trunc.
GUIDProbeFunctionMap
GUnmerge Represents a G_UNMERGE_VALUES.
GVMaterializer
GVNHoist
GVNHoistPass A simple and fast domtree-based GVN pass to hoist common expressions from sibling branches.
GVNLegacyPass
GVNOptions true - enabling the transformation. false - disabling the transformation. None - relying on a global default. Intended use is to create a default object, modify parameters with additional setters and then pass it to GVN.
GVNPass The core GVN pass object.
GVNSinkPass Uses an "inverted" value numbering to decide the similarity of expressions and sinks similar expressions into successors.
GVScale Represents a vscale.
GVecReduce
GZExtLoad Represents a G_ZEXTLOAD.
GZext Represents a zext.
GenericConvergenceVerifier Verifier for static convergence-control token rules over IR or MIR.
GenericCycleInfo Cycle information for a function.
GenericCycleInfoCompute Helper class for computing cycle information.
GenericDINode Generic tagged DWARF-like metadata node.
GenericDomTreeUpdater
GenericFloatingPointPredicateUtils
GenericMachineInstr A base class for all GenericMachineInstrs.
GenericSSAContext Thin IR-agnostic context for SSA analyses over LLVM IR or Machine IR.
GenericSSATraits Traits providing IR-specific type aliases for GenericSSAContext.
GenericScheduler GenericScheduler shrinks the unscheduled zone using heuristics to balance the schedule.
GenericSchedulerBase Base class for GenericScheduler. This class maintains information about scheduling candidates based on TargetSchedModel making it easy to implement heuristics for either preRA or postRA scheduling.
GenericSyncDependenceAnalysis Sync-dependence analysis that finds join points and divergent cycle exits caused by divergent terminators.
GenericUniformityAnalysisImpl Analysis that identifies uniform values in a data-parallel execution.
GenericUniformityAnalysisImplDeleter Deleter for GenericUniformityAnalysisImpl stored in a unique_ptr.
GenericUniformityInfo Computes which values and terminators are uniform vs divergent in a function.
GenericValue
GetElementPtrInst an instruction for type-safe pointer arithmetic to access elements of arrays and structs
GlobPattern This class implements a glob pattern matcher similar to the one found in bash, but with some key differences. Namely, that * matches all characters and does not exclude path separators.
GlobalAddressSDNode
GlobalAlias
GlobalDCEPass Pass to remove unused function declarations.
GlobalIFunc
GlobalMergeFunc GlobalMergeFunc is a ModulePass that implements a function merging mechanism using stable function hashes. It identifies and merges functions with matching hashes across modules to optimize binary size.
GlobalMergeFuncPass Global function merging pass for new pass manager.
GlobalMergeOptions
GlobalMergePass
GlobalNumberState GlobalNumberState assigns an integer to each global value in the program, which is used by the comparison routine to order references to globals. This state must be preserved throughout the pass, because Functions and other globals need to maintain their relative order. Globals are assigned a number when they are first visited. This order is deterministic, and so the assigned numbers are as well. When two functions are merged, neither number is updated. If the symbols are weak, this would be incorrect. If they are strong, then one will be replaced at all references to the other, and so direct callsites will now see one or the other symbol, and no update is necessary. Note that if we were guaranteed unique names, we could just compare those, but this would not work for stripped bitcodes or for those few symbols without a name.
GlobalObject
GlobalOptPass Optimize globals that never have their address taken.
GlobalSplitPass Pass to perform split of global variables.
GlobalStatus As we analyze each global or thread-local variable, keep track of some information about it. If we find out that the address of the global is taken, none of this info will be accurate.
GlobalValue
GlobalValuePseudoSourceValue A specialized pseudo source value for holding GlobalValue values.
GlobalValueSummary Function and variable summary information to aid decisions and implementation of importing.
GlobalValueSummaryInfo
GlobalValueSummaryMap Map from global value GUID to corresponding summary structures. Use a DenseMap for O(1) lookup and a std::deque for storage. std::deque guarantees that pointers to elements are not invalidated by push_back, which is required because ValueInfo stores a raw pointer to elements of this container.
GlobalVarSummary Global variable summary information to aid decisions and implementation of importing.
GlobalVariable
GlobalsAA Analysis pass providing a never-invalidated alias analysis result.
GlobalsAAResult An alias analysis result set for globals.
GlobalsAAWrapperPass Legacy wrapper pass to provide the GlobalsAAResult object.
GraphDiff
GraphTraits Traits for traversing a graph type without copying it.
GraphWriter
GraphWriterBase
GuardWideningPass
HTTPClient A reusable client that can perform HTTPRequests through a network socket.
HTTPRequest A stateless description of an outbound HTTP request.
HTTPResponse
HTTPResponseHandler A handler for state updates occurring while an HTTPRequest is performed. Can trigger the client to abort the request by returning an Error from any of its methods.
HTTPServer An HTTP server which can listen on a single TCP/IP port for HTTP requests and delgate them to the appropriate registered handler.
HTTPServerError
HTTPServerRequest
HWAddressSanitizerOptions
HWAddressSanitizerPass This is a public interface to the hardware address sanitizer.
HandleSDNode This class is used to form a handle around another node that is persistent and is updated across invocations of replaceAllUsesWith on its operand. This node should be directly created by end-users and not added to the AllNodes list.
HardwareLoopInfo Attributes of a target dependent hardware loop.
HardwareLoopOptions
HardwareLoopsPass
HasReferenceResolver Do not resolve anything, but keep track of whether a given variable was referenced.
HashBuilder Interface to help hash various types through a hasher type.
HashBuilderBase Declares the hasher member, and functions forwarding directly to the hasher.
HashNode A HashNode is an entry in an OutlinedHashTree, holding a hash value and a collection of Successors (other HashNodes). If a HashNode has a positive terminal value (Terminals > 0), it signifies the end of a hash sequence with that occurrence count.
HashNodeStable HashNodeStable is the serialized, stable, and compact representation of a HashNode.
HashRecognize The analysis.
HashRecognizePrinterPass
HelloWorldPass
HexNumber
HexagonAttributeParser
HipStdParAcceleratorCodeSelectionPass
HipStdParAllocationInterpositionPass
HipStdParMathFixupPass
HistogramInfo This holds details about a histogram operation -- a load -> update -> store sequence where each lane in a vector might be updating the same element as another lane.
HotColdSplitting
HotColdSplittingPass Pass to outline cold regions.
HungoffOperandTraits HungoffOperandTraits - determine the allocation regime of the Use array when it is not a prefix to the User object, but allocated at an unrelated heap address.
ICFLoopSafetyInfo This implementation of LoopSafetyInfo use ImplicitControlFlowTracking to give precise answers on "may throw" queries. This implementation uses cache that should be invalidated by calling the methods insertInstructionTo and removeInstruction whenever we modify a basic block's contents by adding or removing instructions.
ICallPromotionAnalysis
ICmpInst This instruction compares its operands according to the predicate given to the constructor. It only operates on integers or pointers. The operands must be identical types. Represent an integer comparison operator.
IDFCalculator
IDFCalculatorBase Determine the iterated dominance frontier, given a set of defining blocks, and optionally, a set of live-in blocks.
ILPValue Represent the ILP of the subDAG rooted at a DAG node.
IPSCCPOptions A set of parameters to control various transforms performed by IPSCCP pass.
IPSCCPPass Pass to perform interprocedural constant propagation.
IR2VecPrinterPass This pass prints the IR2Vec embeddings for instructions, basic blocks, and functions.
IR2VecVocabAnalysis This analysis provides the vocabulary for IR2Vec. The vocabulary provides a mapping between an entity of the IR (like opcode, type, argument, etc.) and its corresponding embedding.
IR2VecVocabPrinterPass This pass prints the embeddings in the vocabulary
IRAttribute Helper class that provides common functionality to manifest IR attributes.
IRBuilder This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block.
IRBuilderBase Common base class shared among various IRBuilders.
IRBuilderCallbackInserter Provides an 'InsertHelper' that calls a user-provided callback after performing the default insertion.
IRBuilderDefaultInserter This provides the default implementation of the IRBuilder 'InsertHelper' method that is called whenever an instruction is created by IRBuilder and needs to be inserted.
IRBuilderFolder IRBuilderFolder - Interface for constant folding in IRBuilder.
IRCEPass
IRChangedPrinter
IRChangedTester
IRComparer
IRDataT
IRMover
IRMutationStrategy Base class for describing how to mutate a module. mutation functions for each IR unit forward to the contained unit.
IRMutator Entry point for configuring and running IR mutations.
IRNormalizerOptions
IRNormalizerPass IRNormalizer aims to transform LLVM IR into normal form.
IRPosition Helper to describe and deal with positions in the LLVM-IR.
IRTranslatorImpl
IRTranslatorLegacy
IRTranslatorPass
IRUnitKindTraits Map an IR unit type to its IRUnitKind.
IRUnitRef A type-erased reference to the IR unit a pass or analysis is running on, together with the kind of IR unit it refers to.
IVConditionInfo Struct to hold information about a partially invariant condition.
IVStrideUse IVStrideUse - Keep track of one use of a strided induction variable. The Expr member keeps track of the expression, User is the actual user instruction of the operand, and 'OperandValToReplace' is the operand of the User that is the use.
IVUsers
IVUsersAnalysis Analysis pass that exposes the IVUsers for a loop.
IVUsersPrinterPass Printer pass for the IVUsers for a loop.
IVUsersWrapperPass
IVVisitor Interface for visiting interesting IV users that are recognized but not simplified by this utility.
IdentifyingPassPtr Discriminated union of Pass ID types.
IfDefEmitter
IfDefGuardEmitter
IfGuardEmitter
IfGuardEmitterBase
IfNDefGuardEmitter
ImmutableList This class represents an immutable (functional) list. It is implemented as a smart pointer (wraps ImmutableListImpl), so it is intended to always be copied by value as if it were a pointer. This interface matches ImmutableSet and ImmutableMap. ImmutableList objects should almost never be created directly, and instead should be created by ImmutableListFactory objects that manage the lifetime of a group of lists. When the factory object is reclaimed, all lists created by that factory are released as well.
ImmutableListFactory Factory that allocates and uniques immutable lists of element type T.
ImmutableListImpl Cons-cell node for an immutable list: a head element and a tail pointer.
ImmutableMap Persistent map of KeyT to ValT backed by an immutable AVL tree.
ImmutableMapRef Factory-backed mutable view of an immutable map.
ImmutableModuleSummaryIndexAnalysis NPM analysis to provide an externally-built ModuleSummaryIndex (e.g. the combined index from LTO).
ImmutableModuleSummaryIndexWrapperPass Legacy wrapper pass to provide the ModuleSummaryIndex object.
ImmutablePass ImmutablePass class - This class is used to provide information that does not need to be run. This is useful for things like target information.
ImmutableSet An immutable (persistent) ordered set backed by a reference-counted AVL tree.
ImmutableSetRef A factory-backed mutable view of an immutable set.
ImplicitControlFlowTracking This class allows to keep track on instructions with implicit control flow. These are instructions that may not pass execution to their successors. For example, throwing calls and guards do not always do this. If we need to know for sure that some instruction is guaranteed to execute if the given block is reached, then we need to make sure that there is no implicit control flow instruction (ICFI) preceding it. For example, this check is required if we perform PRE moving non-speculable instruction to other place.
ImplicitNullChecksPass
ImportedFunctionsInliningStatistics Calculate and dump ThinLTO specific inliner stats. The main statistics are: (1) Number of inlined imported functions, (2) Number of imported functions inlined into importing module (indirect), (3) Number of non imported functions inlined into importing module (indirect). The difference between first and the second is that first stat counts all performed inlines on imported functions, but the second one only the functions that have been eventually inlined to a function in the importing module (by a chain of inlines). Because llvm uses bottom-up inliner, it is possible to e.g. import function A, B and then inline B to A, and after this A might be too big to be inlined into some other function that calls it. It calculates this statistic by building graph, where the nodes are functions, and edges are performed inlines and then by marking the edges starting from not imported function.
ImutAVLFactory Factory for creating and updating persistent AVL trees.
ImutAVLTree A reference-counted node in a persistent (functional) AVL tree.
ImutAVLTreeInOrderIterator Bidirectional in-order iterator over the nodes of an ImutAVLTree.
ImutAVLValueIterator Generic iterator that wraps a T::TreeTy::iterator and exposes iterator::getValue() on dereference.
ImutContainerInfo Generic definition of comparison operations for elements of immutable containers that defaults to using std::equal_to<> and std::less<> to perform comparison of elements.
ImutIntervalAVLFactory Forward declaration of a factory for interval-keyed immutable AVL trees. Declared here so it can be a friend of ImutAVLTree and access internal node APIs.
ImutKeyValueInfo Traits class used by ImmutableMap. While both the first and second elements in a pair are used to generate profile information, only the first element (the key) is used by isEqual and isLess.
ImutProfileInfo Generic profile template. The default behavior is to invoke the profile method of an object. Specializations for primitive integers and generic handling of pointers is done below.
ImutProfileInteger Profile traits for integers.
InLineChangePrinter
IncIntegerState Specialization of the integer state for an increasing value, hence ~0u is the best state and 0 the worst.
IncludeGuardEmitter
IndVarSimplifyPass
IndexListEntry This class represents an entry in the slot index list held in the SlotIndexes pass. It should not be used directly. See the SlotIndex & SlotIndexes classes for the public interface to this information.
IndexedCodeGenDataReader
IndexedInstrProfReader Reader for the indexed binary instrprof format.
IndexedLoadStoreMatchInfo
IndexedMap Dense map from keys to values, indexed through a key-to-index functor.
IndexedMemProfReader
IndexedReference Represents a memory reference as a base pointer and a set of indexing operations. For example given the array reference A[i][2j+1][3k+2]in a 3-dim loop nest: for(i=0;i<n;++i) for(j=0;j<m;++j) for(k=0;k<o;++k) ... A[i][2j+1][3k+2]... We expect: BasePointer -> A Subscripts -> [{0,+,1}<%for.i>][{1,+,2}<%for.j>][{2,+,3}<%for.k>] Sizes -> [m][o][4]
IndirectBrExpandPass
IndirectBrInst Indirect Branch Instruction.
InductionDescriptor A struct for saving information about induction variables.
InferAddressSpacesPass
InferAlignmentPass
InferFunctionAttrsPass A pass which infers function attributes from the names and signatures of function declarations in a module.
InfoSectionUnitHeader
InformationCache Data structure to hold cached (LLVM-IR) information.
Init
InitLLVM
InitUndefPass
InjectTLIMappings
InjectorIRStrategy Strategy that injects operations into the function.
InlineAdvice Capture state between an inlining decision having had been made, and its impact being observable. When collecting model training data, this allows recording features/decisions/partial reward data sets.
InlineAdvisor Interface for deciding whether to inline a call site or not.
InlineAdvisorAnalysis The InlineAdvisorAnalysis is a module pass because the InlineAdvisor needs to capture state right before inlining commences over a module.
InlineAdvisorAnalysisPrinterPass Printer pass for the InlineAdvisorAnalysis results.
InlineAsm
InlineAsmIdentifierInfo
InlineAsmKeyType
InlineAsmLowering
InlineAsmPreparePass
InlineContext Provides context on when an inline advisor is constructed in the pipeline (e.g., link phase, inline driver).
InlineCost Represents the cost of inlining a function.
InlineCostAnnotationPrinterPass
InlineFunctionInfo This class captures the data input to the InlineFunction call, and records the auxiliary results produced by it.
InlineOrder
InlineParams Thresholds to tune inline cost analysis. The inline cost analysis decides the condition to apply a threshold and applies it. Otherwise, DefaultThreshold is used. If a threshold is Optional, it is applied only when it has a valid value. Typically, users of inline cost analysis obtain an InlineParams object through one of the getInlineParams methods and pass it to getInlineCost. Some specialized versions of inliner (such as the pre-inliner) might have custom logic to compute InlineParams object.
InlineResult InlineResult is basically true or false. For false results the message describes a reason.
InlinerPass The inliner pass for the new pass manager.
InnerAnalysisManagerProxy An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR unit. The inner unit must be contained in the outer unit.
InsertCFGStrategy Strategy to split a random block and insert a random CFG in between.
InsertElementInst This instruction inserts a single (scalar) element into a VectorType value
InsertFunctionStrategy Strategy that generates new function calls and inserts function signatures to the modules. If any signatures are present in the module it will be called.
InsertPHIStrategy Strategy to insert PHI Nodes at the head of each basic block.
InsertPosition
InsertValueInst This instruction inserts a struct field of array element value into an aggregate value.
InstCombineOptions
InstCombinePass
InstCombiner The core instruction combiner logic.
InstCostVisitor
InstCountPass
InstDeleterIRStrategy Strategy that deletes instructions when the Module is too large.
InstIterator
InstModificationIRStrategy Strategy that modifies instruction attributes and operands.
InstSimplifyFolder InstSimplifyFolder - Use InstructionSimplify to fold operations to existing values. Also applies target-specific constant folding when not using InstructionSimplify.
InstSimplifyPass Run instruction simplification across each instruction in the function.
InstVisitor Base class for instruction visitors
InstancesOpInit !instances<type>([regex]) - Produces a list of records whose type is type. If regex is provided, only records whose name matches the regular expression regex will be included.
InstrInfoQuery InstrInfoQuery provides an interface to query additional information for instructions like metadata or keywords like nsw, which provides conservative results if the users specified it is safe to use.
InstrItinerary An itinerary represents the scheduling information for an instruction. This includes a set of stages occupied by the instruction and the pipeline cycle in which operands are read and written.
InstrItineraryData Itinerary data supplied by a subtarget to be used by a target.
InstrProfCallsite This represents the llvm.instrprof.callsite intrinsic. It is structurally like the increment or step counters, hence the inheritance relationship, albeit somewhat tenuous (it's not 'counting' per se)
InstrProfCntrInstBase A base class for all instrprof counter intrinsics.
InstrProfCorrelator InstrProfCorrelator - A base class used to create raw instrumentation data to their functions.
InstrProfCorrelatorImpl InstrProfCorrelatorImpl - A child of InstrProfCorrelator with a template pointer type so that the ProfileData vector can be materialized.
InstrProfCoverInst This represents the llvm.instrprof.cover intrinsic.
InstrProfError
InstrProfIncrementInst This represents the llvm.instrprof.increment intrinsic.
InstrProfIncrementInstStep This represents the llvm.instrprof.increment.step intrinsic.
InstrProfInstBase A base class for all instrprof intrinsics.
InstrProfIterator A file format agnostic iterator over profiling data.
InstrProfLookupTrait Trait for lookups into the on-disk hash table for the binary instrprof format.
InstrProfMCDCBitmapInstBase A base class for instrprof mcdc intrinsics that require global bitmap bytes.
InstrProfMCDCBitmapParameters This represents the llvm.instrprof.mcdc.parameters intrinsic.
InstrProfMCDCTVBitmapUpdate This represents the llvm.instrprof.mcdc.tvbitmap.update intrinsic.
InstrProfOptions Options for the frontend instrumentation based profiling pass.
InstrProfReader Base class and interface for reading profiling data of any known instrprof format. Provides an iterator over NamedInstrProfRecords.
InstrProfReaderIndex
InstrProfReaderIndexBase
InstrProfReaderItaniumRemapper
InstrProfReaderRemapper Name matcher supporting fuzzy matching of symbol names to names in profiles.
InstrProfRecord Profiling information for a single function.
InstrProfRecordWriterTrait Writer for instrumentation based profile data.
InstrProfSummaryBuilder
InstrProfSymtab A symbol table used for function [IR]PGO name look-up with keys (such as pointers, md5hash values) to the function. A function's [IR]PGO name or name's md5hash are used in retrieving the profile data of the function. See getIRPGOFuncName() and getPGOFuncName methods for details how [IR]PGO name is formed.
InstrProfTimestampInst This represents the llvm.instrprof.timestamp intrinsic.
InstrProfValueProfileInst This represents the llvm.instrprof.value.profile intrinsic.
InstrProfValueSiteRecord
InstrProfWriter
InstrProfilingLoweringPass Instrumentation based profiling lowering pass. This pass lowers the profile instrumented code generated by FE or the IR based instrumentation pass.
InstrStage These values represent a non-pipelined step in the execution of an instruction. Cycles represents the number of discrete time slots needed to complete the stage. Units represent the choice of functional units that can be used to complete the stage. Eg. IntUnit1, IntUnit2. NextCycles indicates how many cycles should elapse from the start of this stage to the start of the next stage in the itinerary. A value of -1 indicates that the next stage should start immediately after the current one. For example:
Instruction
InstructionBuildSteps
InstructionCombiningPass The legacy pass manager's instcombine pass.
InstructionCost
InstructionNamerPass
InstructionOrdering Record instruction ordering so we can query their relative positions within a function. Meta instructions are given the same ordinal as the preceding non-meta instruction. Class state is invalid if MF is modified after calling initialize.
InstructionPrecedenceTracking
InstructionSelectImpl
InstructionSelectLegacy This pass is responsible for selecting generic machine instructions to target-specific instructions. It relies on the InstructionSelector provided by the target. Selection is done by examining blocks in post-order, and instructions in reverse order.
InstructionSelectPass
InstructionSelector
InstructionStepsMatchInfo
InstructionWorklist InstructionWorklist - This is the worklist management logic for InstCombine and other simplification passes.
InstrumentationIRBuilder
InstrumentorPass The Instrumentor pass.
IntEqClasses Equivalence classes over the small integers 0 .. N-1.
IntInit '7' - Represent an initialization by a literal integer value.
IntRecTy 'int' - Represent an integer value of no particular size
IntToPtrInst This class represents a cast from an integer to a pointer.
IntegerInclusiveInterval Represents an inclusive integer interval [Begin, End]where Begin <= End.
IntegerRangeState State for an integer range.
IntegerStateBase Simple state with integers encoding.
IntegerType Class to represent integer types. Note that this class is also used to represent the built-in integer types: Int1Ty, Int8Ty, Int16Ty, Int32Ty and Int64Ty. Integer representation type
IntelExpr
IntelJITEventsWrapper
InteractiveModelRunner A MLModelRunner that asks for advice from an external agent, or host. It uses 2 files - ideally named pipes - one to send data to that agent, and one to receive advice. The data exchange uses the training logger (Utils/TrainingLogger.h) format. Specifically, the compiler will send the log header, set the context, and send observations; the host is expected to reply with a tensor value after each observation as a binary buffer that's conforming to the shape of the advice. Interleaved, the data closely resembles the training log for a log where we don't capture the reward signal.
InterestingMemoryOperand
InterleaveGroup The group of interleaved loads/stores sharing the same stride and close to each other.
InterleavedAccessInfo Drive the analysis of interleaved memory accesses in the loop.
InterleavedAccessPass
InterleavedLoadCombinePass
InterleavedRange Format object class for interleaved ranges. Supports specifying the separator and, optionally, the prefix and suffix to be printed surrounding the range. Uses the operator '<<' of the range element type for printing. The range type itself does not have to have an '<<' operator defined.
InternalizePass A pass that internalizes all functions and variables other than those that must be preserved according to MustPreserveGV.
IntervalData An interval data composed by a Left and Right points and an associated Value. PointT corresponds to the interval endpoints type. ValueT corresponds to the interval value type.
IntervalMap Coalescing map from key intervals to values, stored as a compact B+-tree.
IntervalMapHalfOpenInfo Traits for half-open intervals [a;b) used by IntervalMap.]
IntervalMapInfo Traits for closed intervals [a;b]used by IntervalMap.
IntervalMapOverlaps IntervalMapOverlaps - Iterate over the overlaps of mapped intervals in two IntervalMaps. The maps may be different, but the KeyT and Traits types should be the same.
IntervalPressure RegisterPressure computed within a region of instructions delimited by TopIdx and BottomIdx. During pressure computation, the maximum pressure per register pressure set is increased. Once pressure within a region is fully computed, the live-in and live-out sets are recorded.
IntervalTree Interval tree that stores closed intervals and answers point queries.
IntrinsicCostAttributes
IntrinsicInst A wrapper class for inspecting calls to intrinsic functions. This allows the standard isa/dyncast/cast functionality to work with calls to intrinsic functions.
IntrinsicLowering
IntrusiveBackList
IntrusiveBackListBase
IntrusiveBackListNode
IntrusiveRefCntPtr A smart pointer to a reference-counted object that inherits from RefCountedBase or ThreadSafeRefCountedBase.
IntrusiveRefCntPtrInfo Class you can specialize to provide custom retain/release functionality for a type.
InvalidateAllAnalysesPass A utility pass that does nothing, but preserves no analyses.
InvalidateAnalysisPass A no-op pass template which simply forces a specific analysis result to be invalidated.
Inverse Marker wrapping a graph so iterators traverse it in inverse order.
InvokeInst Invoke instruction. The SubclassData field is used to hold the calling convention of the call.
IsAOpInit !isa<type>(expr) - Dynamically determine the type of an expression.
ItaniumManglingCanonicalizer Canonicalizer for mangled names.
ItaniumPartialDemangler "Partial" demangler. This supports demangling a string into an AST (typically an intermediate stage in itaniumDemangle) and querying certain properties or partially printing the demangled name.
JITEvaluatedSymbol Represents a symbol that has been evaluated to an address already.
JITEventListener JITEventListener - Abstract interface for use by the JIT to notify clients about significant events during compilation. For example, to notify profilers and debuggers that need to know where functions have been emitted.
JITSymbol Represents a symbol in the JIT.
JITSymbolFlags Flags for symbols in the JIT.
JITSymbolResolver Symbol resolution interface.
JMCInstrumenterPass
JSONScopedPrinter
JamCRC
JobSlot A JobSlot represents a single job slot that can be acquired from or released to a jobserver pool. This class is move-only.
JobserverClient The public interface for a jobserver client. This client is a lazy-initialized singleton that is created on first use.
JobserverClientImpl
JumpTableSDNode
JumpTableToSwitchPass
JumpThreadingPass This pass performs 'jump threading', which looks at blocks that have multiple predecessors and multiple successors. If one or more of the predecessors of the block can be proven to always jump to one of the successors, we forward the edge from the predecessor to the successor by duplicating the contents of this block.
KCFIPass
KernelInfoPrinter
KnownAssumptionString Helper that allows to insert a new assumption string in the known assumption set by creating a (static) object.
KnownBits
KnownFPClass
LCSSAPass Converts loops into loop-closed SSA form.
LCSSAVerificationPass
LICMOptions
LICMPass Performs Loop Invariant Code Motion Pass.
LLLexer
LLParser
LLT
LLVMContext This is an important class for using LLVM in a threaded context. It (opaquely) owns and manages the core "global" data of LLVM's core infrastructure, including the type and constant uniquing tables. LLVMContext itself provides no locking guarantees, so you should be careful to have one context per thread.
LLVMContextImpl
LLVMRemarkFileHandle RAII handle that manages the lifetime of the ToolOutputFile used to output remarks. On destruction (or when calling releaseFile()), this handle ensures that the optimization remarks are finalized and the RemarkStreamer is correctly deregistered from the LLVMContext.
LLVMRemarkSetupErrorInfo
LLVMRemarkSetupFileError
LLVMRemarkSetupFormatError
LLVMRemarkSetupPatternError
LLVMRemarkStreamer Streamer for LLVM remarks which has logic for dealing with DiagnosticInfo objects.
LNICMPass Performs LoopNest Invariant Code Motion Pass.
LPMUpdater This class provides an interface for updating the loop pass manager based on mutations to the loop nest.
LPPassManager
LSBaseSDNode Base class for LoadSDNode and StoreSDNode
LShrOperator
LTOCodeGenerator C++ class which implements the opaque lto_code_gen_t type.
LTOModule C++ class which implements the opaque lto_module_t type.
LabelSDNode
LandingPadInfo This structure is used to retain landing pad info for the current function.
LandingPadInst The landingpad instruction holds all of the information necessary to generate correct exception handling. The landingpad instruction cannot be moved from the top of a landing pad block, which itself is accessible only from the 'unwind' edge of an invoke. This uses the SubclassData field in Value to store whether or not the landingpad is a cleanup.
LaneBitmask
LastRunTrackingAnalysis A function/module analysis which provides an empty LastRunTrackingInfo.
LastRunTrackingInfo This class is used to track the last run of a set of module/function passes. Invalidation are conservatively handled by the pass manager if a pass doesn't explicitly preserve the result. If we want to skip a pass, we should define a unique ID PassID to identify the pass, which is usually a pointer to a static member. If a pass has parameters, they should be stored in a struct OptionT with a method bool isCompatibleWith(const OptionT& LastOpt) const to check compatibility.
LatencyPriorityQueue
LatticeKeyInfo A template for translating between LLVM Values and LatticeKeys. Clients must provide a specialization of LatticeKeyInfo for their LatticeKey type.
LazyAtomicPointer Atomic pointer that's lock-free, but that can coordinate concurrent writes from a lazy generator. Should be reserved for cases where concurrent uses of a generator for the same storage is unlikely.
LazyBlockFrequencyInfo Wraps a BFI to allow lazy computation of the block frequencies.
LazyBlockFrequencyInfoPass This is an alternative analysis pass to BlockFrequencyInfoWrapperPass. The difference is that with this pass the block frequencies are not computed when the analysis pass is executed but rather when the BFI result is explicitly requested by the analysis client.
LazyBranchProbabilityInfoPass This is an alternative analysis pass to BranchProbabilityInfoWrapperPass. The difference is that with this pass the branch probabilities are not computed when the analysis pass is executed but rather when the BPI results is explicitly requested by the analysis client.
LazyCallGraph A lazily constructed view of the call graph of a module.
LazyCallGraphAnalysis An analysis pass which computes the call graph for a module.
LazyCallGraphDOTPrinterPass A pass which prints the call graph as a DOT file to a raw_ostream.
LazyCallGraphPrinterPass A pass which prints the call graph to a raw_ostream.
LazyMachineBlockFrequencyInfoPass This is an alternative analysis pass to MachineBlockFrequencyInfo. The difference is that with this pass, the block frequencies are not computed when the analysis pass is executed but rather when the BFI result is explicitly requested by the analysis client.
LazyValueAnalysis Analysis to compute lazy value information.
LazyValueInfo This pass computes, caches, and vends lazy value constraint information.
LazyValueInfoImpl
LazyValueInfoPrinterPass Printer pass for the LazyValueAnalysis results.
LazyValueInfoWrapperPass Wrapper around LazyValueInfo.
LegacyDefaultAnalysisGraphTraits Default traits class for extracting a graph from an analysis pass.
LegacyJITSymbolResolver Legacy symbol resolution interface.
LegalityQuery The LegalityQuery object bundles together all the information that's needed to decide whether a given operation is legal or not. For efficiency, it doesn't make a copy of Types so care must be taken not to free it before using the query.
LegalizationArtifactCombiner
LegalizeActionStep The result of a query. It either indicates a final answer of Legal or Unsupported or describes an action that must be taken to make an operation more legal.
LegalizeRule A single rule in a legalizer info ruleset. The specified action is chosen when the predicate is true. Where appropriate for the action (e.g. for WidenScalar) the new type is selected using the given mutator.
LegalizeRuleSet
LegalizerHelper
LegalizerInfo
LegalizerLegacy
LegalizerMFResult
LegalizerPass
LessRecord Sorting predicate to sort record pointers by name.
LessRecordByID Sorting predicate to sort record pointers by their unique ID. If you just need a deterministic order, use this, since it just compares two unsigned; the other sorting predicates require string manipulation.
LessRecordFieldName Sorting predicate to sort record pointers by their Name field.
LessRecordRegister
LexicalScope This class is used to track scope information.
LexicalScopes This class provides interface to collect and use lexical scoping information from machine instruction.
LibCallSimplifier LibCallSimplifier - This class implements a collection of optimizations that replace well formed calls to library functions with a more optimal form. For example, replacing 'printf("Hello!")' with 'puts("Hello!")'.
LibCallsShrinkWrapPass
LibcallLoweringInfo Tracks which library functions to use for a particular subtarget or function.
LibcallLoweringInfoWrapper
LibcallLoweringModuleAnalysis
LifetimeIntrinsic This is the common base class for lifetime intrinsics.
LifetimeSDNode This SDNode is used for LIFETIME_START/LIFETIME_END values.
LineEditor
LinearExpression Linear expression BasePtr + Index * Scale + Offset. Index, Scale and Offset all have the same bit width, which matches the pointer index size of BasePtr. Index may be nullptr if Scale is 0.
Linker This class provides the core functionality of linking in LLVM. It keeps a pointer to the merged module so far. It doesn't take ownership of the module since it is assumed that the user of this class will want to do something with it after the linking.
LintPass
ListInit [AL, AH, CL]- Represent a list of defs
ListRecTy 'list<Ty>' - Represent a list of element values, all of which must be of the specified type. The type is stored in ElementTy.
ListScope
ListSeparator A helper class to return the specified delimiter string after the first invocation of operator StringRef(). Used to generate a comma-separated list from a loop like so:
ListeningSocket Manages a passive (i.e., listening) UNIX domain socket
LiveDebugValuesPass
LiveDebugVariables
LiveDebugVariablesAnalysis
LiveDebugVariablesPrinterPass
LiveDebugVariablesWrapperLegacy
LiveInterval LiveInterval - This class represents the liveness of a register, or stack slot.
LiveIntervalCalc
LiveIntervalUnion Union of live intervals that are strong candidates for coalescing into a single register (either physical or virtual depending on the context). We expect the constituent live intervals to be disjoint, although we may eventually make exceptions to handle value-based interference.
LiveIntervals
LiveIntervalsAnalysis
LiveIntervalsPrinterPass
LiveIntervalsWrapperPass
LivePhysRegs A set of physical registers with utility functions to track liveness when walking backward/forward through a basic block.
LiveQueryResult Result of a LiveRange query. This class hides the implementation details of live ranges, and it should be used as the primary interface for examining live ranges around instructions.
LiveRange This class represents the liveness of a register, stack slot, etc. It manages an ordered list of Segment objects. The Segments are organized in a static single assignment form: At places where a new value is defined or different values reach a CFG join a new segment with a new value number is used.
LiveRangeCalc
LiveRangeEdit
LiveRangeUpdater Helper class for performant LiveRange bulk updates.
LiveRegMatrix
LiveRegMatrixAnalysis
LiveRegMatrixWrapperLegacy
LiveRegSet A set of live virtual registers and physical register units.
LiveRegUnit
LiveRegUnits A set of register units used to track register liveness.
LiveStacks
LiveStacksAnalysis
LiveStacksPrinterPass
LiveStacksWrapperLegacy
LiveVariables
LiveVariablesAnalysis
LiveVariablesPrinterPass
LiveVariablesWrapperPass
LoadAndStorePromoter Helper class for promoting a collection of loads and stores into SSA Form using the SSAUpdater.
LoadInst An instruction for reading from memory. This uses the SubclassData field in Value to store whether or not the load is volatile.
LoadSDNode This class is used to represent ISD::LOAD nodes.
LoadStoreInstProperties A structure representing the properties of a load or store instruction.
LoadStoreOptLegacy
LoadStoreOptPass
LoadStoreVectorizerPass
LoadedObjectInfo An inferface for inquiring the load address of a loaded object file to be used by the DIContext implementations when applying relocations on the fly.
LoadedObjectInfoHelper CRTP helper that implements LoadedObjectInfo::clone for Derived.
LocalAsMetadata
LocalStackSlotAllocationPass
LocalizerLegacy This pass implements the localization mechanism described at the top of this file. One specificity of the implementation is that it will materialize one and only one instance of a constant per basic block, thus enabling reuse of that constant within that block. Moreover, it only materializes constants in blocks where they are used. PHI uses are considered happening at the end of the related predecessor.
LocalizerPass
LocationSize
LockFileManager Class that manages the creation of a lock file to aid implicit coordination between different processes.
LockstepReverseIterator Iterates through instructions in a set of blocks in reverse order from the first non-terminator. For example (assume all blocks have size n): LockstepReverseIterator I([B1, B2, B3]); *I-- = [B1[n], B2[n], B3[n]]; *I-- = [B1[n-1], B2[n-1], B3[n-1]]; *I-- = [B1[n-2], B2[n-2], B3[n-2]]; ...
Logger Logging utility - given an ordered specification of features, and assuming a scalar reward, allow logging feature values and rewards. The assumption is that, for an event to be logged (i.e. a set of feature values and a reward), the user calls the log* API for each feature exactly once, providing the index matching the position in the feature spec list provided at construction. The example assumes the first feature's element type is float, the second is int64, and the reward is float:
LogicalResult This class represents an efficient way to signal success or failure. It should be preferred over the use of bool when appropriate, as it avoids all of the ambiguity that arises in interpreting a boolean result. This class is marked as NODISCARD to ensure that the result is processed. Users may explicitly discard a result by using (void), e.g. (void)functionThatReturnsALogicalResult();. Given the intended nature of this class, it generally shouldn't be used as the result of functions that very frequently have the result ignored. This class is intended to be used in conjunction with the utility functions below.
LogicalSROAPass
Loop Represents a single loop in the control flow graph. Note that not all SCCs in the CFG are necessarily loops.
LoopAccessAnalysis This analysis provides dependence information for the memory accesses of a loop.
LoopAccessInfo Drive the analysis of memory accesses in the loop
LoopAccessInfoManager
LoopAccessInfoPrinterPass Printer pass for the LoopAccessInfo results.
LoopAnalysis Analysis pass that exposes the LoopInfo for a function.
LoopBase Instances of this class are used to represent loops that are detected in the flow graph.
LoopBlocksDFS Store the result of a depth first search within basic blocks contained by a single loop.
LoopBlocksRPO Wrapper class to LoopBlocksDFS that provides a standard begin()/end() interface for the DFS reverse post-order traversal of blocks in a loop body.
LoopBlocksTraversal Traverse the blocks in a loop using a depth-first search.
LoopBodyTraits
LoopBoundSplitPass This pass transforms loops that contain a conditional branch with induction variable. For example, it transforms left code to right code:
LoopCachePrinterPass Printer pass for the CacheCost results.
LoopCarriedEdges Represents loop-carried dependencies. Because SwingSchedulerDAG doesn't assume cycle dependencies as the name suggests, such dependencies must be handled separately. After DAG construction is finished, these dependencies are added to SwingSchedulerDDG. TODO: Also handle output-dependencies introduced by physical registers.
LoopConstrainer Constrain a loop to run within a given iteration range.
LoopDataPrefetchPass An optimization pass inserting data prefetches in loops.
LoopDeletionPass
LoopDistributePass
LoopFlattenPass
LoopFullUnrollPass Loop unroll pass that only does full loop unrolling and peeling.
LoopFusePass
LoopIdiomRecognizePass Performs Loop Idiom Recognize Pass.
LoopIdiomVectorizePass
LoopInfo
LoopInfoBase This class builds and contains all of the top-level loop structures in the specified function.
LoopInfoWrapperPass The legacy pass manager's analysis pass to compute loop information.
LoopInstSimplifyPass Performs Loop Inst Simplify Pass.
LoopInterchangePass
LoopLoadEliminationPass Pass to forward loads in a loop around the backedge to subsequent iterations.
LoopNest This class represents a loop nest and can be used to query its properties.
LoopNestAnalysis This analysis provides information for a loop nest. The analysis runs on demand and can be initiated via AM.getResult<LoopNestAnalysis>.
LoopNestPrinterPass Printer pass for the LoopNest results.
LoopPass
LoopPredicationPass Performs Loop Predication Pass.
LoopPrinterPass Printer pass for the LoopAnalysis results.
LoopRotatePass A simple loop rotation transformation.
LoopSafetyInfo Captures loop safety information. It keep information for loop blocks may throw exception or otherwise exit abnormally on any iteration of the loop which might actually execute at runtime. The primary way to consume this information is via isGuaranteedToExecute below, but some callers bailout or fallback to alternate reasoning if a loop contains any implicit control flow. NOTE: LoopSafetyInfo contains cached information regarding loops and their particular blocks. This information is only dropped on invocation of computeLoopSafetyInfo. If the loop or any of its block is deleted, or if any thrower instructions have been added or removed from them, or if the control flow has changed, or in case of other meaningful modifications, the LoopSafetyInfo needs to be recomputed. If a meaningful modifications to the loop were made and the info wasn't recomputed properly, the behavior of all methods except for computeLoopSafetyInfo is undefined.
LoopSimplifyCFGPass Performs basic CFG simplifications to assist other loop passes.
LoopSimplifyPass This pass is responsible for loop canonicalization.
LoopSinkPass A pass that does profile-guided sinking of instructions into loops.
LoopStandardAnalysisResults The adaptor from a function pass to a loop pass computes these analyses and makes them available to the loop passes "for free". Each loop pass is expected to update these analyses if necessary to ensure they're valid after it runs.
LoopStrengthReducePass Performs Loop Strength Reduce Pass.
LoopStructure
LoopTermFoldPass
LoopTraversal This class provides the basic blocks traversal order used by passes like ReachingDefAnalysis and ExecutionDomainFix. It identifies basic blocks that are part of loops and should to be visited twice and returns efficient traversal order for all the blocks.
LoopUnrollAndJamPass A simple loop rotation transformation.
LoopUnrollOptions A set of parameters used to control various transforms performed by the LoopUnroll pass. Each of the boolean parameters can be set to: true - enabling the transformation. false - disabling the transformation. None - relying on a global default.
LoopUnrollPass Loop unroll pass that will support both full and partial unrolling. It is a function pass to have access to function and module analyses. It will also put loops into canonical form (simplified and LCSSA).
LoopVectorizationLegality LoopVectorizationLegality checks if it is legal to vectorize a loop, and to what vectorization factor. This class does not look at the profitability of vectorization, only the legality. This class has two main kinds of checks: * Memory checks - The code in canVectorizeMemory checks if vectorization will change the order of memory accesses in a way that will change the correctness of the program. * Scalars checks - The code in canVectorizeInstrs and canVectorizeMemory checks for a number of different conditions, such as the availability of a single induction variable, that all types are supported and vectorize-able, etc. This code reflects the capabilities of InnerLoopVectorizer. This class is also used by InnerLoopVectorizer for identifying induction variable and the different reduction variables.
LoopVectorizationRequirements This holds vectorization requirements that must be verified late in the process. The requirements are set by legalize and costmodel. Once vectorization has been determined to be possible and profitable the requirements can be verified by looking for metadata or compiler options. For example, some loops require FP commutativity which is only allowed if vectorization is explicitly specified or if the fast-math compiler option has been provided. Late evaluation of these requirements allows helpful diagnostics to be composed that tells the user what need to be done to vectorize the loop. For example, by specifying #pragma clang loop vectorize or -ffast-math. Late evaluation should be used only when diagnostics can generated that can be followed by a non-expert user.
LoopVectorizeHints Utility class for getting and setting loop vectorizer hints in the form of loop metadata. This class keeps a number of loop annotations locally (as member variables) and can, upon request, write them back as metadata on the loop. It will initially scan the loop for existing metadata, and will update the local values based on information in the loop. We cannot write all values to metadata, as the mere presence of some info, for example 'force', means a decision has been made. So, we need to be careful NOT to add them if the user hasn't specifically asked so.
LoopVectorizeOptions
LoopVectorizePass The LoopVectorize Pass.
LoopVectorizeResult Storage for information about made changes.
LoopVerifierPass Verifier pass for the LoopAnalysis results.
LoopVersioning This class emits a version of the loop where run-time checks ensure that may-alias pointers can't overlap.
LoopVersioningLICMPass
LoopVersioningPass Expose LoopVersioning as a pass. Currently this is only used for unit-testing. It adds all memchecks necessary to remove all may-aliasing array accesses from the loop.
LostDebugLocObserver
LowerAllowCheckPass
LowerAtomicPass A pass that lowers atomic intrinsic into non-atomic intrinsics.
LowerCommentStringPass
LowerConstantIntrinsicsPass
LowerEmuTLSPass
LowerExpectIntrinsicPass
LowerGlobalDtorsPass
LowerGuardIntrinsicPass
LowerIFuncPass Pass to replace calls to ifuncs with indirect calls.
LowerInvokePass
LowerMatrixIntrinsicsPass
LowerSwitchPass
LowerTypeTestsPass
LowerWidenableConditionPass
LshrOfTruncOfLshr
MBB2NumberFunctor
MBBReachingDefsInfo
MBBSectionID
MBFIWrapper
MCAsmBackend Generic interface to target specific assembler backends.
MCAsmBaseStreamer
MCAsmInfo This class is intended to be used as a base class for asm properties and features specific to the target.
MCAsmInfoCOFF
MCAsmInfoDarwin
MCAsmInfoELF
MCAsmInfoGNUCOFF
MCAsmInfoGOFF
MCAsmInfoMicrosoft
MCAsmInfoWasm
MCAsmInfoXCOFF
MCAsmMacro
MCAsmMacroParameter
MCAsmParser Generic assembler parser interface, for use by target specific assembly parsers.
MCAsmParserExtension Generic interface for extending the MCAsmParser, which is implemented by target and object file assembly parser implementations.
MCAsmParserSemaCallback Generic Sema callback for assembly parser.
MCAssembler
MCBinaryExpr Binary assembler expressions.
MCBoundaryAlignFragment Represents required padding such that a particular other set of fragments does not cross a particular power-of-two boundary. The other fragments must follow this one within the same section.
MCCFIInstruction
MCCVDefRangeFragment Fragment representing the .cv_def_range directive.
MCCVFunctionInfo Information describing a function or inlined call site introduced by .cv_func_id or .cv_inline_site_id. Accumulates information from .cv_loc directives used with this function's id or the id of an inlined call site within this function or inlined call site.
MCCVInlineLineTableFragment Fragment representing the binary annotations produced by the .cv_inline_linetable directive.
MCCVLoc Instances of this class represent the information from a .cv_loc directive.
MCCodeEmitter MCCodeEmitter - Generic instruction encoding interface.
MCConstantExpr / Represent a constant integer expression.
MCContext Context object for machine code objects. This class owns all of the sections that it creates.
MCDXContainerBaseWriter
MCDXContainerPart
MCDXContainerStreamer
MCDXContainerTargetWriter
MCDecodedPseudoProbe
MCDecodedPseudoProbeInlineTree
MCDisassembler Superclass for all disassemblers. Consumes a memory region and provides an array of assembly instructions.
MCDwarfDwoLineTable
MCDwarfFile Instances of this class represent the name of the dwarf .file directive and its associated dwarf file number in the MC file. MCDwarfFile's are created and uniqued by the MCContext class. In Dwarf 4 file numbers start from 1; i.e. the entry with file number 1 is the first element in the vector of DwarfFiles and there is no MCDwarfFile with file number 0. In Dwarf 5 file numbers start from 0, with the MCDwarfFile with file number 0 being the primary source file, and file numbers correspond to their index in the vector.
MCDwarfFrameEmitter
MCDwarfFrameInfo
MCDwarfLineAddr
MCDwarfLineEntry Instances of this class represent the line information for the dwarf line table entries. Which is created after a machine instruction is assembled and uses an address from a temporary label created at the current address in the current section and the info from the last .loc directive seen as stored in the context.
MCDwarfLineStr Manage the .debug_line_str section contents, if we use it.
MCDwarfLineTable
MCDwarfLineTableHeader
MCDwarfLineTableParams
MCDwarfLoc Instances of this class represent the information from a dwarf .loc directive.
MCELFObjectTargetWriter
MCELFStreamer
MCExpr Base class for the full range of assembler expressions which are needed for parsing.
MCExternalSymbolizer Symbolize using user-provided, C API, callbacks.
MCExtraProcessorInfo Provide extra details about the machine processor.
MCFillFragment
MCFixup Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction) which requires assemble- or run- time patching.
MCFixupKindInfo Target independent information on a fixup kind.
MCFragment
MCGOFFObjectTargetWriter
MCGOFFStreamer
MCGenDwarfInfo
MCGenDwarfLabelEntry
MCInst Instances of this class represent a single low-level machine instruction.
MCInstBuilder
MCInstPrinter This is an instance of a target assembly language printer that converts an MCInst to valid target assembly syntax.
MCInstrAnalysis
MCInstrDesc Describe properties that are true of each instruction in the target description file. This captures information about side effects, register use and many other things. There is one instance of this struct for each target instruction class, and the MachineInstr class points to this struct directly to describe itself.
MCInstrInfo Interface to description of machine instruction set.
MCJITMemoryManager
MCLFIRewriter
MCLOHContainer
MCLOHDirective Store Linker Optimization Hint information (LOH).
MCLabel Instances of this class represent a label name in the MC file, and MCLabel are created and uniqued by the MCContext class. MCLabel should only be constructed for valid instances in the object file.
MCLineSection Instances of this class represent the line information for a compile unit where machine instructions have been assembled after seeing .loc directives. This is the information used to build the dwarf line table for a section.
MCMachObjectTargetWriter
MCNopsFragment
MCObjectFileInfo
MCObjectStreamer Streaming object file generation interface.
MCObjectTargetWriter Base class for classes that define behaviour that is specific to both the target and the object format.
MCObjectWriter Defines the object file and target independent interfaces used by the assembler backend to write native file format object files.
MCOperand Instances of this class represent operands of the MCInst class. This is a simple discriminated union.
MCOperandInfo This holds information about one operand of a machine instruction, indicating the register class for register operands, etc.
MCOrgFragment
MCParsedAsmOperand MCParsedAsmOperand - This abstract class represents a source-level assembly instruction operand. It should be subclassed by target-specific code. This base class is used by target-independent clients and is the interface between parsing an asm instruction and recognizing it.
MCProcResourceDesc Define a kind of processor resource that will be modeled by the scheduler.
MCPseudoProbe Instances of this class represent a pseudo probe instance for a pseudo probe table entry, which is created during a machine instruction is assembled and uses an address from a temporary label created at the current address in the current section.
MCPseudoProbeBase
MCPseudoProbeDecoder
MCPseudoProbeFuncDesc
MCPseudoProbeInlineTree
MCPseudoProbeInlineTreeBase
MCPseudoProbeSections Instances of this class represent the pseudo probes inserted into a compile unit.
MCPseudoProbeTable
MCReadAdvanceEntry Specify the number of cycles allowed after instruction issue before a particular use operand reads its registers. This effectively reduces the write's latency. Here we allow negative cycles for corner cases where latency increases. This rule only applies when the entry's WriteResource matches the write's WriteResource.
MCRegAliasIterator MCRegAliasIterator enumerates all registers aliasing Reg.
MCRegUnitIterator
MCRegUnitMaskIterator MCRegUnitMaskIterator enumerates a list of register units and their associated lane masks for Reg. The register units are in ascending numerical order.
MCRegUnitRootIterator MCRegUnitRootIterator enumerates the root registers of a register unit.
MCRegUnitToIndex
MCRegister Wrapper class representing physical registers. Should be passed by value.
MCRegisterClass MCRegisterClass - Base class of TargetRegisterClass.
MCRegisterClassStorage
MCRegisterCostEntry Specify the cost of a register definition in terms of number of physical register allocated at register renaming stage. For example, AMD Jaguar. natively supports 128-bit data types, and operations on 256-bit registers (i.e. YMM registers) are internally split into two COPs (complex operations) and each COP updates a physical register. Basically, on Jaguar, a YMM register write effectively consumes two physical registers. That means, the cost of a YMM write in the BtVer2 model is 2.
MCRegisterDesc MCRegisterDesc - This record contains information about a particular register. The SubRegs field is a zero terminated array of registers that are sub-registers of the specific register, e.g. AL, AH are sub-registers of AX. The SuperRegs field is a zero terminated array of registers that are super-registers of the specific register, e.g. RAX, EAX, are super-registers of AX.
MCRegisterFileDesc A register file descriptor.
MCRegisterInfo MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc objects that represent all of the machine registers that the target has. As such, we simply have to track a pointer to this array so that we can turn register number into a register descriptor.
MCRelocationInfo Create MCExprs from relocations found in an object file.
MCSFrameEmitter
MCSPIRVObjectTargetWriter
MCSPIRVStreamer
MCSchedClassDesc Summarize the scheduling resources required for an instruction of a particular scheduling class.
MCSchedModel Machine model for scheduling, bundling, and heuristics.
MCSection Instances of this class represent a uniqued identifier for a section in the current translation unit. The MCContext class uniques and creates these.
MCSectionCOFF This represents a section on Windows
MCSectionDXContainer
MCSectionELF This represents a section on linux, lots of unix variants and some bare metal systems.
MCSectionGOFF
MCSectionMachO This represents a section on a Mach-O system (used by Mac OS X). On a Mac system, these are also described in /usr/include/mach-o/loader.h.
MCSectionSPIRV
MCSectionWasm This represents a section on wasm.
MCSectionXCOFF
MCSpecifierExpr Extension point for target-specific MCExpr subclasses with a relocation specifier, serving as a replacement for MCSymbolRefExpr::VariantKind. Limit this to top-level use, avoiding its inclusion as a subexpression.
MCStreamer Streaming machine code generation interface.
MCSubRegIndexIterator Iterator that enumerates the sub-registers of a Reg and the associated sub-register indices.
MCSubRegIterator MCSubRegIterator enumerates all sub-registers of Reg. If IncludeSelf is set, Reg itself is included in the list.
MCSubtargetInfo Generic base class for all target subtargets.
MCSuperRegIterator MCSuperRegIterator enumerates all super-registers of Reg. If IncludeSelf is set, Reg itself is included in the list.
MCSymbol MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created and uniqued by the MCContext class. MCSymbols should only be constructed with valid names for the object file.
MCSymbolCOFF
MCSymbolELF
MCSymbolGOFF
MCSymbolIdFragment Represents a symbol table index fragment.
MCSymbolMachO
MCSymbolRefExpr Represent a reference to a symbol from inside an expression.
MCSymbolSDNode
MCSymbolTableValue The value for an entry in the symbol table of an MCContext.
MCSymbolWasm
MCSymbolXCOFF
MCSymbolizer Symbolize and annotate disassembled instructions.
MCTargetAsmParser MCTargetAsmParser - Generic interface to target specific assembly parsers.
MCTargetExpr Extension point for target-specific MCExpr subclasses to implement. This can encode a relocation operator, serving as a replacement for MCSymbolRefExpr::VariantKind. Ideally, limit this to top-level use, avoiding its inclusion as a subexpression.
MCTargetOptions
MCTargetStreamer Target specific streamer interface. This is used so that targets can implement support for target specific assembly directives.
MCUnaryExpr Unary assembler expressions.
MCValue
MCWasmObjectTargetWriter
MCWasmStreamer
MCWinCOFFObjectTargetWriter
MCWinCOFFStreamer
MCWriteLatencyEntry Specify the latency in cpu cycles for a particular scheduling class and def index. -1 indicates an invalid latency. Heuristics would typically consider an instruction with invalid latency to have infinite latency. Also identify the WriteResources of this def. When the operand expands to a sequence of writes, this ID is the last write in the sequence.
MCWriteProcResEntry Identify one of the processor resource kinds consumed by a particular scheduling class for the specified number of cycles.
MCXCOFFObjectTargetWriter
MCXCOFFStreamer
MD5 Incremental MD5 message-digest computation.
MDBuilder
MDNode Metadata node.
MDNodeSDNode
MDOperand Tracking metadata reference owned by Metadata.
MDProfLabels
MDString A single uniqued string.
MDTuple Tuple of metadata.
MDTupleTypedArrayWrapper Typed, array-like tuple of metadata.
MFPropsModifier An RAII based helper class to modify MachineFunctionProperties when running pass. Define a MFPropsModifier in PassT::run to set MachineFunctionProperties properly.
MIBInfo Summary of a single MIB in a memprof metadata on allocations.
MIBundleBuilder Helper class for constructing bundles of MachineInstrs.
MIBundleOperandIteratorBase MIBundleOperandIteratorBase - Iterator that visits all operands in a bundle of MachineInstrs. This class is not intended to be used directly, use one of the sub-classes instead.
MIBundleOperands MIBundleOperands - Iterate over all operands in a bundle of machine instructions.
MIMetadata Set of metadata that should be preserved when using BuildMI(). This provides a more convenient way of preserving certain data from the original instruction.
MIR2VecPrinterLegacyPass This pass prints the MIR2Vec embeddings for machine functions, basic blocks, and instructions
MIR2VecVocabLegacyAnalysis Pass to analyze and populate MIR2Vec vocabulary from a module
MIR2VecVocabPrinterLegacyPass This pass prints the embeddings in the MIR2Vec vocabulary
MIR2VecVocabProvider MIR2Vec vocabulary provider used by pass managers and standalone tools. This class encapsulates the core vocabulary loading logic and can be used independently of the pass manager infrastructure. For pass-based usage, see MIR2VecVocabLegacyAnalysis.
MIRAddFSDiscriminators
MIRFormatter MIRFormater - Interface to format MIR operand based on target
MIRParser This class initializes machine functions by applying the state loaded from a MIR file.
MIRParserImpl
MIRProfileLoader
MIRProfileLoaderPass
MLInlineAdvice InlineAdvice that tracks changes post inlining. For that reason, it only overrides the "successful inlining" extension points.
MLInlineAdvisor
MLModelRunner MLModelRunner interface: abstraction of a mechanism for evaluating a ML model. More abstractly, evaluating a function that has as tensors as arguments, described via TensorSpecs, and returns a tensor. Currently, the latter is assumed to be a scalar, in absence of more elaborate scenarios. NOTE: feature indices are expected to be consistent all accross MLModelRunners (pertaining to the same model), and also Loggers (see TFUtils.h)
MMOMetadata LLVM IR metadata carried by a MachineMemOperand.
MMRAMetadata Helper class to manipulate !mmra metadata nodes.
MSP430AttributeParser
MSVCPError
MSVCPExpected
MVT Machine Value Type. Every type that is supported natively by some processor targeted by LLVM occurs here. This means that any legal value type can be represented by an MVT.
MachORelocation MachORelocation - This struct contains information about each relocation that needs to be emitted to the file. see <mach-o/reloc.h>
MachObjectWriter
MachineBasicBlock
MachineBlockFrequencyAnalysis
MachineBlockFrequencyInfo MachineBlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate machine basic block frequencies.
MachineBlockFrequencyInfoWrapperPass
MachineBlockFrequencyPrinterPass Printer pass for the MachineBlockFrequencyInfo results.
MachineBlockHashInfo Legacy MachineFunctionPass for MachineBlockHashInfo.
MachineBlockHashInfoAnalysis
MachineBlockHashInfoPrinterPass Printer pass for the MachineBlockHashInfoAnalysis results.
MachineBlockHashInfoResult Result object for MachineBlockHashInfo.
MachineBlockPlacementPass
MachineBlockPlacementStatsPass
MachineBranchProbabilityAnalysis
MachineBranchProbabilityInfo
MachineBranchProbabilityInfoWrapperPass
MachineBranchProbabilityPrinterPass
MachineCFGPrinterPass
MachineCSEPass
MachineCombinerPass
MachineConstantPool The MachineConstantPool class keeps track of constants referenced by a function which must be spilled to memory. This is used for constants which are unable to be used directly as operands to instructions, which typically include floating point and large integer constants.
MachineConstantPoolEntry This class is a data container for one entry in a MachineConstantPool. It contains a pointer to the value and an offset from the start of the constant pool. An entry in a MachineConstantPool
MachineConstantPoolValue Abstract base class for all machine specific constantpool value subclasses.
MachineCopyPropagationPass
MachineCycleAnalysis
MachineCycleInfo
MachineCycleInfoPrinterPass
MachineCycleInfoWrapperPass Legacy analysis pass which computes a MachineCycleInfo.
MachineDomTreeGraphTraitsBase DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterators.
MachineDomTreeUpdater
MachineDominanceFrontier
MachineDominanceFrontierAnalysis
MachineDominanceFrontierWrapperPass
MachineDominatorTree DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
MachineDominatorTreeAnalysis Analysis pass which computes a MachineDominatorTree.
MachineDominatorTreePrinterPass Machine function pass which print MachineDominatorTree.
MachineDominatorTreeWrapperPass Analysis pass which computes a MachineDominatorTree.
MachineFrameInfo The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted. This class is key to allowing stack frame representation optimizations, such as frame pointer elimination. It also allows more mundane (but still important) optimizations, such as reordering of abstract objects on the stack frame.
MachineFunction
MachineFunctionAnalysis This analysis create MachineFunction for given Function. To release the MachineFunction, users should invalidate it explicitly.
MachineFunctionInfo MachineFunctionInfo - This class can be derived from and used by targets to hold private target-specific information for each MachineFunction. Objects of type are accessed/created with MF::getInfo and destroyed when the MachineFunction is destroyed.
MachineFunctionPass MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of passes that operate on the MachineFunction representation. Instead of overriding runOnFunction, subclasses override runOnMachineFunction.
MachineFunctionProperties Properties which a MachineFunction may have at a given point in time. Each of these has checking code in the MachineVerifier, and passes can require that a property be set.
MachineIDFSSAUpdater
MachineIRBuilder Helper class to build MachineInstr. It keeps internally the insertion point and debug location for all the new instructions we want to create. This information can be modified via the related setters.
MachineIRBuilderState Class which stores all the state required in a MachineIRBuilder. Since MachineIRBuilders will only store state in this object, it allows to transfer BuilderState between different kinds of MachineIRBuilders.
MachineInstr Representation of each machine instruction.
MachineInstrBuilder
MachineInstrBundleIterator MachineBasicBlock iterator that automatically skips over MIs that are inside bundles (i.e. walk top level MIs only).
MachineInstrBundleIteratorHelper
MachineInstrBundleIteratorTraits
MachineInstrExpressionTrait Special DenseMapInfo traits to compare MachineInstr* by value of the instruction rather than by pointer value. The hashing and equality testing functions ignore definitions so this is useful for CSE, etc.
MachineInstrSpan MachineInstrSpan provides an interface to get an iteration range containing the instruction it was initialized with, along with all those instructions inserted prior to or following that instruction at some point after the MachineInstrSpan is constructed.
MachineJumpTableEntry MachineJumpTableEntry - One jump table in the jump table info.
MachineJumpTableInfo
MachineKCFIPass
MachineLICMBasePass
MachineLICMPass
MachineLateInstrsCleanupPass
MachineLocation
MachineLoop
MachineLoopAnalysis Analysis pass that exposes the MachineLoopInfo for a machine function.
MachineLoopInfo
MachineLoopInfoWrapperPass
MachineLoopPrinterPass Printer pass for the LoopAnalysis results.
MachineMemOperand A description of a memory reference used in the backend. Instead of holding a StoreInst or LoadInst, this class holds the address Value of the reference along with a byte size and offset. This allows it to describe lowered loads and stores. Also, the special PseudoSourceValue objects can be used to represent loads and stores to memory locations that aren't explicit in the regular LLVM IR.
MachineModuleAnalysis An analysis that produces MachineModuleInfo for a module. This does not produce its own MachineModuleInfo because we need a consistent MachineModuleInfo to keep ownership of MachineFunctions regardless of analysis invalidation/clearing. So something outside the analysis infrastructure must own the MachineModuleInfo.
MachineModuleInfo This class contains meta information specific to a module. Queries can be made by different debugging and exception handling schemes and reformated for specific use.
MachineModuleInfoCOFF MachineModuleInfoCOFF - This is a MachineModuleInfoImpl implementation for COFF targets.
MachineModuleInfoELF MachineModuleInfoELF - This is a MachineModuleInfoImpl implementation for ELF targets.
MachineModuleInfoImpl This class can be derived from and used by targets to hold private target-specific information for each Module. Objects of type are accessed/created with MachineModuleInfo::getObjFileInfo and destroyed when the MachineModuleInfo is destroyed.
MachineModuleInfoMachO MachineModuleInfoMachO - This is a MachineModuleInfoImpl implementation for MachO targets.
MachineModuleInfoWasm MachineModuleInfoWasm - This is a MachineModuleInfoImpl implementation for Wasm targets.
MachineModuleInfoWrapperPass
MachineModuleSlotTracker
MachineOperand MachineOperand class - Representation of each machine instruction operand.
MachineOptimizationRemark Diagnostic information for applied optimization remarks.
MachineOptimizationRemarkAnalysis Diagnostic information for optimization analysis remarks.
MachineOptimizationRemarkEmitter The optimization diagnostic interface.
MachineOptimizationRemarkEmitterAnalysis The analysis pass
MachineOptimizationRemarkEmitterPass The analysis pass
MachineOptimizationRemarkMissed Diagnostic information for missed-optimization remarks.
MachinePassRegistry MachinePassRegistry - Track the registration of machine passes.
MachinePassRegistryListener MachinePassRegistryListener - Listener to adds and removals of nodes in registration list.
MachinePassRegistryNode MachinePassRegistryNode - Machine pass node stored in registration list.
MachinePipeliner The main class in the implementation of the target independent software pipeliner pass.
MachinePipelinerPolicy Software pipelining policy for a loop, which a target can customize by implementing TargetSubtargetInfo::overridePipelinerPolicy.
MachinePointerInfo This class contains a discriminated union of information about pointers in memory operands, relating them back to LLVM IR or to virtual locations (such as frame indices) that are exposed during codegen.
MachinePostDominatorTree MachinePostDominatorTree - an analysis pass wrapper for DominatorTree used to compute the post-dominator tree for MachineFunctions.
MachinePostDominatorTreeAnalysis
MachinePostDominatorTreePrinterPass
MachinePostDominatorTreeWrapperPass
MachineRegion
MachineRegionInfo
MachineRegionInfoAnalysis
MachineRegionInfoPass
MachineRegionInfoPrinterPass
MachineRegionNode
MachineRegisterClassAnalysis
MachineRegisterClassInfoWrapperPass
MachineRegisterInfo MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc.
MachineSDNode An SDNode that represents everything that will be needed to construct a MachineInstr. These nodes are created during the instruction selection proper phase.
MachineSSAUpdater MachineSSAUpdater - This class updates SSA form for a set of virtual registers defined in multiple blocks. This is used when code duplication or another unstructured transformation wants to rewrite a set of uses of one vreg with uses of a set of vregs.
MachineSanitizerBinaryMetadataPass
MachineSchedContext MachineSchedContext provides enough context from the MachineScheduler pass for the target to instantiate a scheduler.
MachineSchedPolicy Define a generic scheduling policy for targets that don't provide their own MachineSchedStrategy. This can be overriden for each scheduling region before building the DAG.
MachineSchedRegistry MachineSchedRegistry provides a selection of available machine instruction schedulers.
MachineSchedStrategy MachineSchedStrategy - Interface to the scheduling algorithm used by ScheduleDAGMI.
MachineSchedulerPass
MachineSinkingPass
MachineTraceMetrics
MachineTraceMetricsAnalysis
MachineTraceMetricsVerifierPass Verifier pass for MachineTraceMetrics.
MachineTraceMetricsWrapperPass
MachineUniformityAnalysis
MachineUniformityAnalysisPass Legacy analysis pass which computes a MachineUniformityInfo.
MachineUniformityPrinterPass
MachineVerifierPass
MakeGuardsExplicitPass
MallocAllocator Allocator that obtains memory from malloc/free (or aligned variants).
ManagedStatic ManagedStatic - This transparently changes the behavior of global statics to be lazily constructed on demand (good for reducing startup times of dynamic libraries that link in LLVM components) and for making destruction be explicit through the llvm_shutdown() function call.
ManagedStaticBase ManagedStaticBase - Common base class for ManagedStatic instances.
Mangler
MapResolver Resolve arbitrary mappings.
MapVector This class implements a map that also provides access to all stored values in a deterministic order.
MaskedGatherSDNode This class is used to represent an MGATHER node
MaskedGatherScatterSDNode This is a base class used to represent MGATHER and MSCATTER nodes
MaskedHistogramSDNode
MaskedLoadSDNode This class is used to represent an MLOAD node
MaskedLoadStoreSDNode This base class is used to represent MLOAD and MSTORE nodes
MaskedScatterSDNode This class is used to represent an MSCATTER node
MaskedStoreSDNode This class is used to represent an MSTORE node
MatchCustomNoteDiag MatchNoteDiag with a custom note not described by any other class derived from MatchNoteDiag.
MatchFoundDiag MatchResultDiag for a pattern that matched the input.
MatchFuzzyDiag MatchNoteDiag for a fuzzy match that serves as a suggestion for the next intended match for an expected pattern with too few or no good matches.
MatchNoneDiag MatchResultDiag for a pattern that did not match the input.
MatchNoteDiag Abstract base class for recording a FileCheck diagnostic that provides an additional note (possibly a new error) about the most recent MatchResultDiag.
MatchResultDiag Abstract base class for recording a FileCheck diagnostic that reports a match result for a pattern.
MatrixBuilder
MaybeAlign This struct is a compact representation of a valid (power of two) or undefined (0) alignment.
MemCpyInst This class wraps the llvm.memcpy intrinsic.
MemCpyOptPass
MemDepResult A memory dependence query can return one of three different answers.
MemDerefPrinterPass
MemIntrinsic This is the common base class for memset/memcpy/memmove.
MemIntrinsicBase Common base class for all memory intrinsics. Simply provides common methods. Written as CRTP to avoid a common base class amongst the three atomicity hierarchies.
MemIntrinsicCostAttributes Information for memory intrinsic cost model.
MemIntrinsicInfo Information about a load/store intrinsic defined by the target.
MemIntrinsicSDNode This SDNode is used for target intrinsics that touch memory and need an associated MachineMemOperand. Its opcode may be INTRINSIC_VOID, INTRINSIC_W_CHAIN, PREFETCH, or a target-specific memory-referencing opcode (see SelectionDAGTargetInfo::isTargetMemoryOpcode).
MemMoveInst This class wraps the llvm.memmove intrinsic.
MemOp
MemProfContextDisambiguation
MemProfRemoveInfo Strips MemProf attributes and metadata.
MemProfUsePass
MemProfilerPass Public interface to the memory profiler pass for instrumenting code to profile memory accesses.
MemSDNode This is an abstract virtual class for memory operations.
MemSetBase Common base class for all memset intrinsics. Simply provides common methods.
MemSetInst This class wraps the llvm.memset and llvm.memset.inline intrinsics.
MemSetPatternInst This class wraps the llvm.experimental.memset.pattern intrinsic. Note that despite the inheritance, this is not part of the MemIntrinsic hierachy in terms of isa/cast.
MemTransferBase Common base class for all memory transfer intrinsics. Simply provides common methods.
MemTransferInst This class wraps the llvm.memcpy/memmove intrinsics.
MemoryAccess
MemoryBuffer This interface provides simple read-only access to a block of memory, and provides simple methods for reading files and standard input into a memory buffer. In addition to basic access to the characters in the file, this interface guarantees you can read one character past the end of the file, and that this character will read as '0'.
MemoryBufferByteStream An implementation of BinaryStream whose data is backed by an llvm MemoryBuffer object. MemoryBufferByteStream owns the MemoryBuffer in question. As with BinaryByteStream, reading from a MemoryBufferByteStream will never cause a copy.
MemoryBufferRef
MemoryDef Represents a read-write access to memory, whether it is a must-alias, or a may-alias.
MemoryDepChecker Checks memory dependences among accesses to the same underlying object to determine whether there vectorization is legal or not (and at which vectorization factor).
MemoryDependenceAnalysis An analysis that produces MemoryDependenceResults for a function.
MemoryDependenceResults Provides a lazy, caching interface for making common memory aliasing information queries, backed by LLVM's alias analysis passes.
MemoryDependenceWrapperPass A wrapper analysis pass for the legacy pass manager that exposes a MemoryDepnedenceResults instance.
MemoryEffectsBase
MemoryLocation Representation for a specific memory location.
MemoryOpRemark
MemoryPhi Represents phi nodes for memory accesses.
MemorySSA Encapsulates MemorySSA, including all data associated with memory accesses.
MemorySSAAnalysis An analysis that produces MemorySSA for a function.
MemorySSAPrinterPass Printer pass for MemorySSA.
MemorySSAUpdater
MemorySSAUtil
MemorySSAVerifierPass Verifier pass for MemorySSA.
MemorySSAWalker This is the generic walker interface for walkers of MemorySSA. Walkers are used to be able to further disambiguate the def-use chains MemorySSA gives you, or otherwise produce better info than MemorySSA gives you. In particular, while the def-use chains provide basic information, and are guaranteed to give, for example, the nearest may-aliasing MemoryDef for a MemoryUse as AliasAnalysis considers it, a user mant want better or other information. In particular, they may want to use SCEV info to further disambiguate memory accesses, or they may want the nearest dominating may-aliasing MemoryDef for a call or a store. This API enables a standardized interface to getting and using that info.
MemorySSAWalkerPrinterPass Printer pass for MemorySSA via the walker.
MemorySSAWrapperPass Legacy analysis pass which computes MemorySSA.
MemorySanitizerOptions
MemorySanitizerPass A module pass for msan instrumentation.
MemoryUse Represents read-only accesses to memory
MemoryUseOrDef Class that has the common methods + fields of memory uses/defs. It's a little awkward to have, but there are many cases where we want either a use or def, and there are many cases where uses are needed (defs aren't acceptable), and vice-versa.
MemoryWriteTracking
MergeFunctionsPass Merge identical functions.
MergeICmpsPass
MergedLoadStoreMotionOptions
MergedLoadStoreMotionPass
MetaRenamerPass
Metadata Root of the metadata hierarchy.
MetadataAsValue Metadata wrapper in the Value hierarchy.
MetadataTracking API for tracking metadata references through RAUW and deletion.
MinMax
MinMaxIntrinsic This class represents min/max intrinsics.
ModifiedPostOrder Construct a specially modified post-order traversal of cycles.
Module A Module instance is used to store all the information related to an LLVM module. Modules are the top level container of all other LLVM Intermediate Representation (IR) objects. Each module directly contains a list of globals variables, a list of functions, a list of libraries (or other modules) this module depends on, a symbol table, and various data about the target's characteristics.
ModuleCopyProfPass
ModuleDebugInfoPrinterPass
ModuleInlinerPass The module inliner pass for the new pass manager.
ModuleInlinerWrapperPass Module pass, wrapping the inliner pass. This works in conjunction with the InlineAdvisorAnalysis to facilitate inlining decisions taking into account module-wide state, that need to keep track of inter-inliner pass runs, for a given module. An InlineAdvisor is configured and kept alive for the duration of the ModuleInlinerWrapperPass::run.
ModuleLibcallLoweringInfo Records a mapping from an opaque lowering context to its LibcallLoweringInfo.
ModuleMemProfilerPass Public interface to the memory profiler module pass for instrumenting code to profile memory allocations and accesses.
ModulePass ModulePass class - This class is used to implement unstructured interprocedural optimizations and analyses. ModulePasses may do anything they want to the program.
ModuleSlotTracker Manage lifetime of a slot tracker for printing IR.
ModuleSummaryIndex Class to hold module path string table and global value map, and encapsulate methods for operating on them.
ModuleSummaryIndexAnalysis Analysis pass to provide the ModuleSummaryIndex object.
ModuleSummaryIndexWrapperPass Legacy wrapper pass to provide the ModuleSummaryIndex object.
ModuleSymbolTable
ModuleThreadSanitizerPass A module pass for tsan instrumentation.
ModuleToFunctionPassAdaptor Trivial adaptor that maps from a module to its functions.
ModuleToPostOrderCGSCCPassAdaptor The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one.
ModuloSchedule Represents a schedule for a single-block loop. For every instruction we maintain a Cycle and Stage.
ModuloScheduleExpander The ModuloScheduleExpander takes a ModuloSchedule and expands it in-place, rewriting the old loop and inserting prologs and epilogs as required.
ModuloScheduleExpanderMVE Expand the kernel using modulo variable expansion algorithm (MVE). It unrolls the kernel enough to avoid overlap of register lifetime.
ModuloScheduleTestAnnotater Expander that simply annotates each scheduled instruction with a post-instr symbol that can be consumed by the ModuloScheduleTest pass.
MoveAutoInitPass
MulOperator
MultiHazardRecognizer
MustBeExecutedContextExplorer A "must be executed context" for a given program point PP is the set of instructions, potentially before and after PP, that are executed always when PP is reached. The MustBeExecutedContextExplorer an interface to explore "must be executed contexts" in a module through the use of MustBeExecutedIterator.
MustBeExecutedContextPrinterPass
MustBeExecutedIterator Must be executed iterators visit stretches of instructions that are guaranteed to be executed together, potentially with other instruction executed in-between.
MustExecutePrinterPass
MutableArrayRef Represent a mutable reference to an array (0 or more elements consecutively in memory), i.e. a start pointer and a length. It allows various APIs to take and modify consecutive elements easily and conveniently.
MutableBinaryByteStream An implementation of BinaryStream which holds its entire data set in a single contiguous buffer. As with BinaryByteStream, the mutable version also guarantees that no read operation will ever incur a copy, and similarly it does not own the underlying buffer.
NameAnonGlobalPass Simple pass that provides a name to every anonymous globals.
NamedInstrProfRecord
NamedMDNode A tuple of MDNodes.
NamedRegionTimer This class is basically a combination of TimeRegion and Timer. It allows you to declare a new timer, AND specify the region to time, all in one statement. All timers with the same name are merged. This is primarily used for debugging and for hunting performance problems.
NamespaceEmitter
NaryReassociatePass
NearMissInfo
NewArchiveMember
NewGVNPass
NfaStatePair Forward define the pair type used by the automata transition info tables.
NoActiveBlocksOption
NoAliasScopeDeclInst
NoCFIValue Wrapper for a value that won't be replaced with a CFI jump table pointer in LowerTypeTestsModule.
NoFolder NoFolder - Create "constants" (actually, instructions) with no folding.
NoInferenceModelRunner A pseudo model runner. We use it to store feature values when collecting logs for the default policy, in 'development' mode, but never ask it to 'run'.
NoOpCGSCCAnalysis No-op CGSCC analysis.
NoOpCGSCCPass No-op CGSCC pass which does nothing.
NoOpFunctionAnalysis No-op function analysis.
NoOpFunctionPass No-op function pass which does nothing.
NoOpLoopAnalysis No-op loop analysis.
NoOpLoopNestPass No-op loop nest pass which does nothing.
NoOpLoopPass No-op loop pass which does nothing.
NoOpMachineFunctionPass No-op machine function pass which does nothing.
NoOpModuleAnalysis No-op module analysis.
NoOpModulePass No-op module pass which does nothing.
NoRecurseLTOInferencePass Additional 'norecurse' attribute deduction during postlink LTO phase.
NodeSet A NodeSet contains a set of SUnit DAG nodes with additional information that assigns a priority to the set.
NoinlineNonPrevailing
NonLocalDepEntry This is an entry in the NonLocalDepInfo cache.
NonLocalDepResult This is a result from a NonLocal dependence query.
NonRelocatableStringpool A string table that doesn't need relocations.
NoopSavedModelImpl A mock class satisfying the interface expected by ReleaseModeModelRunner for its TGen parameter. Useful to avoid conditional compilation complexity, as a compile-time replacement for a real AOT-ed model.
NoopStatistic No-op statistic used when LLVM_ENABLE_STATS is off.
NullableValueCastFailed This cast trait just provides castFailed for the specified To type to make CastInfo specializations more declarative. In order to use this, the target result type must be To and To must be constructible from nullptr.
NumberedValues Mapping from value ID to value, which also remembers what the next unused ID is.
NumericalStabilitySanitizerPass A function pass for nsan instrumentation.
OProfileWrapper
ObjCARCContractPass
ObjCARCExpandPass
ObjCARCOptPass
ObjCSelectorNames
ObjectCache This is the base ObjectCache type which can be provided to an ExecutionEngine for the purpose of avoiding compilation for Modules that have already been compiled and an object file is available.
ObjectSizeOffsetEvaluator Evaluate the size and offset of an object pointed to by a Value*. May create code to compute the result at run-time.
ObjectSizeOffsetVisitor Evaluate the size and offset of an object pointed to by a Value* statically. Fails if size or offset are not known at compile time.
ObjectSizeOpts Various options to control the behavior of getObjectSize.
OffloadEntriesInfoManager Class that manages information about offload code regions and data
OffsetAndUnitID Helper class to identify an entry in DWARF5AccelTable based on their DIE offset and UnitID.
OffsetSpan OffsetSpan - Used internally by ObjectSizeOffsetVisitor. Represents a point in memory as a pair of allocated bytes before and after it.
OffsetsTag
OnDiskChainedHashTable Provides lookup on an on disk hash table.
OnDiskChainedHashTableGenerator Generates an on disk hash table.
OnDiskIterableChainedHashTable Provides lookup and iteration over an on disk hash table.
OpInit Base class for operators
OpenMPIRBuilder An interface to create LLVM-IR for OpenMP directives.
OpenMPIRBuilderConfig Captures attributes that affect generating LLVM-IR using the OpenMPIRBuilder and related classes. Note that not all attributes are required for all classes or functions. In some use cases the configuration is not necessary at all, because because the only functions that are called are ones that are not dependent on the configuration.
OpenMPOptCGSCCPass
OpenMPOptPass OpenMP optimizations pass.
OperandBundleDefT A container for an operand bundle being viewed as a set of values rather than a set of uses.
OperandBundleUse A lightweight accessor for an operand bundle meant to be passed around by value.
OperandTraits Compile-time customization of User operands.
Operator This is a utility class that provides an abstraction for the common functionality between Instructions and ConstantExprs.
OptBisect This class implements a mechanism to disable passes and individual optimizations at compile time based on two command line options (-opt-bisect and -opt-disable) in order to perform a bisecting search for optimization-related problems, and/or disable individual passes or combinations thereof.
OptNoneInstrumentation
OptPassGate Extensions to this class implement mechanisms to disable passes and individual optimizations at compile time.
OptPassGateInstrumentation
OptimizationRemark Diagnostic information for applied optimization remarks.
OptimizationRemarkAnalysis Diagnostic information for optimization analysis remarks.
OptimizationRemarkAnalysisAliasing Diagnostic information for optimization analysis remarks related to pointer aliasing.
OptimizationRemarkAnalysisFPCommute Diagnostic information for optimization analysis remarks related to floating-point non-commutativity.
OptimizationRemarkEmitter The optimization diagnostic interface.
OptimizationRemarkEmitterAnalysis
OptimizationRemarkEmitterWrapperPass OptimizationRemarkEmitter legacy analysis pass
OptimizationRemarkMissed Diagnostic information for missed-optimization remarks.
OptimizePHIsPass
OptimizedStructLayoutField A field in a structure.
OptionalOperandTraits OptionalOperandTraits - when the number of operands may change at runtime. Naturally it may only decrease, because the allocations may not change.
OptionalPassInfoMixin A CRTP mix-in for passes that can be skipped.
OptionalValueCast This cast trait provides std::optional<T> casting. This means that if you have a value type, you can cast it to another value type and have dyn_cast return an std::optional<T>.
OrderedChangedData
OuterAnalysisManagerProxy This proxy doesn't manage invalidation in any way -- that is handled by the recursive return path of each layer of the pass manager. A consequence of this is the outer analyses may be stale. We invalidate the outer analyses only when we're done running passes over the inner IR units.
OutlinedHashTree
OutlinedHashTreeRecord
OutputCategoryAggregator
OverflowTracking
OverflowingBinaryOperator Utility class for integer operators which may exhibit overflow - Add, Sub, Mul, and Shl. It does not include SDiv, despite that operator having the potential for overflow.
OverlapFuncFilters
OverlapStats
PAEvalPass
PBQPRAConstraint Abstract base for classes implementing PBQP register allocation constraints (e.g. Spill-costs, interference, coalescing).
PBQPRAConstraintList PBQP register allocation constraint composer.
PGOContextualProfile The instrumented contextual profile, produced by the CtxProfAnalysis.
PGOCtxProfContext A node (context) in the loaded contextual profile, suitable for mutation during IPO passes. We generally expect a fraction of counters and callsites to be populated. We continue to model counters as vectors, but callsites are modeled as a map of a map. The expectation is that, typically, there is a small number of indirect targets (usually, 1 for direct calls); but potentially a large number of callsites, and, as inlining progresses, the callsite count of a caller will grow.
PGOCtxProfFlatteningPass
PGOCtxProfLoweringPass
PGOCtxProfile
PGOCtxProfileReader
PGOCtxProfileWriter Write one or more ContextNodes to the provided raw_fd_stream. The caller must destroy the PGOCtxProfileWriter object before closing the stream. The design allows serializing a bunch of contexts embedded in some other file. The overall format is:
PGOForceFunctionAttrsPass
PGOIndirectCallPromotion The indirect function call promotion pass.
PGOIndirectCallVisitor
PGOInstrumentationGen The instrumentation (profile-instr-gen) pass for IR based PGO.
PGOInstrumentationGenCreateVar The instrumentation (profile-instr-gen) pass for IR based PGO.
PGOInstrumentationUse The profile annotation (profile-instr-use) pass for IR based PGO.
PGOMemOPSizeOpt The profile size based optimization pass for memory intrinsics.
PGOOptions A struct capturing PGO tunables.
PHIEliminationPass
PHINode
PHITransAddr PHITransAddr - An address value which tracks and handles phi translation. As we walk "up" the CFG through predecessors, we need to ensure that the address we're tracking is kept up to date. For example, if we're analyzing an address of "&A[i]" and walk through the definition of 'i' which is a PHI node, we must phi translate i to get "&A[j]" or else we will analyze an incorrect pointer in the predecessor block.
PMDataManager PMDataManager provides the common place to manage the analysis data used by pass managers.
PMStack PMStack - This class implements a stack data structure of PMDataManager pointers.
PMTopLevelManager PMTopLevelManager manages LastUser info and collects common APIs used by top level pass managers.
PSetIterator Iterate over the pressure sets affected by the given physical or virtual register. If Reg is physical, it must be a register unit (from MCRegUnitIterator).
PackedVector Store a vector of values using a specific number of bits for each value. Both signed and unsigned types can be used, e.g
PagedVector A vector that allocates memory in pages.
ParseInstructionInfo
ParseResult This class represents success/failure for parsing-like operations that find it important to chain together failable operations with ||. This is an extended version of LogicalResult that allows for explicit conversion to bool.
ParseStatus Ternary parse status returned by various parse* methods.
ParsedModuleAndIndex Holds the Module and ModuleSummaryIndex returned by the interfaces that parse both.
ParserCallbacks
PartialInlinerPass Pass to remove unused function declarations.
PartiallyInlineLibCallsPass
Pass Pass interface - Implemented by all 'passes'. Subclass this if you are an interprocedural optimization or you do not fit into any of the more constrained passes described below.
PassBuilder This class provides access to building LLVM's passes.
PassConfigImpl
PassInfo PassInfo class - An instance of this class exists for every pass known by the system, and can be obtained from a live Pass by calling its getPassInfo() method. These objects are set up by the RegisterPass<> template.
PassInstrumentation This class provides instrumentation entry points for the Pass Manager, doing calls to callbacks registered in PassInstrumentationCallbacks.
PassInstrumentationAnalysis Pseudo-analysis pass that exposes the PassInstrumentation to pass managers.
PassInstrumentationCallbacks This class manages callbacks registration, as well as provides a way for PassInstrumentation to pass control to the registered callbacks.
PassManager Manages a sequence of passes over a particular unit of IR.
PassManagerPrettyStackEntry PassManagerPrettyStackEntry - This is used to print informative information about what pass is running when/if a stack trace is generated.
PassManagerWrapper
PassNameParser
PassPlugin A loaded pass plugin.
PassPluginLibraryInfo Information about the plugin required to load its passes
PassRegistrationListener
PassRegistry PassRegistry - This class manages the registration and intitialization of the pass subsystem as application startup, and assists the PassManager in resolving pass dependencies. NOTE: PassRegistry is NOT thread-safe. If you want to use LLVM on multiple threads simultaneously, you will need to use a separate PassRegistry on each thread.
PatchItem
PatchPointOpers MI-level patchpoint operands.
PatchableFunctionPass
PatternsForOpcode Map from opcode to pattern list by binary search.
PeelingModuloScheduleExpander A reimplementation of ModuloScheduleExpander. It works by generating a standalone kernel loop and peeling out the prologs and epilogs.
PeepholeOptimizerPass
PerFunctionMIParsingState
PerTargetMIParsingState
PhiValues Class for calculating and caching the underlying values of phis in a function.
PhiValuesAnalysis The analysis pass which yields a PhiValues
PhiValuesPrinterPass A pass for printing the PhiValues for a function.
PhiValuesWrapperPass Wrapper pass for the legacy pass manager
PhysRegInfo Information about how a physical register Reg is used by a set of operands.
PhysRegSUOper Record a physical register access. For non-data-dependent uses, OpIdx == -1.
PhysicalRegisterUsageAnalysis
PhysicalRegisterUsageInfo
PhysicalRegisterUsageInfoPrinterPass
PhysicalRegisterUsageInfoWrapperLegacy
PiBlockDDGNode Subclass of DDGNode representing a pi-block. A pi-block represents a group of DDG nodes that are part of a strongly-connected component of the graph. Replacing all the SCCs with pi-blocks results in an acyclic representation of the DDG. For example if we have: {a -> b}, {b -> c, d}, {c -> a} the cycle a -> b -> c -> a is abstracted into a pi-block "p" as follows: {p -> d} with "p" containing: {a -> b}, {b -> c}, {c -> a}
PipelineTuningOptions Tunable parameters for passes in the default pipelines.
PlaceSafepointsPass
PluginInlineAdvisorAnalysis Used for dynamically registering InlineAdvisors as plugins
PluginInlineOrderAnalysis Used for dynamically loading instances of InlineOrder as plugins
PluginLoader
PointerDiffInfo
PointerEmbeddedInt Utility to embed an integer into a pointer-like type. This is specifically intended to allow embedding integers where fewer bits are required than exist in a pointer, and the integer can participate in abstractions along side other pointer-like types. For example it can be placed into a PointerSumType or PointerUnion.
PointerIntPair PointerIntPair - This class implements a pair of a pointer and small integer. It is designed to represent this in the space required by one pointer by bitmangling the integer into the low part of the pointer. This can only be done for small integers: typically up to 3 bits, but it depends on the number of bits available according to PointerLikeTypeTraits for the type.
PointerIntPairInfo Helpers that pack and unpack pointer/integer bits for PointerIntPair.
PointerLikeTypeTraits A traits type that is used to handle pointer types and things that are just wrappers for pointers as a uniform entity.
PointerSumType A sum type over pointer-like types.
PointerSumTypeMember A compile time pair of an integer tag and the pointer-like type which it indexes within a sum type. Also allows the user to specify a particular traits class for pointer types with custom behavior such as over-aligned allocation.
PointerType Class to represent pointers.
PointerUnion A discriminated union of two or more pointer types, with the discriminator in the low bits of the pointer.
PoisonFlags
PoisonValue In order to facilitate speculative execution, many instructions do not invoke immediate undefined behavior when provided with illegal operands, and return a poison value instead.
PoisoningVH Value handle that poisons itself if the Value is deleted.
PolynomialInfo The structure that is returned when a polynomial algorithm was recognized by the analysis. Currently, only the CRC algorithm is recognized.
PossiblyDisjointInst An or instruction, which can be marked as "disjoint", indicating that the inputs don't have a 1 in the same bit position. Meaning this instruction can also be treated as an add.
PossiblyExactOperator A udiv, sdiv, lshr, or ashr instruction, which can be marked as "exact", indicating that no bits are destroyed.
PossiblyNonNegInst Instruction that can have a nneg flag (zext/uitofp).
PostDomOnlyPrinter
PostDomOnlyViewer
PostDomPrinter
PostDomViewer
PostDominatorTree PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominator tree.
PostDominatorTreeAnalysis Analysis pass which computes a PostDominatorTree.
PostDominatorTreePrinterPass Printer pass for the PostDominatorTree.
PostDominatorTreeWrapperPass
PostGenericScheduler PostGenericScheduler - Interface to the scheduling algorithm used by ScheduleDAGMI.
PostMachineSchedulerPass
PostOrderExtTraversal Post-order traversal using an external visited set.
PostOrderFunctionAttrsPass Computes function attributes in post-order over the call graph.
PostOrderTraversal Post-order traversal of a graph.
PostOrderTraversalBase CRTP base for a single post-order graph walk.
PostRAHazardRecognizerPass
PostRAMachineSinkingPass
PostRASchedulerPass
PotentialValuesState A class for a set state.
PreISelIntrinsicLoweringPass
PredIterator
PredIteratorCache PredIteratorCache - This class is an extremely trivial cache for predecessor iterator queries. This is useful for code that repeatedly wants the predecessor list for the same blocks.
PredicateAssume
PredicateBase
PredicateBranch
PredicateBundleAssume
PredicateConditionAssume
PredicateConstraint Constraint for a predicate of the form "cmp Pred Op, OtherOp", where Op is the value the constraint applies to (the bitcast result).
PredicateInfo Encapsulates PredicateInfo, including all data associated with memory accesses.
PredicateInfoAnnotatedWriter
PredicateInfoBuilder
PredicateInfoPrinterPass Printer pass for PredicateInfo.
PredicateInfoVerifierPass Verifier pass for PredicateInfo.
PredicateSwitch
PredicateWithEdge
PredicatedScalarEvolution An interface layer with SCEV used to manage how we see SCEV expressions for values in the context of existing predicates. We can add new predicates, but we cannot remove them.
PreferredTuple
PrefetchHint
PreservedAnalyses A set of analyses that are preserved following a run of a transformation pass.
PreservedCFGCheckerInstrumentation
PreservedCastFlags
PressureChange Capture a change in pressure for a single pressure set. UnitInc may be expressed in terms of upward or downward pressure depending on the client and will be dynamically adjusted for current liveness.
PressureDiff List of PressureChanges in order of increasing, unique PSetID.
PressureDiffs Array of PressureDiffs.
PrettyStackTraceEntry PrettyStackTraceEntry - This class is used to represent a frame of the "pretty" stack trace that is dumped when a program crashes. You can define subclasses of this and declare them on the program stack: when they are constructed and destructed, they will add their symbolic frames to a virtual stack trace. This gets dumped out if the program crashes.
PrettyStackTraceFormat PrettyStackTraceFormat - This object prints a string (which may use printf-style formatting but should not contain newlines) to the stream as the stack trace when a crash occurs.
PrettyStackTraceProgram PrettyStackTraceProgram - This object prints a specified program arguments to the stream as the stack trace when a crash occurs.
PrettyStackTraceString PrettyStackTraceString - This object prints a specified string (which should not contain newlines) to the stream as the stack trace when a crash occurs.
PrintCrashIRInstrumentation
PrintFunctionPass Pass (for the new pass manager) for printing a Function as LLVM's text IR assembly.
PrintIRInstrumentation Instrumentation to print IR before/after passes.
PrintLoopPass Pass for printing a loop's contents as textual IR.
PrintMIRPass
PrintMIRPreparePass
PrintModulePass Pass (for the new pass manager) for printing a Module as LLVM's text IR assembly.
PrintPassInstrumentation
PrintPassOptions
PrintPipelinePassesFormatParser
Printable Simple wrapper around std::function<void(raw_ostream&)>. This class is useful to construct print helpers for raw_ostream.
PriorityQueue PriorityQueue - This class behaves like std::priority_queue and provides a few additional convenience functions.
PriorityWorklist A FILO worklist that prioritizes on re-insertion without duplication.
ProcessImplicitDefsPass
ProfOStream
ProfiParams Various thresholds and options controlling the behavior of the profile inference algorithm. Default values are tuned for several large-scale applications, and can be modified via corresponding command-line flags.
ProfileAnnotator
ProfileAnnotatorImpl Utility that propagates counter values to each basic block and to each edge when a basic block has more than one outgoing edge, using an adaptation of PGOUseFunc::populateCounters.
ProfileInjectorPass Inject MD_prof metadata where it's missing. Used for testing that passes don't accidentally drop this metadata.
ProfileSummary
ProfileSummaryAnalysis An analysis pass based on the new PM to deliver ProfileSummaryInfo.
ProfileSummaryBuilder
ProfileSummaryEntry
ProfileSummaryInfo Analysis providing profile information.
ProfileSummaryInfoWrapperPass An analysis pass based on legacy pass manager to deliver ProfileSummaryInfo.
ProfileSummaryPrinterPass Printer pass that uses ProfileSummaryAnalysis.
ProfileVerifierPass Checks that MD_prof is present on every instruction that supports it. Used in conjunction with the ProfileInjectorPass. MD_prof "unknown" is considered valid (i.e. !{!"unknown"})
PrologEpilogInserterPass
PromotePass
PseudoProbe
PseudoProbeDescriptor
PseudoProbeDwarfDiscriminator
PseudoProbeHandler
PseudoProbeInst
PseudoProbeManager
PseudoProbeSDNode This SDNode is used for PSEUDO_PROBE values, which are the function guid and the index of the basic block being probed. A pseudo probe serves as a place holder and will be removed at the end of compilation. It does not have any operand because we do not want the instruction selection to deal with any.
PseudoProbeUpdatePass
PseudoProbeVerifier
PseudoSourceValue Special value supplied for machine level alias analysis. It indicates that a memory access references the functions stack frame (e.g., a spill slot), below the stack frame (e.g., argument space), or constant pool.
PseudoSourceValueManager Manages creation of pseudo source values.
PtrAddChain
PtrToAddr
PtrToAddrInst This class represents a cast from a pointer to an address (non-capturing ptrtoint).
PtrToAddrOperator
PtrToInt
PtrToIntInst This class represents a cast from a pointer to an integer.
PtrToIntOperator
PtrUseVisitor A base class for visitors over the uses of a pointer value.
RAGreedy Interface to the eviction advisor, which is responsible for making a decision as to which live ranges should be evicted (if any).
RAIIDelegateInstaller A simple RAII based Delegate installer. Use this in a scope to install a delegate to the MachineFunction and reset it at the end of the scope.
RAIIMFObsDelInstaller Class to install both of the above.
RAIIMFObserverInstaller A simple RAII based Observer installer. Use this in a scope to install the Observer to the MachineFunction and reset it at the end of the scope.
RAIITemporaryObserverInstaller A simple RAII based Observer installer. Use this in a scope to install the Observer to the MachineFunction and reset it at the end of the scope.
RCToken
RGPassManager The pass manager to schedule RegionPasses.
RISCVAttributeParser
RISCVISAInfo
RNSuccIterator Hierarchical RegionNode successor iterator.
RTDyldMemoryManager
RTTIExtends Inheritance utility for extensible RTTI.
RTTIRoot Base class for the extensible RTTI hierarchy.
RVYCapabilityFormat
RadixTree A Radix Tree implementation.
RandomIRBuilder
RandomNumberGenerator A random number generator.
RangeListEntry A class representing a single range list entry.
RawInstrProfReader Reader for the raw instrprof binary format from runtime.
RawLocationWrapper Lightweight class that wraps the location operand metadata of a debug intrinsic. The raw location may be a ValueAsMetadata, an empty MDTuple, or a DIArgList.
ReachingDef Thin wrapper around "int" used to store reaching definitions, using an encoding that makes it compatible with TinyPtrVector. The 0th LSB is forced zero (and will be used for pointer union tagging), The 1st LSB is forced one (to make sure the value is non-zero).
ReachingDefAnalysis
ReachingDefInfo This class provides the reaching def analysis.
ReachingDefInfoWrapperPass
ReachingDefPrinterPass Printer pass for the ReachingDefInfo results.
ReadyQueue ReadyQueue encapsulates vector of "ready" SUnits with basic convenience methods for pushing and removing nodes. ReadyQueue's are uniquely identified by an ID. SUnit::NodeQueueId is a mask of the ReadyQueues the SUnit is in.
RealtimeSanitizerPass Create ctor and init functions.
ReassociatePass Reassociate commutative expressions.
RecTy
RecomputeGlobalsAAPass
Record
RecordAccessor
RecordKeeper
RecordRecTy '[classname]' - Type of record values that have zero or more superclasses.
RecordResolver Resolve all variables from a record except for unset variables.
RecordVal This class represents a field in a record, including its name, type, value, and source location.
RecurrenceDescriptor This struct holds information about recurrence variables.
Recycler Recycler - This class manages a linked-list of deallocated nodes and facilitates reusing deallocated memory in place of allocating new memory.
RecyclingAllocator RecyclingAllocator - This class wraps an Allocator, adding the functionality of recycling deleted objects.
RedundantDbgInstEliminationPass
RefCountedBase A CRTP mixin class that adds reference counting to a type.
RegAllocEvictionAdvisor
RegAllocEvictionAdvisorAnalysis A MachineFunction analysis for fetching the Eviction Advisor. This sets up the Provider lazily and caches it. - in the ML implementation case, the evaluator is stateless but (especially in the development mode) expensive to set up. With a Module Analysis, we require it and set it up once. - in the 'development' mode ML case, we want to capture the training log during allocation (this is a log of features encountered and decisions made), and then measure a score, potentially a few steps after allocation completes. So we need a Module analysis to keep the logger state around until we can make that measurement.
RegAllocEvictionAdvisorAnalysisLegacy ImmutableAnalysis abstraction for fetching the Eviction Advisor. We model it as an analysis to decouple the user from the implementation insofar as dependencies on other analyses goes. The motivation for it being an immutable pass is twofold: - in the ML implementation case, the evaluator is stateless but (especially in the development mode) expensive to set up. With an immutable pass, we set it up once. - in the 'development' mode ML case, we want to capture the training log during allocation (this is a log of features encountered and decisions made), and then measure a score, potentially a few steps after allocation completes. So we need the properties of an immutable pass to keep the logger state around until we can make that measurement.
RegAllocEvictionAdvisorProvider Common provider for legacy and new pass managers. This keeps the state for logging, and sets up and holds the provider. The legacy pass itself used to keep the logging state and provider, so this extraction helps the NPM analysis to reuse the logic. TODO: Coalesce this with the NPM analysis when legacy PM is removed.
RegAllocFastPass
RegAllocPriorityAdvisor Interface to the priority advisor, which is responsible for prioritizing live ranges.
RegAllocPriorityAdvisorAnalysis
RegAllocPriorityAdvisorAnalysisLegacy
RegAllocPriorityAdvisorProvider Common provider for getting the priority advisor and logging rewards. Legacy analysis forwards all calls to this provider. New analysis serves the provider as the analysis result. Expensive setup is done in the constructor, so that the advisor can be created quickly for every machine function. TODO: Remove once legacy PM support is dropped.
RegAllocTypeParser
RegBankSelectLegacy This pass implements the reg bank selector pass used in the GlobalISel pipeline. At the end of this pass, all register operands have been assigned
RegBankSelectPass
RegClassWeight Each TargetRegisterClass has a per register weight, and weight limit which must be less than the limits of its pressure sets.
RegImmPair Used to describe a register and immediate addition.
RegOrConstant Represents a value which can be a Register or a constant.
RegPressureDelta Store the effects of a change in pressure on things that MI scheduler cares about.
RegPressureTracker Track the current register pressure at some position in the instruction stream, and remember the high water mark within the region traversed. This does not automatically consider live-through ranges. The client may independently adjust for global liveness.
RegScavenger
RegToMemPass
RegUsageInfoCollectorPass
RegUsageInfoPropagationPass
Regex
Region
RegionBase A single entry single exit Region.
RegionInfo
RegionInfoAnalysis Analysis pass that exposes the RegionInfo for a function.
RegionInfoBase Analysis that detects all canonical Regions.
RegionInfoPass
RegionInfoPrinterPass Printer pass for the RegionInfo.
RegionInfoVerifierPass Verifier pass for the RegionInfo.
RegionNode
RegionNodeBase A RegionNode represents a subregion or a BasicBlock that is part of a Region.
RegionPass A pass that runs on each Region in a function.
RegionPressure RegisterPressure computed within a region of instructions delimited by TopPos and BottomPos. This is a less precise version of IntervalPressure for use when LiveIntervals are unavailable.
RegionTraits
Register Wrapper class representing virtual and physical registers. Should be passed by value.
RegisterAsmPrinter RegisterAsmPrinter - Helper template for registering a target specific assembly printer, for use in the target machine initialization function. Usage:
RegisterBank This class implements the register bank concept. Two instances of RegisterBank must have different ID. This property is enforced by the RegisterBankInfo class.
RegisterBankInfo Only the RegisterBankInfo can initialize RegisterBank properly.
RegisterClassInfo
RegisterCoalescerPass
RegisterImmPair
RegisterMCAsmBackend RegisterMCAsmBackend - Helper template for registering a target specific assembler backend. Usage:
RegisterMCAsmInfo RegisterMCAsmInfo - Helper template for registering a target assembly info implementation. This invokes the static "Create" method on the class to actually do the construction. Usage:
RegisterMCAsmInfoFn RegisterMCAsmInfoFn - Helper template for registering a target assembly info implementation. This invokes the specified function to do the construction. Usage:
RegisterMCAsmParser RegisterMCAsmParser - Helper template for registering a target specific assembly parser, for use in the target machine initialization function. Usage:
RegisterMCCodeEmitter RegisterMCCodeEmitter - Helper template for registering a target specific machine code emitter, for use in the target initialization function. Usage:
RegisterMCInstrAnalysis RegisterMCInstrAnalysis - Helper template for registering a target instruction analyzer implementation. This invokes the static "Create" method on the class to actually do the construction. Usage:
RegisterMCInstrAnalysisFn RegisterMCInstrAnalysisFn - Helper template for registering a target instruction analyzer implementation. This invokes the specified function to do the construction. Usage:
RegisterMCInstrInfo RegisterMCInstrInfo - Helper template for registering a target instruction info implementation. This invokes the static "Create" method on the class to actually do the construction. Usage:
RegisterMCInstrInfoFn RegisterMCInstrInfoFn - Helper template for registering a target instruction info implementation. This invokes the specified function to do the construction. Usage:
RegisterMCObjectFileInfo Helper template for registering a target object file info implementation. This invokes the static "Create" method on the class to actually do the construction. Usage:
RegisterMCObjectFileInfoFn Helper template for registering a target object file info implementation. This invokes the specified function to do the construction. Usage:
RegisterMCRegInfo RegisterMCRegInfo - Helper template for registering a target register info implementation. This invokes the static "Create" method on the class to actually do the construction. Usage:
RegisterMCRegInfoFn RegisterMCRegInfoFn - Helper template for registering a target register info implementation. This invokes the specified function to do the construction. Usage:
RegisterMCSubtargetInfo RegisterMCSubtargetInfo - Helper template for registering a target subtarget info implementation. This invokes the static "Create" method on the class to actually do the construction. Usage:
RegisterMCSubtargetInfoFn RegisterMCSubtargetInfoFn - Helper template for registering a target subtarget info implementation. This invokes the specified function to do the construction. Usage:
RegisterMaskSDNode
RegisterOperands List of registers defined and used by a machine instruction.
RegisterPassParser RegisterPassParser class - Handle the addition of new machine passes.
RegisterPressure Base class for register pressure results.
RegisterRegAlloc
RegisterRegAllocBase RegisterRegAllocBase class - Track the registration of register allocators.
RegisterSDNode
RegisterScheduler
RegisterTarget RegisterTarget - Helper template for registering a target, for use in the target's initialization function. Usage:
RegisterTargetMachine RegisterTargetMachine - Helper template for registering a target machine implementation, for use in the target machine initialization function. Usage:
RegisterTargetPassConfigCallback
Registry A global registry used in conjunction with static constructors to make pluggable components (like targets or garbage collectors) "just work" when linked with an executable.
RelLookupTableConverterPass
ReleaseModeModelRunner
RelocAddrEntry RelocAddrEntry contains relocated value and section index. Section index is -1LL if relocation points to absolute symbol.
Rematerializer MIR-level target-independent rematerializer. Provides an API to identify and rematerialize registers within a machine function.
RemoveLoadsIntoFakeUsesPass
RemoveRedundantDebugValuesPass
RenameIndependentSubregsPass
Repeated A memory-efficient immutable range with a single value repeated N times. The value is owned by the range.
RepeatedIterator A random-access iterator that always dereferences to the same value.
ReplaceWithVeclib
ReplaceWithVeclibLegacy
ReplaceableMetadataImpl Shared implementation of use-lists for replaceable metadata.
ReplacementItem
ReplayInlineAdvisor Replay inline advisor that uses optimization remarks from inlining of previous build to guide current inlining. This is useful for inliner tuning.
ReplayInlinerSettings Replay Inliner Setup
RequireAnalysisPass A utility pass template to force an analysis result to be available.
RequiredPassInfoMixin A CRTP mix-in for passes that should not be skipped.
ReservoirSampler Randomly selects an item by sampling into a set with an unknown number of elements, which may each be weighted to be more likely choices.
Resolver Interface for looking up the initializer for a variable name, used by Init::resolveReferences.
ResolverError
ResourceManager
ResourcePriorityQueue
ResourceSegments ResourceSegments are a collection of intervals closed on the left and opened on the right:
ResumeInst Resume the propagation of an exception.
RetainedKnowledge Represent one information held inside an operand bundle of an llvm.assume. AttrKind is the property that holds. WasOn if not null is that Value for which AttrKind holds. ArgValue is optionally an argument of the attribute. For example if we know that %P has an alignment of at least four: - AttrKind will be Attribute::Alignment. - WasOn will be %P. - ArgValue will be 4.
ReturnInst Return a value (possibly void), from a function. Execution does not continue in this function any longer.
ReversePostOrderFunctionAttrsPass A pass to do RPO deduction and propagation of function attributes.
ReversePostOrderTraversal Precomputed reverse-post-order walk of a graph.
RewriteBuffer Buffer holding rewritten source text and original-to-rewritten offset maps.
RewriteRope Rope that supports efficient mid-string insert and erase.
RewriteStatepointsForGC
RewriteSymbolPass
Rollbacker Rematerializer listener with the ability to re-create deleted registers and rollback rematerializations. Starts recording register deletions and rematerializations as soon as it is attached to the rematerializer.
RootDDGNode Subclass of DDGNode representing the root node of the graph. There should only be one such node in a given graph.
RopePiece View into a shared RopeRefCountString slice.
RopePieceBTree B+ tree of RopePiece chunks that stores a rope as ordered byte ranges.
RopePieceBTreeIterator Forward iterator over bytes stored in a RopePieceBTree.
RopeRefCountString Reference-counted character buffer for rope pieces.
RuntimeCheckingPtrGroup A grouping of pointers. A single memcheck is required between two groups.
RuntimeDyld
RuntimeDyldChecker RuntimeDyld invariant checker for verifying that RuntimeDyld has correctly applied relocations.
RuntimeDyldCheckerImpl
RuntimeDyldError Base class for errors originating in RuntimeDyld, e.g. missing relocation support.
RuntimeDyldImpl
RuntimeLibraryAnalysis
RuntimeLibraryInfoWrapper
RuntimePointerChecking Holds information about the memory runtime legality checks to verify that a group of pointers do not overlap.
SCCPInstVisitor
SCCPPass This pass performs function-level constant propagation and merging.
SCCPSolver SCCPSolver - This interface class is a general purpose solver for Sparse Conditional Constant Propagation (SCCP).
SCEV This class represents an analyzed expression in the program. These are opaque objects that the client is not allowed to do much with directly.
SCEVAA Analysis pass providing a never-invalidated alias analysis result.
SCEVAAResult A simple alias analysis implementation that uses ScalarEvolution to answer queries.
SCEVAAWrapperPass Legacy wrapper pass to provide the SCEVAAResult object.
SCEVAddExpr This node represents an addition of some number of SCEVs.
SCEVAddRecExpr This node represents a polynomial recurrence on the trip count of the specified loop. This is the primary focus of the ScalarEvolution framework; all the other SCEV subclasses are mostly just supporting infrastructure to allow SCEVAddRecExpr expressions to be created and analyzed.
SCEVCastExpr This is the base class for unary cast operator classes.
SCEVCommutativeExpr This node is the base class for n'ary commutative operators.
SCEVComparePredicate This class represents an assumption that the expression LHS Pred RHS evaluates to true, and this can be checked at run-time.
SCEVConstant This class represents a constant integer value.
SCEVCouldNotCompute An object of this class is returned by queries that could not be answered. For example, if you ask for the number of iterations of a linked-list traversal loop, you will get one of these. None of the standard SCEV operations are valid on this class, it is just a marker.
SCEVDivision
SCEVDivisionPrinterPass
SCEVExpander This class uses information about analyze scalars to rewrite expressions in canonical form.
SCEVExpanderCleaner Helper to remove instructions inserted during SCEV expansion, unless they are marked as used.
SCEVIntegralCastExpr This is the base class for unary integral cast operator classes.
SCEVLoopAddRecRewriter The SCEVLoopAddRecRewriter takes a scalar evolution expression and applies the Map (Loop -> SCEV) to all AddRecExprs.
SCEVMinMaxExpr This node is the base class min/max selections.
SCEVMulExpr This node represents multiplication of some number of SCEVs.
SCEVNAryExpr This node is a base class providing common functionality for n'ary operators.
SCEVOperand struct for holding enough information to help calculate the cost of the given SCEV when expanded into IR.
SCEVParameterRewriter The SCEVParameterRewriter takes a scalar evolution expression and updates the SCEVUnknown components following the Map (Value -> SCEV).
SCEVPredicate This class represents an assumption made using SCEV expressions which can be checked at run-time.
SCEVPtrToAddrExpr This class represents a cast from a pointer to a pointer-sized integer value, without capturing the provenance of the pointer.
SCEVRewriteVisitor This visitor recursively visits a SCEV expression and re-writes it. The result from each visit is cached, so it will return the same SCEV for the same input.
SCEVSMaxExpr This class represents a signed maximum selection.
SCEVSMinExpr This class represents a signed minimum selection.
SCEVSequentialMinMaxExpr This node is the base class for sequential/in-order min/max selections. Note that their fundamental difference from SCEVMinMaxExpr's is that they are early-returning upon reaching saturation point. I.e. given 0 umin_seq poison, the result will be 0, while the result of 0 umin poison is poison. When returning early, later expressions are not executed, so 0 umin_seq (%x u/ 0) does not result in undefined behavior.
SCEVSequentialUMinExpr This class represents a sequential/in-order unsigned minimum selection.
SCEVSignExtendExpr This class represents a sign extension of a small integer value to a larger integer value.
SCEVTraversal Visit all nodes in the expression tree using worklist traversal.
SCEVTruncateExpr This class represents a truncation of an integer value to a smaller integer value.
SCEVUDivExpr This class represents a binary unsigned division operation.
SCEVUMaxExpr This class represents an unsigned maximum selection.
SCEVUMinExpr This class represents an unsigned minimum selection.
SCEVUnionPredicate This class represents a composition of other SCEV predicates, and is the class that most clients will interact with. This is equivalent to a logical "AND" of all the predicates in the union.
SCEVUnknown This means that we are dealing with an entirely unknown SCEV value, and only represent it as its LLVM Value. This is the "bottom" value for the analysis.
SCEVUseT
SCEVUseVisitor A visitor class for SCEVUse.
SCEVVScale This class represents the value of vscale, as used when defining the length of a scalable vector or returned by the llvm.vscale() intrinsic.
SCEVVisitor This class defines a simple visitor class that may be used for various SCEV analysis purposes.
SCEVWrapPredicate This class represents an assumption made on an AddRec expression. Given an affine AddRec expression {a,+,b}, we assume that it has the nssw or nusw flags (defined below) in the first X iterations of the loop, where X is a SCEV expression returned by getPredicatedBackedgeTakenCount).
SCEVZeroExtendExpr This class represents a zero extension of a small integer value to a larger integer value.
SDDbgInfo Keeps track of dbg_value information through SDISel. We do not build SDNodes for these so as not to perturb the generated code; instead the info is kept off to the side in this structure. Each SDNode may have one or more associated dbg_value entries. This information is kept in DbgValMap. Byval parameters are handled separately because they don't use alloca's, which busts the normal mechanism. There is good reason for handling all parameters separately: they may not have code generated for them, they should always go at the beginning of the function regardless of other code motion, and debug info for them is potentially useful even if the parameter is unused. Right now only byval parameters are handled separately.
SDDbgLabel
SDDbgOperand
SDDbgValue
SDLoc Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation functions. When an SDNode is created from the DAGBuilder, the DebugLoc is extracted from the original Instruction, and IROrder is the ordinal position of the instruction. When an SDNode is created after the DAG is being built, both DebugLoc and the IROrder are propagated from the original SDNode. So SDLoc class provides two constructors besides the default one, one to be used by the DAGBuilder, the other to be used by others.
SDNode Represents one node in the SelectionDAG.
SDNodeDesc
SDNodeFlags These are IR-level optimization flags that may be propagated to SDNodes. TODO: This data structure should be shared by the IR optimizer and the the backend.
SDNodeInfo
SDNodeIterator
SDTypeConstraint
SDUse Represents a use of a SDNode. This class holds an SDValue, which records the SDNode being used and the result number, a pointer to the SDNode using the value, and Next and Prev pointers, which link together all the uses of an SDNode.
SDVTList This represents a list of ValueType's that has been intern'd by a SelectionDAG. Instances of this simple value class are returned by SelectionDAG::getVTList(...).
SDVTListNode
SDValue Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation. Many nodes return multiple values, from loads (which define a token and a return value) to ADDC (which returns a result and a carry value), to calls (which may return an arbitrary number of values).
SDep Scheduling dependency. This represents one direction of an edge in the scheduling DAG.
SEHHandler
SEHUnwindMapEntry Similar to CxxUnwindMapEntry, but supports SEH filters.
SExtInst This class represents a sign extension of integer types.
SHA1 A class that wrap the SHA1 algorithm.
SHA256
SIToFPInst This class represents a cast from signed integer to floating point.
SLPVectorizerPass
SMDiagnostic Instances of this class encapsulate one diagnostic report, allowing printing to a raw_ostream as a caret diagnostic.
SMFixIt Represents a single fixit, a replacement of one range of text with another.
SMLoc Represents a location in source code.
SMRange Represents a range in source code.
SMSchedule This class represents the scheduled code. The main data structure is a map from scheduled cycle to instructions. During scheduling, the data structure explicitly represents all stages/iterations. When the algorithm finshes, the schedule is collapsed into a single stage, which represents instructions from different loop iterations.
SMTExpr Generic base class for SMT exprs
SMTSolver Generic base class for SMT Solvers
SMTSolverStatistics
SMTSort Generic base class for SMT sorts
SPIRVObjectWriter
SROAOptions
SROAPass
SSAUpdater Helper class for SSA formation on a set of values defined in multiple blocks.
SSAUpdaterBulk Helper class for SSA formation on a set of values defined in multiple blocks.
SSAUpdaterImpl
SSAUpdaterTraits
SSAValueNameMap Utility class used to store the names of SSA values after their owning modules have been destroyed.
SSPLayoutAnalysis
SSPLayoutInfo
SUnit Scheduling unit. This is a node in the scheduling DAG.
SUnitIterator
SafeStackPass
SafepointIRVerifierPass Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs.
SameType SFINAE helper that is only defined when both template arguments match.
SampleContextTracker
SampleProfileInference Sample profile inference pass.
SampleProfileLoaderBaseImpl
SampleProfileLoaderPass The sample profiler data loader pass.
SampleProfileMatcher
SampleProfileProbePass
SampleProfileProber Sample profile pseudo prober.
SampleProfileSummaryBuilder
SandboxVectorizerPass
SanitizerBinaryMetadataOptions
SanitizerBinaryMetadataPass The pass should be inserted after optimizations.
SanitizerCoverageOptions
SanitizerCoveragePass This is the ModuleSanitizerCoverage pass used in the new pass manager. The pass instruments functions for coverage, adds initialization calls to the module for trace PC guards and 8bit counters if they are requested, and appends globals to llvm.compiler.used.
SanitizerStatReport
SaturatingInst Represents a saturating add/sub intrinsic.
SaveAndRestore A utility class that uses RAII to save and restore the value of a variable.
ScalableVectorType Class to represent scalable SIMD vectors
ScalarEvolution The main scalar evolution driver. Because client code (intentionally) can't do much with the SCEV objects directly, they must ask this class for services.
ScalarEvolutionAnalysis Analysis pass that exposes the ScalarEvolution for a function.
ScalarEvolutionPrinterPass Printer pass for the ScalarEvolutionAnalysis results.
ScalarEvolutionVerifierPass Verifier pass for the ScalarEvolutionAnalysis results.
ScalarEvolutionWrapperPass
ScalarEvolutionsTest
ScalarizeMaskedMemIntrinPass
ScalarizerPass
ScalarizerPassOptions
ScaledNumber Simple representation of a scaled number.
ScaledNumberBase
ScanInfo ScanInfo holds the information to assist in lowering of Scan reduction. Before lowering, the body of the for loop specifying scan reduction is expected to have the following structure
SchedBoundary Each Scheduling boundary is associated with ready queues. It tracks the current cycle in the direction of movement, and maintains the state of "hazards" and other interlocks at the current cycle.
SchedDFSImpl
SchedDFSResult Compute the values of each DAG node for various metrics during DFS.
SchedRegion A region of an MBB for scheduling.
SchedRemainder Summarize the unscheduled region.
ScheduleDAG
ScheduleDAGInstrs A ScheduleDAG for scheduling lists of MachineInstr.
ScheduleDAGMI ScheduleDAGMI is an implementation of ScheduleDAGInstrs that simply schedules machine instructions according to the given MachineSchedStrategy without much extra book-keeping. This is the common functionality between PreRA and PostRA MachineScheduler.
ScheduleDAGMILive ScheduleDAGMILive is an implementation of ScheduleDAGInstrs that schedules machine instructions while updating LiveIntervals and tracking regpressure.
ScheduleDAGMutation Mutate the DAG as a postpass after normal DAG building.
ScheduleDAGSDNodes RegisterScheduler class - Track the registration of instruction schedulers.
ScheduleDAGTopologicalSort This class can compute a topological ordering for SUnits and provides methods for dynamically updating the ordering as new edges are added.
ScheduleHazardRecognizer HazardRecognizer - This determines whether or not an instruction can be issued this cycle, and whether or not a noop needs to be inserted to handle the hazard.
SchedulingPriorityQueue This interface is used to plug different priorities computation algorithms into the list scheduler. It implements the interface of a standard priority queue, where nodes are inserted in arbitrary order and returned in priority order. The computation of the priority and the representation of the queue are totally up to the implementation to decide.
ScopedFatalErrorHandler Installs and removes a fatal error handler for a scope.
ScopedHashTable Hash table whose mappings are nested in RAII scopes and restored when those scopes end.
ScopedHashTableIterator Iterator over successive shadowed values for a single key.
ScopedHashTableScope RAII scope that shadows an outer ScopedHashTable and pops its bindings on destruction.
ScopedHashTableVal One key/value binding stored in a ScopedHashTable scope.
ScopedNoAliasAA Analysis pass providing a never-invalidated alias analysis result.
ScopedNoAliasAAResult A simple AA result which uses scoped-noalias metadata to answer queries.
ScopedNoAliasAAWrapperPass Legacy wrapper pass to provide the ScopedNoAliasAAResult object.
ScopedPrinter
ScoreboardHazardRecognizer
SectionKind SectionKind - This is a simple POD value that classifies the properties of a section. A section is classified into the deepest possible classification, and then the target maps them onto their sections based on what capabilities they have.
SectionMemoryManager This is a simple memory manager which implements the methods called by the RuntimeDyld class to allocate memory for section-based loading of objects, usually those generated by the MCJIT execution engine.
SectionName
SelectAddr Storage of either a normal Value address, or a select condition together with a pair of addresses for the "true" and "false" variant of a select-dependent address. If the addresses are not present (both null), V is a normal address; otherwise V is a select condition and the pair holds the "true" and "false" addresses.
SelectInst This class represents the LLVM 'select' instruction.
SelectOptimizePass
SelectPatternResult
SelectionDAG This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representation suitable for instruction selection. This DAG is constructed as the first step of instruction selection in order to allow implementation of machine specific optimizations and code simplifications.
SelectionDAGBuilder
SelectionDAGGenTargetInfo Proxy class that targets should inherit from if they wish to use the generated node descriptions.
SelectionDAGISel SelectionDAGISel - This is the common base class used for SelectionDAG-based pattern-matching instruction selectors.
SelectionDAGISelLegacy
SelectionDAGISelPass
SelectionDAGTargetInfo Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process.
SeparateConstOffsetFromGEPPass
SetState Simple state for a set.
SetTheory
SetVector A vector that has set insertion semantics.
ShadowResolver Delegate resolving to a sub-resolver, but shadow some variable names.
ShadowStackGCLoweringPass
ShapeT
ShiftOfShiftedLogic
ShlOperator
ShouldNotRunFunctionPassesAnalysis
ShouldRunExtraPasses A marker analysis to determine if extra passes should be run on demand.
ShouldRunExtraSimpleLoopUnswitch A marker analysis to determine if SimpleLoopUnswitch should run again on a given loop.
ShouldRunExtraVectorPasses A marker analysis to determine if extra passes should be run after loop vectorization.
ShrinkWrapPass
ShuffleBlockStrategy Strategy to randomly select a block and shuffle the operations without affecting data dependency.
ShuffleVectorInst This instruction constructs a fixed permutation of two input vectors.
ShuffleVectorSDNode This SDNode is used to implement the code generator support for the llvm IR shufflevector instruction. It combines elements from two input vectors into a new input vector, with the selection and ordering of elements determined by an array of integers, referred to as the shuffle mask. For input vectors of width N, mask indices of 0..N-1 refer to elements from the LHS input, and indices from N to 2N-1 the RHS. An index of -1 is treated as undef, such that the code generator may put any value in the corresponding element of the result.
SignedDivisionByConstantInfo Magic data for optimising signed division by a constant.
SignpostEmitter Manages the emission of signposts into the recording method supported by the OS.
SignpostEmitterImpl
SimpleAAQueryInfo AAQueryInfo that uses SimpleCaptureAnalysis.
SimpleBitstreamCursor This represents a position within a bitstream. There may be multiple independent cursors reading within one bitstream, each maintaining their own local state.
SimpleCaptureAnalysis Context-free CaptureAnalysis provider, which computes and caches whether an object is captured in the function at all, but does not distinguish whether it was captured before or after the context instruction.
SimpleDDGNode Subclass of DDGNode representing single or multi-instruction nodes.
SimpleLoopSafetyInfo Simple and conservative implementation of LoopSafetyInfo that can give false-positive answers to its queries in order to avoid complicated analysis.
SimpleLoopUnswitchPass This pass transforms loops that contain branches or switches on loop- invariant conditions to have multiple loops. For example, it turns the left into the right code:
SimpleRegistryEntry A simple registry entry which provides only a name, description, and an CtorParamTypes&& variadic parameterized constructor.
SimplifyCFGOptions
SimplifyCFGPass A pass to simplify and canonicalize the CFG of a function.
SimplifyQuery
SimplifyTypeTestsPass
SingleThreadExecutor A non-threaded implementation.
SinkAndHoistLICMFlags Flags controlling how much is checked when sinking or hoisting instructions. The number of memory access in the loop (and whether there are too many) is determined in the constructors when using MemorySSA.
SinkInstructionStrategy Strategy to select a random instruction and add a new sink (user) to it to increate data dependency.
SinkingPass Move instructions into successor blocks when possible.
SizeOffsetAPInt SizeOffsetAPInt - Used by ObjectSizeOffsetVisitor, which works with APInts.
SizeOffsetType SizeOffsetType - A base template class for the object size visitors. Used here as a self-documenting way to handle the values rather than using a std::pair.
SizeOffsetValue
SizeOffsetWeakTrackingVH SizeOffsetValue - Used by ObjectSizeOffsetEvaluator, which works with Values.
SjLjEHPreparePass
SlotIndex SlotIndex - An opaque wrapper around machine indexes.
SlotIndexes SlotIndexes pass.
SlotIndexesAnalysis
SlotIndexesPrinterPass
SlotIndexesWrapperPass
SlotMapping This struct contains the mappings from the slot numbers to unnamed metadata nodes, global values and types. It also contains the mapping for the named types. It can be used to save the parsing state of an LLVM IR module so that the textual references to the values in the module can be parsed outside of the module's source.
SlotTracker
SmallBitVector Variable-sized bit array optimized for small bit counts.
SmallDenseMap
SmallDenseSet Implements a dense probed hash-table based set with some number of buckets stored inline.
SmallMapVector A MapVector that performs no allocations if smaller than a certain size.
SmallPriorityWorklist A version of PriorityWorklist that selects small size optimized data structures for the vector and map.
SmallPtrSet SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements. This internally rounds up SmallSize to the next power of two if it is not already a power of two. See the comments above SmallPtrSetImplBase for details of the algorithm.
SmallPtrSetImpl A templated base class for SmallPtrSet which provides the typesafe interface that is common across all small sizes.
SmallPtrSetImplBase SmallPtrSetImplBase - This is the common code shared among all the SmallPtrSet<>'s, which is almost everything. SmallPtrSet has two modes, one for small and one for large sets.
SmallPtrSetIterator SmallPtrSetIterator - This implements a const_iterator for SmallPtrSet.
SmallPtrSetIteratorImpl SmallPtrSetIteratorImpl - This is the common base class shared between all instances of SmallPtrSetIterator.
SmallSet SmallSet - This maintains a set of unique values, optimizing for the case when the set is small (less than N). In this case, the set can be maintained with no mallocs. If the set gets large, we expand to using an std::set to maintain reasonable lookup times.
SmallSetIterator SmallSetIterator - This class implements a const_iterator for SmallSet by delegating to the underlying SmallVector or Set iterators.
SmallSetVector A SetVector that performs no allocations if smaller than a certain size.
SmallString SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better as a string (e.g. operator+ etc).
SmallVector Forward declaration of SmallVector so that calculateSmallVectorDefaultInlinedElements can reference sizeof(SmallVector<T, 0>).
SmallVectorAlignmentAndSize Figure out the offset of the first element.
SmallVectorBase This is all the stuff common to all SmallVectors.
SmallVectorImpl This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.
SmallVectorMemoryBuffer SmallVector-backed MemoryBuffer instance.
SmallVectorStorage Storage for the SmallVector elements. This is specialized for the N=0 case to avoid allocating unnecessary storage.
SmallVectorTemplateBase SmallVectorTemplateBase<TriviallyCopyable = false> - This is where we put method implementations that are designed to work with non-trivial T's.
SmallVectorTemplateCommon This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD. The extra dummy template argument is used by ArrayRef to avoid unnecessarily requiring T to be complete.
SortedVectorMap A map implementation backed by a sorted SmallVector. Key-value pairs are stored in contiguous memory ordered by KeyCompare.
SourceMgr This owns the files read by a parser, handles include stacks, and handles diagnostic wrangling.
SparseBitVector Sparse bit vector that stores only elements containing set bits.
SparseBitVectorElement Fixed-size block of bits stored as a contiguous array of BitWords.
SparseMultiSet Fast multiset implementation for objects that can be identified by small unsigned keys.
SparseSet SparseSet - Fast set implementation for objects that can be identified by small unsigned keys.
SparseSetValFunctor SparseSetValFunctor - Helper class for getting a value's index.
SparseSetValTraits SparseSetValTraits - Objects in a SparseSet are identified by keys that can be uniquely converted to a small integer less than the set's universe. This class allows the set to hold values that differ from the set's key type as long as an index can still be derived from the value. SparseSet never directly compares ValueT, only their indices, so it can map keys to arbitrary values. SparseSetValTraits computes the index from the value object. To compute the index from a key, SparseSet uses a separate KeyFunctorT template argument.
SparseSolver SparseSolver - This class is a general purpose solver for Sparse Conditional Propagation with a programmable lattice function.
Spec
SpecSig
SpecialCaseList This is a utility class used to parse user-provided text files with "special case lists" for code sanitizers.
SpecificBumpPtrAllocator A BumpPtrAllocator that allows only elements of a specific type to be allocated.
SpeculativeExecutionPass
Spelling
SpillPlacement
SpillPlacementAnalysis
SpillPlacementWrapperLegacy
Spiller Spiller interface.
SplittingIterator A forward iterator over partitions of string over a separator.
SrcOp
SrcValueSDNode An SDNode that holds an arbitrary LLVM IR Value. This is used when the SelectionDAG needs to make a simple reference to something in the LLVM IR representation.
StableFunction A stable function is a function with a stable hash while tracking the locations of ignored operands and their hashes.
StableFunctionMap
StableFunctionMapRecord The structure of the serialized stable function map is as follows: - Number of unique function/module names - Total size of unique function/module names for opt-in skipping - Unique function/module names - Padding to align to 4 bytes - Number of StableFunctionEntries - Hashes of each StableFunctionEntry - Fixed-size fields for each StableFunctionEntry (the order is consistent with the hashes above): - FunctionNameId - ModuleNameId - InstCount - Relative offset to the beginning of IndexOperandHashes for this entry - Total size of variable-sized IndexOperandHashes for lazy-loading support - Variable-sized IndexOperandHashes for each StableFunctionEntry: - Number of IndexOperandHashes - Contents of each IndexOperandHashes - InstIndex - OpndIndex - OpndHash
StackColoringPass
StackFrameLayoutAnalysisPass
StackLifetime Compute live ranges of allocas. Live ranges are represented as sets of "interesting" instructions, which are defined as instructions that may start or end an alloca's lifetime. These are: * lifetime.start and lifetime.end intrinsics * first instruction of any basic block Interesting instructions are numbered in the depth-first walk of the CFG, and in the program order inside each basic block.
StackLifetimePrinterPass Printer pass for testing.
StackMapOpers MI-level stackmap operands.
StackMapParser A parser for the latest stackmap format. At the moment, latest=V3.
StackMaps
StackOffset StackOffset holds a fixed and a scalable offset in bytes.
StackProtector
StackProtectorDescriptor Encapsulates all of the information needed to generate a stack protector check, and signals to isel when initialized that one needs to be generated.
StackProtectorPass
StackSafetyAnalysis StackSafetyInfo wrapper for the new pass manager.
StackSafetyGlobalAnalysis This pass performs the global (interprocedural) stack safety analysis (new pass manager).
StackSafetyGlobalInfo
StackSafetyGlobalInfoWrapperPass This pass performs the global (interprocedural) stack safety analysis (legacy pass manager).
StackSafetyGlobalPrinterPass Printer pass for the StackSafetyGlobalAnalysis results.
StackSafetyInfo Interface to access stack safety analysis results for single function.
StackSafetyInfoWrapperPass StackSafetyInfo wrapper for the legacy pass manager
StackSafetyPrinterPass Printer pass for the StackSafetyAnalysis results.
StackSlotColoringPass
StandardInstrumentations This class provides an interface to register all the standard pass instrumentations and manages their state (if any).
StateWrapper Helper to tie a abstract state implementation to an abstract attribute.
StatepointDirectives Call sites that get wrapped by a gc.statepoint (currently only in RewriteStatepointsForGC and potentially in other passes in the future) can have attributes that describe properties of gc.statepoint call they will be eventually be wrapped in. This struct is used represent such directives.
StatepointOpers MI-level Statepoint operands
StaticDataAnnoatorPass
StaticDataProfileInfo A class that holds the constants that represent static data and their profile information and provides methods to operate on them.
StaticDataProfileInfoAnalysis
StaticDataProfileInfoWrapperPass This wraps the StaticDataProfileInfo object as an immutable pass, for a backend pass to operate on.
StaticDataSplitterPass
StdThreadPool A ThreadPool implementation using std::threads.
StoreInst An instruction for storing to memory.
StoreSDNode This class is used to represent ISD::STORE nodes.
StrOffsetsContributionDescriptor Represents base address of the CU. Represents a unit's contribution to the string offsets table.
StraightLineStrengthReducePass
StreamedHTTPResponseHandler A handler which streams the returned data to a CachedFileStream. The cache file is only created if a 200 OK status is observed.
StreamingHTTPResponse Wraps the content provider with HTTP Status code and headers.
StringError This class wraps a string in an Error.
StringInit "foo" - Represent an initialization by a string value.
StringLiteral A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs with the length computed at compile time. In order to avoid the invocation of a global constructor, StringLiteral should only be used in a constexpr context, as such:
StringMap StringMap - This is an unconventional map that is specialized for handling keys that are "strings", which are basically ranges of bytes. This does some funky memory allocation and hashing things to make it extremely efficient, storing the string data after the value in the map.
StringMapEntry StringMapEntry - This is used to represent one value that is inserted into a StringMap. It contains the Value itself and the key: the string length and data.
StringMapEntryBase StringMapEntryBase - Shared base class of StringMapEntry instances.
StringMapEntryStorage StringMapEntryStorage - Holds the value in a StringMapEntry.
StringMapImpl StringMapImpl - This is the base class of StringMap that is shared among all of its instantiations.
StringMapIterBase Forward iterator over StringMap entries.
StringMapKeyIterator Adapter that yields StringRef keys from a StringMap iterator.
StringMatcher Given a list of strings and code to execute when they match, output a simple switch tree to classify the input string.
StringRecTy 'string' - Represent an string value
StringRef Represent a constant reference to a string, i.e. a character array and a length, which need not be null terminated.
StringSaver Saves strings in the provided stable storage and returns a StringRef with a stable character pointer.
StringSet StringSet - A wrapper for StringMap that provides set-like functionality.
StringSwitch A switch()-like statement whose cases are string literals.
StringTable A table of densely packed, null-terminated strings indexed by offset.
StringTableBuilder Utility for building string tables with deduplicated suffixes.
StringToOffsetTable StringToOffsetTable - This class uniques a bunch of nul-terminated strings and keeps track of their offset in a massive contiguous string allocation. It can then output this string blob and use indexes into the string to reference each piece.
StripConvergenceIntrinsicsPass
StripDeadCGProfilePass
StripDeadDebugInfoPass
StripDeadPrototypesPass Pass to remove unused function declarations.
StripDebugDeclarePass
StripDebugMachineModulePass
StripGCRelocates
StripNonDebugSymbolsPass
StripNonLineTableDebugInfoPass
StripSymbolsPass
StrongType Helper for making strong types.
StructLayout Used to lazily calculate structure layout information for a target machine, based on the DataLayout structure.
StructType Class to represent struct types. There are two different kinds of struct types: Literal structs and Identified structs.
StructuralHashPrinterPass Printer pass for StructuralHashes
StructuredAllocaInst
StructuredGEPInst
StructurizeCFGPass
SubOperator
SubsectionAndTagToTagName
SubsumingPositionIterator A visitor class for IR positions.
SubtargetFeatureKV Used to provide key value pairs for feature and CPU bit flags.
SubtargetFeatureKVStorage
SubtargetFeatures Manages the enabling and disabling of subtarget specific features.
SubtargetSubTypeAliasKV Maps a CPU alias name to the index of the processor it resolves to.
SubtargetSubTypeKV Used to provide key value pairs for feature and CPU bit flags.
SubtargetSubTypeKVStorage
SuffixTree
SuffixTreeInternalNode
SuffixTreeLeafNode
SuffixTreeNode A node in a suffix tree which represents a substring or suffix.
SuperRegClassIterator
SuspendCrossingInfo
SwiftErrorValueTracking
SwingSchedulerDAG This class builds the dependence graph for the instructions in a loop, and attempts to schedule the instructions using the SMS algorithm.
SwingSchedulerDDG This class provides APIs to retrieve edges from/to an SUnit node, with a particular focus on loop-carried dependencies. Since SUnit is not designed to represent such edges, handling them directly using its APIs has required non-trivial logic in the past. This class serves as a wrapper around SUnit, offering a simpler interface for managing these dependencies.
SwingSchedulerDDGEdge Represents a dependence between two instruction.
SwitchInst Multiway switch
SwitchInstProfUpdateWrapper A wrapper class to simplify modification of SwitchInst cases along with their prof branch_weights metadata.
SymbolInfoTy
SymbolRemappingParseError
SymbolRemappingReader Reader for symbol remapping files.
SymbolTableList List that automatically updates parent links and symbol tables.
SymbolTableListParentType Template metafunction to get the parent type for a symbol table list.
SymbolTableListTraits
SymbolsMapKey
SyntheticCountsUtils Class with methods to propagate synthetic entry counts.
TBAAVerifier Verify that the TBAA Metadatas are valid.
TGTimer
TableGenOutputFiles
TagNameItem
TailCallElimPass
TailDuplicatePass
TailDuplicatePassBase
TailDuplicator Utility class to perform tail duplication.
TailFoldingInfo
TarWriter
Target Target - Wrapper for Target specific information.
TargetExtType Class to represent target extensions types, which are generally unintrospectable from target-independent optimizations.
TargetFolder TargetFolder - Create constants with target dependent folding.
TargetFrameLowering Information about stack frame layout on the target. It holds the direction of stack growth, the known stack alignment on entry to each function, and the offset to the locals area.
TargetIRAnalysis Analysis pass providing the TargetTransformInfo.
TargetIndexSDNode Completely target-dependent object reference.
TargetInstrInfo TargetInstrInfo - Interface to description of machine instruction set
TargetLibraryAnalysis Analysis pass providing the TargetLibraryInfo.
TargetLibraryInfo Provides information about what library functions are available for the current target.
TargetLibraryInfoImpl Implementation of the target library information.
TargetLibraryInfoWrapperPass
TargetLowering This class defines information used to lower LLVM code to legal SelectionDAG operators that the target instruction selector can accept natively.
TargetLoweringBase This base class for TargetLowering contains the SelectionDAG-independent parts that can be used from the rest of CodeGen.
TargetLoweringObjectFile
TargetLoweringObjectFileCOFF
TargetLoweringObjectFileELF
TargetLoweringObjectFileGOFF
TargetLoweringObjectFileMachO
TargetLoweringObjectFileWasm
TargetLoweringObjectFileXCOFF
TargetMachine Primary interface to the complete machine description for the target machine. All target-specific information should be accessible through this interface.
TargetOptions
TargetPassConfig Target-Independent Code Generator Pass Configuration Options.
TargetRegionEntryInfo Data structure to contain the information needed to uniquely identify a target entry.
TargetRegisterInfo TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDesc objects that represent all of the machine registers that the target has. As such, we simply have to track a pointer to this array so that we can turn register number into a register descriptor.
TargetRegisterInfoDesc Extra information, not in MCRegisterDesc, about registers. These are used by codegen, not by MC.
TargetRegistry TargetRegistry - Generic interface to target specific features.
TargetSchedModel Provide an instruction scheduling machine model to CodeGen passes.
TargetSubtargetInfo TargetSubtargetInfo - Generic base class for all target subtargets. All Target-specific options that control code generation and printing should be exposed through a TargetSubtargetInfo-derived class.
TargetTransformInfo This pass provides access to the codegen interfaces that are needed for IR-level transformations.
TargetTransformInfoImplBase Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.
TargetTransformInfoImplCRTPBase CRTP base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.
TargetTransformInfoWrapperPass Wrapper pass for TargetTransformInfo.
TempMDNodeDeleter
TemporalProfTraceTy An ordered list of functions identified by their NameRef found in INSTR_PROF_DATA
TensorSpec
TernOpInit !op (X, Y, Z) - Combine two inits.
TextChangeReporter
TextCodeGenDataReader This format is a simple text format that's suitable for test data. The header is a custom format starting with : per line to indicate which codegen data is recorded. # is used to indicate a comment. The subsequent data is a YAML format per each codegen data in order. Currently, it only has a function outlined hash tree.
TextEncodingConverter Utility class to convert between different character encodings.
TextInstrProfReader Reader for the simple text based instrprof format.
ThinLTOBitcodeWriterPass
ThinLTOCodeGenerator This class define an interface similar to the LTOCodeGenerator, but adapted for ThinLTO processing. The ThinLTOCodeGenerator is not intended to be reuse for multiple compilation: the model is that the client adds modules to the generator and ask to perform the ThinLTO optimizations / codegen, and finally destroys the codegenerator.
ThreadPoolInterface This defines the abstract base interface for a ThreadPool allowing asynchronous parallel execution on a defined number of threads.
ThreadPoolStrategy This tells how a thread pool will be used
ThreadPoolTaskGroup A group of tasks to be run on a thread pool. Thread pool tasks in different groups can run on the same threadpool but can be waited for separately. It is even possible for tasks of one group to submit and wait for tasks of another group, as long as this does not form a loop.
ThreadSafeAllocator Thread-safe allocator adaptor. Uses a spin lock on the assumption that contention here is extremely rare.
ThreadSafeRefCountedBase A thread-safe version of RefCountedBase.
ThreadSafeTrieRawHashMap Lock-free thread-safe hash-mapped trie.
ThreadSafeTrieRawHashMapBase Base class for a lock-free thread-safe hash-mapped trie.
ThreadSanitizerPass A function pass for tsan instrumentation.
ThunkInserter This class assists in inserting MI thunk functions into the module and rewriting the existing machine functions to call these thunks.
ThunkInserterPass Basic implementation of MachineFunctionPass wrapping one or more ThunkInserters passed as type parameters.
TileInfo A helper struct to create IR loop nests for tiling in IR of the following form: for ColumnLoop.Index = 0..NumColumns for RowLoop.Index = 0..NumRows for KLoop.Index = 0..NumInner
TimePassesHandler This class implements -time-passes functionality for new pass manager. It provides the pass-instrumentation callbacks that measure the pass execution time. They collect timing info into individual timers as passes are being run.
TimeProfilingPassesHandler This class implements --time-trace functionality for new pass manager. It provides the pass-instrumentation callbacks that measure the pass execution time. They collect time tracing info by TimeProfiler.
TimeRecord
TimeRegion The TimeRegion class is used as a helper class to call the startTimer() and stopTimer() methods of the Timer class. When the object is constructed, it starts the timer specified as its argument. When it is destroyed, it stops the relevant timer. This makes it easy to time a region of code.
TimeTraceMetadata
TimeTraceProfiler
TimeTraceProfilerEntry
TimeTraceScope The TimeTraceScope is a helper class to call the begin and end functions of the time trace profiler. When the object is constructed, it begins the section; and when it is destroyed, it stops it. If the time profiler is not initialized, the overhead is a single branch.
Timer This class is used to track the amount of time spent between invocations of its startTimer()/stopTimer() methods. Given appropriate OS support it can also keep track of the RSS of the program at various points. By default, the Timer will print the amount of time it has captured to standard error when the last timer is destroyed, otherwise it is printed when its TimerGroup is destroyed. Timers do not print their information if they are never started.
TimerGlobals
TimerGroup The TimerGroup class is used to group together related timers into a single report that is printed when the TimerGroup is destroyed. It is illegal to destroy a TimerGroup object before all of the Timers in it are gone. A TimerGroup can be specified for a newly created timer in its constructor.
TinyPtrVector TinyPtrVector - This class is specialized for cases where there are normally 0 or 1 element in a vector, but is general enough to go beyond that when required.
ToolContext
ToolOutputFile This class contains a raw_fd_ostream and adds a few extra features commonly needed for compiler-like tool output files: - The file is automatically deleted if the process is killed. - The file is automatically deleted when the ToolOutputFile object is destroyed unless the client calls keep().
Trace
TrackUnresolvedResolver (Optionally) delegate resolving to a sub-resolver, and keep track whether there were unresolved references.
TrackingMDRef Tracking metadata reference.
TrackingStatistic Atomic counter used when statistics collection is enabled.
TrackingVH Value handle that tracks a Value across RAUW.
TrailingObjects See the file comment for details on the usage of the TrailingObjects type.
TrieHashIndexGenerator The utility class that helps computing the index of the object inside trie from its hash. The generator can be configured with the number of bits used for each level of trie structure with NumRootsBits and NumSubtrieBits. For example, try computing indexes for a 16-bit hash 0x1234 with 8-bit root and 4-bit sub-trie:
TrieRawHashMapTestHelper Helper used by unit tests to inspect ThreadSafeTrieRawHashMapBase internals.
TriggerCrashFunctionPass
TriggerCrashModulePass
Triple Triple - Helper class for working with autoconf configuration names. For historical reasons, we also call these 'triples' (they used to contain exactly three fields).
TruncInst This class represents a truncation of integer types.
TruncatedBLAKE3 Like BLAKE3 but using a class-level template parameter for specifying the hash size of the final() and result() functions.
Twine Twine - A lightweight data structure for efficiently representing the concatenation of temporary values as strings.
TwoAddressInstructionPass
Type The instances of the Type class are immutable: once they are created, they are never changed. Also note that only one instance of a particular type is ever created. Thus seeing if two types are equal is a matter of doing a trivial pointer comparison. To enforce that no two equal instances are created, Type instances can only be created via static factory methods in class Type and in derived classes. Once allocated, Types are never free'd.
TypeBasedAA Analysis pass providing a never-invalidated alias analysis result.
TypeBasedAAResult A simple AA result that uses TBAA metadata to answer queries.
TypeBasedAAWrapperPass Legacy wrapper pass to provide the TypeBasedAAResult object.
TypeConversionCostTblEntryT Type Conversion Cost Table
TypeFinder TypeFinder - Walk over a module, identifying all of the types that are used by the module.
TypeIdOffsetVtableInfo The following data structures summarize type metadata information. For type metadata overview see https://llvm.org/docs/TypeMetadata.html. Each type metadata includes both the type identifier and the offset of the address point of the type (the address held by objects of that type which may not be the beginning of the virtual table). Vtable definitions are decorated with type metadata for the types they are compatible with.
TypeIdSummary
TypePromotionPass
TypeSanitizerPass
TypeSize
TypeSwitch This class implements a switch-like dispatch statement for a value of 'T' using dyn_cast functionality. Each Case<T> takes a callable to be invoked if the root value isa<T>, the callable is invoked with the result of dyn_cast<T>() as a parameter.
TypeTestResolution
TypeUnitMetaInfo
TypedInit This is the common superclass of types that have a specific, explicit type, stored in ValueTy.
TypedMDOperandIterator Typed iterator through MDNode operands.
TypedPointerType A few GPU targets, such as DXIL and SPIR-V, have typed pointers. This pointer type abstraction is used for tracking the types of these pointers. It is not legal to use this type, or derived types containing this type, in LLVM IR.
TypedTrackingMDRef Typed tracking ref.
TypesAreDistinct Determine if all types in Ts are distinct.
UIToFPInst This class represents a cast unsigned integer to floating point.
Uint24 An auxiliary type to facilitate extraction of 3-byte entities.
UnOpInit !op (X) - Transform an init.
UnaryInstruction
UnaryOperator
UncondBrInst Unconditional Branch instruction.
UndefValue 'undef' values are things that do not have specified contents. These are used for a variety of purposes, including global variable initializers and operands to instructions. 'undef' values can occur with any first-class type.
UnderlyingObject
UniformityInfoAnalysis Analysis pass which computes UniformityInfo.
UniformityInfoPrinterPass Printer pass for the UniformityInfo.
UniformityInfoWrapperPass Legacy analysis pass which computes a CycleInfo.
UnifyLoopExitsPass
UniqueBBID
UniqueMachineInstr A class that wraps MachineInstrs and derives from FoldingSetNode in order to be uniqued in a CSEMap. The tradeoff here is extra memory allocations for UniqueMachineInstr vs making MachineInstr bigger.
UniquePtrCast This cast trait provides std::unique_ptr casting. It has the semantics of moving the contents of the input unique_ptr into the output unique_ptr during the cast. It's also a good example of how to implement a move-only cast.
UniqueStringSaver Saves strings in the provided stable storage and returns a StringRef with a stable character pointer. Saving the same string yields the same StringRef.
UniqueTag It's very easy to introduce bugs by passing the wrong string pool. By using strong types the interface enforces that the right kind of pool is used.
UniqueVector UniqueVector - This class produces a sequential ID number (base 1) for each unique entry that is added. T is the type of entries in the vector. This class should have an implementation of operator== and of operator<. Entries can be fetched using operator[]with the entry ID.
UnitIndexEntry
UnpackMachineBundlesPass
UnreachableBlockElimPass
UnreachableInst This function has undefined behavior. In particular, the presence of this instruction indicates some higher level knowledge that the end of the block cannot be reached.
UnreachableMachineBlockElimPass
UnrollCostEstimator Produce an estimate of the unrolled cost of the specified loop.
UnrollLoopOptions
UnrollPragmaInfo
UnrolledInstAnalyzer
UnsetInit '?' - Represents an uninitialized value.
UnsignedDivisionByConstantInfo Magic data for optimising unsigned division by a constant.
UpwardDefsElem
Use A Use represents the edge between a Value definition and its users.
UseCaptureInfo Capture information for a specific Use.
UseListOrder Structure to hold a use-list order.
User
VAArgInst This class represents the va_arg llvm instruction, which returns an argument of the specified type given a va_list and increments that list
VACopyInst This represents the llvm.va_copy intrinsic.
VAEndInst This represents the llvm.va_end intrinsic.
VAStartInst This represents the llvm.va_start intrinsic.
VFDatabase The Vector Function Database.
VFInfo Holds the VFShape for a specific scalar to vector function mapping.
VFParameter Encapsulates information needed to describe a parameter.
VFShape Contains the information about the kind of vectorization available.
VLIWMachineScheduler Extend the standard ScheduleDAGMILive to provide more context and override the top-level schedule() driver.
VLIWPacketizerList
VLIWResourceModel
VNInfo VNInfo - Value Number Information. This class holds information about a machine level values, including definition and use points.
VPBaseLoadStoreSDNode This base class is used to represent VP_LOAD, VP_STORE, EXPERIMENTAL_VP_STRIDED_LOAD and EXPERIMENTAL_VP_STRIDED_STORE nodes
VPGatherSDNode This class is used to represent an VP_GATHER node
VPGatherScatterSDNode This is a base class used to represent VP_GATHER and VP_SCATTER nodes
VPIntrinsic This is the common base class for vector predication intrinsics.
VPLoadFFSDNode
VPLoadSDNode This class is used to represent a VP_LOAD node
VPReductionIntrinsic This represents vector predication reduction intrinsics.
VPSCEVExpander
VPScatterSDNode This class is used to represent an VP_SCATTER node
VPStoreSDNode This class is used to represent a VP_STORE node
VPStridedLoadSDNode This class is used to represent an EXPERIMENTAL_VP_STRIDED_LOAD node.
VPStridedStoreSDNode This class is used to represent an EXPERIMENTAL_VP_STRIDED_STORE node.
VReg2SUnit An individual mapping from virtual register number to SUnit.
VReg2SUnitOperIdx Mapping from virtual register to SUnit including an operand index.
VRegInfo
VRegMaskOrUnit
VTByHwModePair
VTSDNode This class is used to represent EVT's, which are used to parameterize some operations.
VTableSlotSummary
ValID ValID - Represents a reference of a definition of some sort with no type. There are several cases where we have to parse the value but where the type can depend on later context. This may either be a numeric reference or a symbolic (%var) reference. This is just a discriminated union.
Value LLVM Value Representation
ValueAndVReg Simple struct used to hold a constant integer value and a virtual register.
ValueAsMetadata Value wrapper in the Metadata hierarchy.
ValueDeleter
ValueFromPointerCast This cast trait provides casting for the specific case of casting to a value-typed object from a pointer-typed object. Note that To must be nullable/constructible from a pointer to From to use this cast.
ValueHandleBase Befriended by DenseMapBase so it can use bucket-relocation erase callbacks. ValueHandleBase is the only caller that caches pointers into bucket arrays.
ValueInfo Struct that holds a reference to a particular GUID in a global value summary.
ValueIsPresent ValueIsPresent provides a way to check if a value is, well, present. For pointers, this is the equivalent of checking against nullptr, for Optionals this is the equivalent of checking hasValue(). It also provides a method for unwrapping a value (think calling .value() on an optional).
ValueIterator
ValueLatticeElement This class represents lattice values for constants.
ValueMap See the file comment.
ValueMapCallbackVH
ValueMapConfig This class defines the default behavior for configurable aspects of ValueMap<>. User Configs should inherit from this class to be as compatible as possible with future versions of ValueMap.
ValueMapIteratorImpl
ValueMapTypeRemapper This is a class that can be implemented by clients to remap types when cloning constants and instructions.
ValueMapper Context for (re-)mapping values (and metadata).
ValueMaterializer This is a class that can be implemented by clients to materialize Values on demand.
ValueSimplifyStateType
ValueSymbolTable This class provides a symbol table of name/value pairs. It is essentially a std::map<std::string,Value*> but has a controlled interface provided by LLVM as well as ensuring uniqueness of names.
VarBitInit Opcode{0} - Represent access to one bit of a variable or field.
VarDefInit classname<targs...> - Represent an uninstantiated anonymous class instantiation.
VarInit 'Opcode' - Represent a reference to an entire variable object.
VarLocInfo Variable location definition used by FunctionVarLocs.
VarStreamArray
VarStreamArrayExtractor VarStreamArrayExtractor is intended to be specialized to provide customized extraction logic. On input it receives a BinaryStreamRef pointing to the beginning of the next record, but where the length of the record is not yet known. Upon completion, it should return an appropriate Error instance if a record could not be extracted, or if one could be extracted it should return success and set Len to the number of bytes this record occupied in the underlying stream, and it should fill out the fields of the value type Item appropriately to represent the current record.
VarStreamArrayIterator VarStreamArray represents an array of variable length records backed by a stream. This could be a contiguous sequence of bytes in memory, it could be a file on disk, or it could be a PDB stream where bytes are stored as discontiguous blocks in a file. Usually it is desirable to treat arrays as contiguous blocks of memory, but doing so with large PDB files, for example, could mean allocating huge amounts of memory just to allow re-ordering of stream data to be contiguous before iterating over it. By abstracting this out, we need not duplicate this memory, and we can iterate over arrays in arbitrarily formatted streams. Elements are parsed lazily on iteration, so there is no upfront cost associated with building or copying a VarStreamArray, no matter how large it may be.
VariadicOperandTraits VariadicOperandTraits - determine the allocation regime of the Use array when it is a prefix to the User object, and the number of Use objects is only known at allocation time.
VecDesc Provides info so a possible vectorization of a function can be computed. Function 'VectorFnName' is equivalent to 'ScalarFnName' vectorized by a factor 'VectorizationFactor'. The VABIPrefix string holds information about isa, mask, vlen, and vparams so a scalar-to-vector mapping of the form: ZGV<isa><mask><vlen><vparams><scalarname>(<vectorname>) can be constructed where:
VectorCombinePass Optimize scalar/vector interactions in IR using target cost models.
VectorType Base class of all SIMD vector types
VectorizerParams Collection of parameters shared beetween the Loop Vectorizer and the Loop Access Analysis.
VerifierAnalysis Check a module for errors, and report separate error states for IR and debug info errors.
VerifierPass Create a verifier pass.
VerifierSupport
VerifyInstrumentation
VersionTuple Represents a version number in the form major[.minor[.subminor[.build]]].
Versioned
VersionedClause
VirtFuncOffset The ValueInfo and offset for a function within a vtable definition initializer array.
VirtReg2IndexFunctor
VirtRegAuxInfo Calculate auxiliary information for a virtual register such as its spill weight and allocation hint.
VirtRegInfo VirtRegInfo - Information about a virtual register used by a set of operands.
VirtRegMap
VirtRegMapAnalysis
VirtRegMapPrinterPass
VirtRegMapWrapperLegacy
VirtRegOrUnit Wrapper class representing a virtual register or register unit.
VirtRegRewriterPass
WarnMissedTransformationsPass
WasmEHPreparePass
WeakTrackingVH Value handle that is nullable, but tries to track the Value.
WeakVH A nullable Value handle that is nullable.
WholeProgramDevirtPass
WholeProgramDevirtResolution
WideIVInfo Collect information about induction variables that are used by sign/zero extend operations. This information is recorded by CollectExtend and provides the input to WidenIV.
WinCOFFObjectWriter
WinCOFFWriter
WinEHFuncInfo
WinEHHandlerType
WinEHPreparePass
WinEHTryBlockMapEntry
WindowScheduler The main class in the implementation of the target independent window scheduler.
WindowsResourceProcessor
WithCache
WithColor An RAII object that temporarily switches an output stream to a specific color.
WithOverflowInst Represents an op.with.overflow intrinsic.
WritableBinaryStream A BinaryStream which can be read from as well as written to. Note that writing to a BinaryStream always necessitates copying from the input buffer to the stream's backing store. Streams are assumed to be buffered so that to be portable it is necessary to call commit() on the stream when all data has been written.
WritableBinaryStreamRef
WritableMemoryBuffer MemoryBuffer with copy-on-write access to a writable backing store.
WriteThroughMemoryBuffer MemoryBuffer that maps a file writable and can commit changes back.
XCOFFObjectWriter
XCOFFSymbolInfoTy
XRayInstrumentationPass
XXH128_hash_t The return value from 128-bit hashes.
ZExtInst This class represents zero extension of integer types.
add_const_past_pointer If T is a pointer to X, return a pointer to const X. If it is not, return const T.
add_lvalue_reference_if_not_pointer If T is a pointer, just return it. If it is not, return T&.
bf_iterator Generic breadth-first search iterator over a graph.
bf_iterator_storage Storage for the visited-node set used by breadth-first iterators.
buffer_ostream
buffer_unique_ostream
cast_convert_val Performs the actual cast after simplifying non-simple source values.
cast_retty Computes the return type of cast/dyn_cast for To and From.
cast_retty_impl Implementation detail that computes the return type of cast for To/From.
cast_retty_wrap Selects cast return type after optionally simplifying From.
circular_raw_ostream circular_raw_ostream - A raw_ostream which can save its data to a circular buffer, or can pass it through directly to an underlying stream if specified with a buffer of zero.
concat_iterator Iterator wrapper that concatenates sequences together.
const_pointer_or_const_ref Choose const pointer or const reference based on whether T is a pointer. Choose const pointer or const reference based on whether T is a pointer.
const_set_bits_iterator_impl ForwardIterator for the bits that are set. Iterators get invalidated when resize / reserve is called.
def_chain_iterator Walks the defining accesses of MemoryDefs. Stops after we hit something that has no defining use (e.g. a MemoryPhi or liveOnEntry). Note that, when comparing against a null def_chain_iterator, this will compare equal only after walking said Phi/liveOnEntry.
deref Binary functor that adapts to any other binary functor after dereferencing operands.
df_ext_iterator Depth-first iterator that stores its visited set externally.
df_iterator Generic depth-first search iterator over a graph.
df_iterator_default_set
df_iterator_storage Storage for the visited-node set used by depth-first iterators.
early_inc_iterator_impl A pseudo-iterator adaptor that is designed to implement "early increment" style loops.
enum_iteration_traits Traits marking whether EnumT is safe to iterate with enum_seq helpers.
fallible_iterator A wrapper class for fallible iterators.
file_magic file_magic - An "enum class" enumeration of file types based on magic (the first N bytes of the file).
filter_iterator_base An iterator adaptor that filters the elements of given inner iterators.
filter_iterator_impl Specialization of filter_iterator_base for forward iteration only.
fltSemantics Describes the parameters of a floating-point format used by APFloat.
force_iteration_on_noniterable_enum_t Tag type that opts into iterating enums without enum_iteration_traits.
format_object
format_provider Trait that formats values of type T for formatv.
formatted_raw_ostream formatted_raw_ostream - A raw_ostream that wraps another one and keeps track of line and column position, allowing padding out to specific column boundaries and querying the number of lines written to the stream. This assumes that the contents of the stream is valid UTF-8 encoded text. This doesn't attempt to handle everything Unicode can do (combining characters, right-to-left markers, etc), but should cover the cases likely to appear in source code or diagnostic messages.
formatv_object
formatv_object_base Base class for formatv objects used by Twine.
from_range_t Tag type indicating that a constructor should initialize from a range.
function_ref An efficient, type-erasing, non-owning reference to a callable. This is intended for use as the type of a function parameter that is not used after the function in question returns.
function_traits This class provides various trait information about a callable object. * To access the number of arguments: Traits::num_args * To access the type of an argument: Traits::arg_t<Index> * To access the type of the result: Traits::result_t
generic_gep_type_iterator
hash_code An opaque object representing a hash code.
identity Function object that returns its argument unchanged.
idf_ext_iterator Inverse depth-first iterator that stores its visited set externally.
idf_iterator Depth-first iterator over the inverse of graph T.
ilist_alloc_traits Use delete by default for iplist and ilist.
ilist_base Implementations of list algorithms using ilist_node_base.
ilist_callback_traits Callbacks do nothing by default in iplist and ilist.
ilist_iterator Iterator for intrusive lists based on ilist_node.
ilist_iterator_bits Option to add extra bits to the ilist_iterator.
ilist_iterator_w_bits Iterator for intrusive lists based on ilist_node. Much like ilist_iterator, but with the addition of two bits recording whether this position (when in a range) is half or fully open.
ilist_noalloc_traits Custom traits to do nothing on deletion.
ilist_node An intrusive list node.
ilist_node_base Base class for ilist nodes.
ilist_node_impl Implementation for an ilist node.
ilist_node_traits A fragment for template traits for intrusive list that provides default node related operations.
ilist_node_with_parent An ilist node that can access its parent list.
ilist_parent Option to add a pointer to this list's owner in every node.
ilist_sentinel Sentinel node that marks the end of an intrusive list.
ilist_sentinel_tracking Option to choose whether to track sentinels.
ilist_tag Option to specify a tag for the node type.
ilist_traits Template traits for intrusive list.
indent Value that inserts spaces when streamed into a raw_ostream.
index_range Increasing range of size_t indices.
indexed_accessor_iterator A utility class used to implement an iterator that contains some base object and an index. The iterator moves the index but keeps the base constant.
indexed_accessor_range Range of indexed accessor iterators over a non-indexable base.
iota_range Half-open or closed integer/enum range yielding successive values of type T.
iplist An intrusive list with ownership and callbacks specified/controlled by ilist_traits, only with API safe for polymorphic types.
iplist_impl A wrapper around an intrusive list with callbacks and non-intrusive ownership.
is_bitmask_enum Mark FPClassTest as a bitmask enumeration for bitwise operators.
is_bitmask_enum
is_bitmask_enum Partial specialization that is true when E is a bitmask enum.
is_integral_or_enum Metafunction that determines whether the given type is either an integral type or an enumeration type, including enum classes.
is_simple_type Trait that is true when X is already a simplified type.
isa_impl Core implementation of isa that invokes To::classof.
isa_impl_cl Const-aware wrapper that forwards isa checks to isa_impl.
isa_impl_wrap Recursively simplifies From via simplify_type before the isa check.
iterator_adaptor_base CRTP base class for adapting an iterator to a different type.
iterator_facade_base CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of the interface.
iterator_range A range adaptor for a pair of iterators.
largest_bitmask_enum_bit Largest individual bit value used by FPClassTest bitmask operations.
largest_bitmask_enum_bit
largest_bitmask_enum_bit Partial specialization providing the largest bit value of bitmask enum E.
latency_sort Sorting functions for the Available queue.
less_first Function object to check whether the first component of a container supported by std::get (like std::pair and std::tuple) compares less than the first component of another container.
less_second Function object to check whether the second component of a container supported by std::get (like std::pair and std::tuple) compares less than the second component of another container.
line_iterator A forward iterator which reads text lines from a buffer.
llvm_shutdown_obj llvm_shutdown_obj - This is a simple helper class that calls llvm_shutdown() when it is destroyed.
location_op_iterator
make_const_ptr Trait that yields a pointer to const T.
make_const_ref Trait that yields a const lvalue reference to T.
mapped_iterator Iterator adapter that applies a function when dereferenced.
mapped_iterator_base Base class for mapped iterators without stored function objects.
memoryaccess_def_iterator_base Iterator base class used to implement const and non-const iterators over the defining accesses of a MemoryAccess.
object_creator object_creator - Helper method for ManagedStatic.
object_deleter object_deleter - Helper method for ManagedStatic.
on_first Function object to apply a binary function to the first component of a std::pair.
pair_hash Hash functor for std::pair values.
pointee_iterator An iterator type that allows iterating over the pointees via some other iterator.
pointer_iterator
rank Utility type to build an inheritance chain that makes it easy to rank overload candidates.
raw_fd_ostream A raw_ostream that writes to a file descriptor.
raw_fd_stream A raw_ostream of a file for reading/writing/seeking.
raw_null_ostream A raw_ostream that discards all output.
raw_os_ostream raw_os_ostream - A raw_ostream that writes to an std::ostream. This is a simple adaptor class. It does not check for output errors; clients should use the underlying stream to detect errors.
raw_ostream This class implements an extremely fast bulk output stream that can only output to a stream. It does not support seeking, reopening, rewinding, line buffered disciplines etc. It is a simple buffer that outputs a chunk at a time.
raw_ostream_proxy Non-owning proxy for a raw_ostream. Enables passing a stream into an API that takes ownership.
raw_ostream_proxy_adaptor Adaptor to create a stream class that proxies another raw_ostream.
raw_pwrite_stream An abstract base class for streams implementations that also support a pwrite operation. This is useful for code that can mostly stream out data, but needs to patch in a header that needs to know the output size.
raw_pwrite_stream_proxy Non-owning proxy for a raw_pwrite_stream. Enables passing a stream into an API that takes ownership.
raw_pwrite_stream_proxy_adaptor Adaptor for creating a stream that proxies a raw_pwrite_stream.
raw_sha1_ostream A raw_ostream that hash the content using the sha1 algorithm.
raw_socket_stream
raw_string_ostream A raw_ostream that writes to an std::string.
raw_svector_ostream A raw_ostream that writes to an SmallVector or SmallString. This is a simple adaptor class. This class does not encounter output errors. raw_svector_ostream operates without a buffer, delegating all memory management to the SmallString. Thus the SmallString is always up-to-date, may be used directly and there is no need to call flush().
remove_cvref Remove cv-qualifiers and references from T.
resource_sort Sorting functions for the Available queue.
scc_iterator Enumerate the SCCs of a directed graph in reverse topological order of the SCC DAG.
scc_member_iterator Sort the nodes of a directed SCC in the decreasing order of the edge weights. The instantiating GraphT type should have weighted edge type declared in its graph traits in order to use this iterator.
scope_exit RAII guard that invokes a callable when leaving the current scope.
simple_ilist A simple intrusive list implementation.
simplify_type Define a template that can be specialized by smart pointers to reflect the fact that they are automatically dereferenced, and are not involved with the template selection process... the default implementation is a noop.
thread LLVM thread following std::thread interface with added constructor to specify stack size.
type_identity Backport of C++20 std::type_identity.
unique_function unique_function is a type-erasing functor similar to std::function.
upward_defs_iterator Provide an iterator that walks defs, giving both the memory access, and the current pointer location, updating the pointer location as it changes due to phi node translation.

Type Aliases

NameDescription
AAAlignmentStateType
AddBufferFn This type defines the callback to add a pre-existing file (e.g. in a cache).
AddStreamFn This type defines the callback to add a file that is generated on the fly.
AliasAnalysis Temporary typedef for legacy code that uses a generic AliasAnalysis pointer or reference.
AnalysisID
AnchorList
AnchorMap
ArgAuxType
Assume2KnowledgeMap A mapping from intrinsics (=llvm.assume calls) to a value range (=knowledge) that is encoded in them. How the value range is interpreted depends on the RetainedKnowledgeKey that was used to get this out of the RetainedKnowledgeMap.
BLAKE3Result The constant LLVM_BLAKE3_OUT_LEN provides the default output length, 32 bytes, which is recommended for most callers.
BlockIdMap
BlockSequence A sequence of basic blocks.
Boolean
BuildFnTy
BumpPtrAllocator The standard BumpPtrAllocator which just uses the default template parameters.
BumpPtrList AllocatorList specialized to allocate nodes from a bump-pointer allocator.
CCAssignFn CCAssignFn - This function assigns a location for Val, updating State to reflect the change. It returns 'true' if it failed to handle Val.
CCCustomFn CCCustomFn - This function assigns a location for Val, possibly updating all args to reflect changes and indicates if it handled it. It must set isCustom if it handles the arg and returns true.
CFGUpdate
CGSCCAnalysisManager The CGSCC analysis manager.
CGSCCAnalysisManagerFunctionProxy A proxy from a CGSCCAnalysisManager to a Function.
CGSCCAnalysisManagerModuleProxy A proxy from a CGSCCAnalysisManager to a Module.
CGSCCPassManager The CGSCC pass manager.
CacheCostTy
ClusterInfo Keep record of which SUnit are in the same cluster group.
ColorVector
ConstMap
ConstOperandBundleDef
ContextualFoldingSet This template class is a further refinement of FoldingSet which provides a context argument when calling Profile on its nodes. Currently, that argument is fixed at initialization time.
ConvergenceVerifier
Cost
CostTblEntry
CtxProfContextualProfiles
CtxProfFlatIndirectCallProfile
CtxProfFlatProfile
DDGBase
DDGDotGraphTraits
DDGEdgeBase
DDGInfo
DDGNodeBase
DILineInfoTable
DWARFAddressRangesVector DWARFAddressRangesVector - represents a set of absolute address ranges.
DWARFLocationExpressionsVector Represents a set of absolute location expressions.
DWARFRegNum
DataLayoutCallbackFuncTy
DataLayoutCallbackTy
DataLayoutCallbackTy
DbgRecordIterator
DebugLocRef
DefaultThreadPool
DiagnosticHandlerFunction
DomTreeBase
DomTreeNode
EnableIfConvertibleToInputIterator SFINAE helper that is valid when Iterator models an input iterator.
ExceptionSymbolProvider
FileCacheFunction This is a callable that manages file caching operations. It accepts a task ID Task, a unique key Key, and a module name ModuleName, and returns AddStreamFn(). This function determines whether a cache hit or miss occurs and handles the appropriate actions.
FlatIndirectTargets
FloatingPointPredicateUtils
FoldingSet This template class is used to instantiate a specialized implementation of the folding set to the node class T. T must be a subclass of FoldingSetNode and implement a Profile function.
FoldingSetNode Convenience alias for the base node type stored in a folding set.
ForwardIDFCalculator
FuncProbeFactorMap
FunctionAnalysisManager Convenience typedef for the Function analysis manager.
FunctionAnalysisManagerLoopProxy A proxy from a FunctionAnalysisManager to a Loop.
FunctionAnalysisManagerModuleProxy Provide the FunctionAnalysisManager to Module proxy.
FunctionCreator
FunctionModRefBehavior
FunctionPassManager Convenience typedef for a pass manager over functions.
FuzzerInitFun
FuzzerTestFun
GCMetadataPrinterRegistry GCMetadataPrinterRegistry - The GC assembly printer registry uses all the defaults from Registry.
GCRegistry Subclasses of GCStrategy are made available for use during compilation by adding them to the global GCRegistry. This can done either within the LLVM source tree or via a loadable plugin. An example registeration would be: static GCRegistry::Add<CustomGC> X("custom-name", "my custom supper fancy gc strategy");
GVSummaryMapTy Map of global value GUID to its summary, used to identify values defined in a particular module, and provide efficient access to their summary.
GVSummaryPtrSet A set of global value summary pointers.
GetContainedTypeIDTy
GetTypeByIDTy
GetterTy
GlobalCtorTransformFn Apply 'Fn' to the list of global ctors of module M and replace contructor record with the one returned by Fn. If nullptr was returned, the corresponding constructor will be removed from the array. For details see https://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable
GlobalValueSummaryList
GlobalValueSummaryMapTy
HTTPContentProvider An HTTPContentProvider is called by the HTTPServer to obtain chunks of the streaming response body. The returned chunk should be located at Offset bytes and have Length bytes.
HTTPRequestHandler
HasIteratorTag True if Iterator's category is convertible to Tag.
HasRunOnLoopT
HashNodeIdMapTy
IdHashNodeMapTy
IdHashNodeStableMapTy
IdxMBBPair
IgnoreOperandFunc A function that takes an instruction and an operand index and returns true if the operand should be ignored in the function hash computation.
IndexInstrMap A map from an instruction index to an instruction pointer.
IndexOperandHashMapType A map from an IndexPair to a stable hash.
IndexOperandHashVecType
IndexPair The pair of an instruction index and a operand index.
IndexPairHash
InlineCostFeatures
InlineFeatures
InlineSite
InsnRange This is used to track range of instructions with identical lexical scope.
InstructionIdMap
JITTargetAddress Represents an address in the target process's address space.
LargestSDNode A representation of the largest SDNode, for use in sizeof().
LegalityPredicate
LegalizeMutation
LiveRegUnitSet
LiveVirtRegBitSet
LoopAnalysisManager The loop analysis manager.
LoopAnalysisManagerFunctionProxy A proxy from a LoopAnalysisManager to a Function.
LoopPassManager The Loop pass manager.
LoopToScevMapT
LoopVectorTy
MBBOrBasicBlock
MCAsmMacroParameters
MCFixupKind Extensible enumeration to represent the type of a fixup.
MCLOHArgs
MCLOHDirectives
MCPhysReg An unsigned integer type large enough to represent all physical registers, but not necessarily virtual registers.
MCPseudoProbeFrameLocation
MCPseudoProbeInlineStack
MCSectionSubPair
MCSymbolTableEntry MCContext stores MCSymbolTableValue in a string map (see MCSymbol::operator new). To avoid redundant storage of the name, MCSymbol stores a pointer (8 bytes -- half the size of a StringRef) to the entry to access it.
MDTypeCallbackTy
MFGetterFnT
MachineBasicBlockComparator
MachineConvergenceVerifier
MachineDomTreeNode
MachineFloatingPointPredicateUtils
MachineFunctionAnalysisManager
MachineFunctionAnalysisManagerFunctionProxy
MachineFunctionAnalysisManagerModuleProxy
MachineFunctionPassManager Convenience typedef for a pass manager over functions.
MachineSSAContext
MachineUniformityInfo
MacroFusionPredTy Check if the instr pair, FirstMI and SecondMI, should be fused together, based on the dependency between them, Dep. Given SecondMI, when FirstMI is unspecified, then check if SecondMI may be part of a fused pair at all.
MemCpyFamilyLoweringInfo
MemProfCallStackHashTable
MemProfFrameHashTable
MemProfRecordHashTable
MemoryEffects Summary of how a function affects memory in the program.
MetadataPredicate
MetadataSetTy
ModuleAnalysisManager Convenience typedef for the Module analysis manager.
ModuleAnalysisManagerCGSCCProxy A proxy from a ModuleAnalysisManager to an SCC.
ModuleAnalysisManagerFunctionProxy Provide the ModuleAnalysisManager to Function proxy.
ModuleAnalysisManagerMachineFunctionProxy Provide the ModuleAnalysisManager to Function proxy.
ModuleHash 160 bits SHA1
ModulePassManager Convenience typedef for a pass manager over modules.
ModulePathStringTableTy String table to hold/own module path strings, as well as a hash of the module. The StringMap makes a copy of and owns inserted strings.
ModuleToSummariesForIndexTy Map of a module name to the GUIDs and summaries we will import from that module.
MostAlignedSDNode The SDNode class with the greatest alignment requirement.
MultiFileTableGenMainFn Perform the action using Records, and store output in OutFiles. Returns true on error, false otherwise.
Name2RegBankMap
Name2RegClassMap
NewLoopsMap
NfaPath
NormalizePredTy
OffsetsStringPool
OnDiskHashTableImplV3
OperandBuildSteps
OperandBundleDef
OperandVector
PBQPRAGraph
ParamLoadedValue
ParamLocs
ParamLocsVecTy
PassConfigCallback
PhiToDefMap
PointTypeIsValid Trait that is true when T is a fundamental type suitable as a point.
PointerTy
PostDomTreeBase
PostIncLoopSet
PotentialConstantIntValuesState
PotentialLLVMValuesState
ProbeFactorMap
RV32YCapabilityFormat
RV64YCapabilityFormat
RandomEngine
RawInstrProfReader32
RawInstrProfReader64
ReferenceGroupTy A reference group represents a set of memory references that exhibit temporal or spacial reuse. Two references belong to the same reference group with respect to a inner loop L iff: 1. they have a loop independent dependency, or 2. they have a loop carried dependence with a small dependence distance (e.g. less than 2) carried by the inner loop, or 3. they refer to the same array, and the subscript in their innermost dimension is less than or equal to 'd' (where 'd' is less than the cache line size)
ReferenceGroupsTy
RegAllocFilterFunc Filter function for register classes during regalloc. Default register class filter is nullptr, where all registers should be allocated.
RegClassOrRegBank Convenient type to represent either a register class or a register bank.
RegUnit2SUnitsMap Use a SparseMultiSet to track physical registers. Storage is only allocated once for the pass. It can be cleared in constant time and reused without any frees.
RelocAddrMap In place of applying the relocations to the data we've read from disk we use a separate mapping table to the side and checking that at locations in the dwarf where we expect relocated values. This adds a bit of complexity to the dwarf parsing/extraction at the benefit of not allocating memory for the entire size of the debug info sections.
RequireAnalysisLoopPass An alias template to easily name a require analysis loop pass.
RetainedKnowledgeKey The map Key contains the Value on for which the attribute is valid and the Attribute that is valid for that value. If the Attribute is not on any value, the Value is nullptr.
RetainedKnowledgeMap
ReverseIDFCalculator
RuntimePointerCheck A memcheck which made up of a pair of grouped pointers.
RuntimePointerCheck
RuntimePointerCheck
SCEVUse
SDNodeTSFlags
SMTExprRef Shared pointer for SMTExprs, used by SMTSolver API.
SMTSolverRef Shared pointer for SMTSolvers.
SMTSortRef Shared pointer for SMTSorts, used by SMTSolver API.
SSAContext
SaveRestorePoints
SectionLengths
SectionSymbolsTy
SmallInstListTy
SmallVectorSizeType Unsigned size/capacity type used by SmallVector for element type T.
SmallVirtRegSet
SpecMap
Statistic Statistic type that actually tracks values when stats are enabled.
SummaryEntryVector
TTI
TUVectorTy
TableGenMainFn Returns true on error, false otherwise.
TagNameMap
TargetFlagsType Holds target-specific properties for a symbol.
TargetRegisterClass
TrackingMDNodeRef
TrackingValueAsMetadataRef
TypeAtIndex Find the type at a given index in a list of types.
TypeConversionCostTblEntry
TypeGetter
TypeIdCompatibleVtableInfo List of vtable definitions decorated by a particular type identifier, and their corresponding offsets in that type identifier's metadata. Note that each type identifier may be compatible with multiple vtables, due to inheritance, which is why this is a vector.
TypeIdSummaryMapTy Map of a type GUID to type id string and summary (multimap used in case of GUID conflicts).
UTF16
UTF32
UTF8
UnderlyingObjectsVector
UniformityInfo
UniquingStringPool
UseListOrderStack
VReg2SUnitMultiMap Track local uses of virtual registers. These uses are gathered by the DAG builder and may be consulted by the scheduler to avoid iterating an entire vreg use list.
VReg2SUnitOperIdxMultiMap
VTableFuncList List of functions referenced by a particular vtable definition.
ValueMapConstIterator
ValueMapIterator
ValueName
ValueToSCEVMapTy
ValueToValueMap
ValueToValueMapTy
ValueType
ValueTypeCallbackTy
ValueTypeFromRangeType Element type of RangeType with top-level const removed.
ValueTypeIsValid Trait that is true when T is a fundamental or pointer value type.
VarID A unique key that represents a debug variable. First const DIScope *: Represents the scope of the debug variable. Second const DIScope *: Represents the InlinedAt scope of the debug variable. const DILocalVariable *: It is a pointer to the debug variable itself.
all_types_equal traits class for checking whether type T is same as all other types in Ts.
are_base_of traits class for checking whether type T is a base class for all the given types in the variadic list.
bf_iterator_default_set Default visited-node set type for breadth-first iteration.
common_sint Common signed type of two integral types.
common_uint Common unsigned type of two integral types.
const_gvsummary_iterator Type used for iterating through the global value summary map.
const_inst_iterator
const_inst_range
const_memoryaccess_def_iterator
const_pred_iterator
const_pred_range
const_succ_iterator
const_succ_range
enableif_int Some template parameter helpers to optimize for bitwidth, for functions that take multiple arguments.
fatal_error_handler_t An error handler callback.
filter_iterator Defines filter_iterator to a suitable specialization of filter_iterator_impl, based on the underlying iterator's category.
float128
gep_type_iterator
gvsummary_iterator
ilist Intrusive list alias equivalent to iplist with the same options.
ilist_select_iterator_type Iterator type for OptionsT, selecting ilist_iterator_w_bits when iterator bits are enabled and ilist_iterator otherwise.
inst_iterator
inst_range
is_detected Detects if a given trait holds for some set of arguments 'Args'. For example, the given trait could be used to detect if a given type has a copy assignment operator: template<class T> using has_copy_assign_t = decltype(std::declval<T&>() = std::declval<const T&>()); bool fooHasCopyAssign = is_detected<has_copy_assign_t, FooClass>::value;
is_one_of traits class for checking whether type T is one of any of the given types in the variadic list.
memoryaccess_def_iterator
once_flag Alias of std::once_flag used with llvm::call_once.
pred_iterator
pred_range
raw_pointer_iterator Iterator adapter that dereferences twice to obtain a raw pointer.
remove_cvref_t Alias for remove_cvref<T>::type.
stable_hash An opaque object representing a stable hash code. It can be serialized, deserialized, and is stable across processes and executions.
stack_float_t Stack-forced float type on non-x86 hosts.
succ_iterator
succ_range
type_identity_t Alias for type_identity<T>::type.
uint24_t
unique_value Use this instead of std::unique_ptr<Value> or std::unique_ptr<Instruction>. Those don't work because Value and Instruction's destructors are protected, aren't virtual, and won't destroy the complete object.

Enums

NameDescription
Unnamed enum
Unnamed enum
Unnamed enum The MatchTable is encoded as an array of bytes. Thus, opcodes are expected to be <255.
Unnamed enum This is a llvm local version of __cxa_demangle. Other than the name and being in the llvm namespace it is identical.
Unnamed enum
Unnamed enum
Unnamed enum
AlignStyle
AllocFnKind
AllocTokenMode Modes for generating allocation token IDs.
AllocationType
AsanCtorKind Types of ASan module constructors supported
AsanDetectStackUseAfterReturnMode Mode of ASan detect stack use after return
AsanDtorKind Types of ASan module destructors supported
AsmRewriteKind
AssumeBundleArg Index of elements in the operand bundle. If the element exist it is guaranteed to be what is specified in this enum but it may not exist.
AtomicOrdering Atomic ordering for LLVM's memory model.
AtomicOrderingCABI Atomic ordering for C11 / C++11's memory models.
AtomicScope Target-neutral memory synchronization scopes.
AttributorRunOption Run options, used by the pass manager.
BasicBlockSection
BinaryStreamFlags
BitcodeError
BitstreamWrapperHeader Offsets of the 32-bit fields of bitstream wrapper header.
CGDataKind
CGDataMode
CGDataSectKind
CaptureComponents Components of the pointer that may be captured.
CfiFunctionLinkage The type of CFI jumptable needed for a function.
ChangePrinter
ChangeStatus Tracks whether abstract attribute state changed.
CloneFunctionChangeType
ClrHandlerType
CodeGenFileType Output kind requested from or returned by addPassesToEmitFile.
CodeGenOptLevel Code generation optimization level.
CodeObjectVersionKind Enumeration value for AMDGPU code object version, which is the code object version times 100.
ColorMode Controls whether WithColor applies ANSI colors to a stream.
CombineLevel
CombinerObjective The combiner's goal may differ based on which pattern it is attempting to optimize.
ComplexDeinterleavingOperation
ComplexDeinterleavingRotation
ControlFlowGuardMechanism Control Flow Guard check mechanism.
ControlFlowGuardMode Control Flow Guard enablement mode.
ConvergenceKind
ConversionFlags
ConversionResult
CurStreamTypeType CurStreamTypeType - A type for CurStreamType
DIDumpType Selects which debug sections get dumped.
DIDumpTypeCounter This is just a helper to programmatically construct DIDumpType.
DINameKind A DINameKind is passed to name search methods to specify a preference regarding the type of name resolution the caller wants.
DWARFSectionKind The enum of section identifiers to be used in internal interfaces.
DWPSectionId Section identifiers for DWP output.
DebugCompressionType
DebuggerKind Identify a debugger for "tuning" the debug info.
DepClassTy
DiagnosticKind Defines the different supported kind of a diagnostic. This enum should be extended with a new ID for each added concrete subclass.
DiagnosticSeverity Defines the different supported severity of a diagnostic.
Dwarf64StrOffsetsPromotion
EABI Embedded ABI version selection.
EHPersonality
EmitDwarfUnwindType
ExceptionHandling
ExpandVariadicsMode
ExplorationDirection Enum that allows us to spell out the direction.
FPClassTest Floating-point class tests, supported by 'is_fpclass' intrinsic. Actual test may be an OR combination of basic tests.
FeatureIndex
FloatStyle Floating-point formatting style for native writers.
FramePointerKind Specify which functions should keep the frame pointer.
FunctionReturnThunksKind Function return thunk generation mode.
GVDAGType
GlobalISelAbortMode Enable abort calls when global instruction selection fails to lower/select an instruction.
HTTPMethod
HexPrintStyle Hexadecimal formatting style for native writers.
HighlightColor Symbolic highlight roles used when coloring diagnostic and dump output.
IR2VecKind IR2Vec computes two kinds of embeddings: Symbolic and Flow-aware. Symbolic embeddings capture the "syntactic" and "statistical correlation" of the IR entities. Flow-aware embeddings build on top of symbolic embeddings and additionally capture the flow information in the IR. IR2VecKind is used to specify the type of embeddings to generate. Note: Implementation of FlowAware embeddings is not same as the one described in the paper. The current implementation is a simplified version that captures the flow information (SSA-based use-defs) without tracing through memory level use-defs in the embedding computation described in the paper.
IRMemLocation The locations at which a function might access memory.
IRUnitKind The IR units a pass can run on.
InlineCostFeatureIndex
InlinePass
InlinerFunctionImportStatsOpts
InliningAdvisorMode There are 4 scenarios we can use the InlineAdvisor: - Default - use manual heuristics.
InstrProfKind An enum describing the attributes of an instrumented profile.
InstrProfSectKind
InstrProfValueKind
IntegerStyle Integer formatting style for native writers.
KCFIHashAlgorithm
LEB128Sign
LLVMConstants
LibFunc
LiveRangeStage
LongDoubleFormat The floating-point format used for the target's "long double" type.
LoopIdiomVectorizeStyle
LoopPeelDirection
LoopUnrollResult Represents the result of a UnrollLoop invocation.
MCDataRegionType
MCLOHType Linker Optimization Hint Type.
MCPseudoProbeFlag
MCRegUnit Register units are used to compute register aliasing. Every register has at least one register unit, but it can have more. Two registers overlap if and only if they have a common register unit.
MCSymbolAttr
MCVersionMinType
MIR2VecKind
MSDemangleFlags
MachineCombinerPattern These are instruction patterns matched by the machine combiner pass.
MachineFunctionDataHotness
MachineTraceStrategy Strategies for selecting traces.
ModRefInfo Flags indicating whether a memory access modifies or references memory.
NoCommonBitsSetResult
OnCuIndexOverflow
OptimizationLevel
OverflowResult
PGOCtxProfileBlockIDs
PGOCtxProfileRecords
PGOInstrumentationType
PGOViewCountsType
PGSOQueryType
PassDebuggingString
PassKind
PassManagerType Different types of internal pass managers. External pass managers (PassManager and FunctionPassManager) are not represented here. Ordering of pass manager types is important here.
PassSummaryAction What to do with the summary when running passes that operate on it.
PredicateType
PrevailingType PrevailingType enum used as a return type of callback passed to computeDeadSymbolsAndUpdateIndirectCalls. Yes and No values used when status explicitly set by symbols resolution, otherwise status is Unknown.
PrintPipelinePassesFormat
PseudoProbeAttributes
PseudoProbeReservedId
PseudoProbeType
RecurKind These are the kinds of recurrences that we support.
RegAllocType
RegBankSelectMode List of the modes supported by the RegBankSelect pass.
RegState Flags to represent properties of register accesses.
RelocSectionSymType
RemapFlags These are flags that the value mapping APIs allow.
ReplaceExitVal
ReplacementType
RoundingMode Rounding mode.
RunOutliner
SCEVNoWrapFlags NoWrapFlags are bitfield indices into SCEV's SubclassData.
SCEVTypes
SDNF
SDNP
SDTC
SanitizerStatKind
SelectPatternFlavor Specific patterns of select instructions we can match.
SelectPatternNaNBehavior Behavior when a floating point min/max is given one NaN and one non-NaN as input.
SetThreadPriorityResult Outcome of attempting to change the current thread's priority.
StatepointFlags The statepoint intrinsic accepts a set of flags as its third argument. Valid values come out of this set.
StructuralHashOptions
SwiftAsyncFramePointerMode Indicates when and how the Swift async frame pointer bit should be set.
SymtabWritingMode
TailFoldingStyle
TensorType
TextEncoding
ThinOrFullLTOPhase This enumerates the LLVM full LTO or ThinLTO optimization phases.
ThreadPriority Scheduling priority hint for set_thread_priority.
TimeTraceEventType
TransformationMode The mode sets how eager a transformation should be applied.
UWTableKind
UncountableExitTrait Indicates the characteristics of a loop with an uncountable exit. * None -- No uncountable exit present. * ReadOnly -- At least one uncountable exit in a readonly loop. * ReadWrite -- At least one uncountable exit in a loop with side effects that may require masking.
UndefPoisonKind Enumeration to track whether we are interested in Undef, Poison, or both.
VFISAKind Describes the type of Instruction Set Architecture
VFParamKind Describes the type of Parameters
VPExpansionDetails Represents the details the expansion of a VP intrinsic.
ValueUniformity Enum describing how values behave with respect to uniformity and divergence, to answer the question: if the same instruction is executed by two threads in a convergent set of threads, will its result value be uniform, i.e. the same on both threads?
VariableID Type wrapper for integer ID for Variables. 0 is reserved.
VectorInstrContext Represents a hint about the context in which a vector instruction or intrinsic is used.
VectorLibrary List of known vector-functions libraries.
WaitForUnlockResult Describes the result of waiting for the owner to release the lock.
WinX64EHUnwindMode Windows x64 exception-handling unwind info version.
WindowSchedulingFlag
cgdata_error
endianness Byte order of multi-byte values.
errc
fltNanEncoding How NaN values are represented.
fltNonfiniteBehavior How the nonfinite values Inf and NaN are represented.
instrprof_error
lostFraction Enum that represents what fraction of the LSB truncated bits of an fp number represent.
sampleprof_error
stream_error_code

Functions

NameDescription
AbsoluteDifference Subtract two unsigned integers, X and Y, of type T and return the absolute value of the result.
AbsoluteValue Return the absolute value of a signed integer, converted to the corresponding unsigned integer type. Avoids undefined behavior in std::abs when you pass it INT_MIN or similar.
AddOverflow AddOverflow overloads
AnalyzePhysRegInBundle AnalyzePhysRegInBundle - Analyze how the current instruction or bundle uses a physical register. This function should not be called after operator++(), it expects a fresh iterator.
AnalyzeVirtRegInBundle AnalyzeVirtRegInBundle - Analyze how the current instruction or bundle uses a virtual register. This function should not be called after operator++(), it expects a fresh iterator.
AnalyzeVirtRegLanesInBundle Return a pair of lane masks (reads, writes) indicating which lanes this instruction uses with Reg.
AnnotateInlinePassName
AreStatisticsEnabled Check if statistics are enabled.
BitcodeErrorCategory
BuildMI BuildMI overloads
BuryPointer
CanInlineCallSite Check if it is legal to perform inlining of the function called by CB into the caller at this particular use, and sets fields in IFI.
CheckAssert
CheckBitcodeOutputToConsole Determine if the raw_ostream provided is connected to a terminal. If so, generate a warning message to errs() advising against display of bitcode and return true. Otherwise just return false. Check for output written to a console
CloneAndPruneFunctionInto This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly. The effect of this is to copy significantly less code in cases where (for example) a function call with constant arguments is inlined, and those constant arguments cause a significant amount of code in the callee to be dead. Since this doesn't produce an exactly copy of the input, it can't be used for things like CloneFunction or CloneModule.
CloneAndPruneIntoFromInst
CloneBasicBlock Return a copy of the specified basic block, but without embedding the block into a particular function. The block returned is an exact copy of the specified basic block, without any remapping having been performed. Because of this, this is only suitable for applications where the basic block will be inserted into the same function that it was cloned from (loop unrolling would use this, for example).
CloneFunction Return a copy of the specified function and add it to that function's module. Also, any references specified in the VMap are changed to refer to their mapped value instead of the original one. If any of the arguments to the function are in the VMap, the arguments are deleted from the resultant function. The VMap is updated to include mappings from all of the instructions and basicblocks in the function from their old to new values. The final argument captures information about the cloned code if non-null.
CloneFunctionAttributesInto Clone OldFunc's attributes into NewFunc, transforming values based on the mappings in VMap.
CloneFunctionBodyInto Clone OldFunc's body into NewFunc.
CloneFunctionInto Clone OldFunc into NewFunc, transforming the old arguments into references to VMap values. Note that if NewFunc already has basic blocks, the ones cloned into it will be added to the end of the function. This function fills in a list of return instructions, and can optionally remap types and/or append the specified suffix to all values cloned.
CloneFunctionMetadataInto Clone OldFunc's metadata into NewFunc.
CloneModule CloneModule overloads
CompleteNodeLabelString
ComputeASanStackFrameDescription
ComputeASanStackFrameLayout
ComputeCrossModuleImport Compute all the imports and exports for every module in the Index.
ComputeEditDistance Determine the edit distance between two sequences.
ComputeLinearIndex Compute the linearized index of a member in a nested aggregate/struct/array.
ComputeMappedEditDistance Determine the edit distance between two sequences.
ComputeMaxSignificantBits Get the upper bound on bit size for this Value Op as a signed integer. i.e. x == sext(trunc(x to MaxSignificantBits) to bitwidth(x)). Similar to the APInt::getSignificantBits function.
ComputeNumSignBits Return the number of times the sign bit of the register is replicated into the other bits. We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "ashr X, 2", we know that the top 3 bits are all equal to each other, so we return 3. For vectors, return the number of sign bits for the vector element with the mininum number of known sign bits.
ComputeValueTypes Given an LLVM IR type, compute non-aggregate subtypes. Optionally also compute their offsets.
ComputeValueVTs ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it.
ConstantFoldBinOp
ConstantFoldBinaryInstruction
ConstantFoldBinaryOpOperands Attempt to constant fold a binary operation with the specified operands. Returns null or a constant expression of the specified operands on failure.
ConstantFoldCall ConstantFoldCall - Attempt to constant fold a call to the specified function with the specified arguments, returning null if unsuccessful.
ConstantFoldCastInstruction
ConstantFoldCastOp
ConstantFoldCastOperand Attempt to constant fold a cast with the specified operand. If it fails, it returns a constant expression of the specified operand.
ConstantFoldCompareInstOperands Attempt to constant fold a compare instruction (icmp/fcmp) with the specified operands. Returns null or a constant expression of the specified operands on failure. Denormal inputs may be flushed based on the denormal handling mode.
ConstantFoldCompareInstruction
ConstantFoldConstant ConstantFoldConstant - Fold the constant using the specified DataLayout. This function always returns a non-null constant: Either the folding result, or the original constant if further folding is not possible.
ConstantFoldExtOp
ConstantFoldExtractElementInstruction Attempt to constant fold an extractelement instruction with the specified operands and indices. The constant result is returned if successful; if not, null is returned.
ConstantFoldExtractValueInstruction Attempt to constant fold an extractvalue instruction with the specified operands and indices. The constant result is returned if successful; if not, null is returned.
ConstantFoldFPBinOp
ConstantFoldFPInstOperands Attempt to constant fold a floating point binary operation with the specified operands, applying the denormal handling mod to the operands. Returns null or a constant expression of the specified operands on failure.
ConstantFoldGetElementPtr
ConstantFoldICmp
ConstantFoldInsertElementInstruction Attempt to constant fold an insertelement instruction with the specified operands and indices. The constant result is returned if successful; if not, null is returned.
ConstantFoldInsertValueInstruction Attempt to constant fold an insertvalue instruction with the specified operands and indices. The constant result is returned if successful; if not, null is returned.
ConstantFoldInstOperands ConstantFoldInstOperands - Attempt to constant fold an instruction with the specified operands. If successful, the constant result is returned, if not, null is returned. Note that this function can fail when attempting to fold instructions like loads and stores, which have no constant expression form.
ConstantFoldInstruction ConstantFoldInstruction - Try to constant fold the specified instruction. If successful, the constant result is returned, if not, null is returned. Note that this fails if not all of the operands are constant. Otherwise, this function can only fail when attempting to fold instructions like loads and stores, which have no constant expression form.
ConstantFoldIntToFloat
ConstantFoldIntegerCast Constant fold a zext, sext or trunc, depending on IsSigned and whether the DestTy is wider or narrower than C. Returns nullptr on failure.
ConstantFoldIntrinsic
ConstantFoldLoadFromConst ConstantFoldLoadFromConst overloads
ConstantFoldLoadFromConstPtr ConstantFoldLoadFromConstPtr overloads
ConstantFoldLoadFromUniformValue If C is a uniform value where all bits are the same (either all zero, all ones, all undef or all poison), return the corresponding uniform value in the new type. If the value is not uniform or the result cannot be represented, return null.
ConstantFoldLoadThroughBitcast ConstantFoldLoadThroughBitcast - try to cast constant to destination type returning null if unsuccessful. Can cast pointer to pointer or pointer to integer and vice versa if their sizes are equal.
ConstantFoldSelectInstruction Attempt to constant fold a select instruction with the specified operands. The constant result is returned if successful; if not, null is returned.
ConstantFoldShuffleVectorInstruction Attempt to constant fold a shufflevector instruction with the specified operands and mask. See class ShuffleVectorInst for a description of the mask representation. The constant result is returned if successful; if not, null is returned.
ConstantFoldTerminator If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination. This is a nontrivial operation because the successors of this basic block must have their PHI nodes updated. Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch conditions and indirectbr addresses this might make dead if DeleteDeadConditions is true.
ConstantFoldUnaryInstruction
ConstantFoldUnaryIntOp Tries to constant fold a unary integer operation (G_CTLZ, G_CTTZ, G_CTPOP and their _ZERO_POISON variants, G_ABS, G_BSWAP, G_BITREVERSE) on Src. If Src is a vector then it tries to do an element-wise constant fold.
ConstantFoldUnaryOpOperand Attempt to constant fold a unary operation with the specified operand. Returns null on failure.
ConstantFoldVectorBinop Tries to constant fold a vector binop with sources Op1 and Op2. Returns an empty vector on failure.
ConstantLog2 Compile time Log2. Valid only for positive powers of two.
ConvertCodePointToUTF8 Convert an Unicode code point to UTF8 sequence.
ConvertCostTableLookup Find in type conversion cost table.
ConvertDebugDeclareToDebugValue ConvertDebugDeclareToDebugValue overloads
ConvertUTF16toUTF32
ConvertUTF16toUTF8
ConvertUTF32toUTF16
ConvertUTF32toUTF8
ConvertUTF8toUTF16
ConvertUTF8toUTF32 Convert a partial UTF8 sequence to UTF32. If the sequence ends in an incomplete code unit sequence, returns sourceIllegal.
ConvertUTF8toUTF32Partial Convert a partial UTF8 sequence to UTF32. If the sequence ends in an incomplete code unit sequence, returns sourceExhausted.
ConvertUTF8toWide ConvertUTF8toWide overloads
CostTableLookup Find in cost table.
CreateInfoOutputFile Return a stream to print our output on.
CreateZ3Solver Convenience method to create and Z3Solver object
DebugStr DebugStr overloads
DeleteDeadBlock Delete the specified block, which must have no predecessors.
DeleteDeadBlocks Delete the specified blocks from BB. The set of deleted blocks must have no predecessors that are not being deleted themselves. BBs must have no duplicating blocks. If there are loops among this set of blocks, all relevant loop info updates should be done before this function is called. If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.
DeleteDeadPHIs Examine each PHI in the given block and delete it if it is dead. Also recursively delete any operands that become dead as a result. This includes tracing the def-use list from the PHI to see if it is ultimately unused or if it reaches an unused cycle. Return true if any PHIs were deleted.
DemotePHIToStack This function takes a virtual register computed by a phi node and replaces it with a slot in the stack frame, allocated via alloca. The phi node is deleted and it returns the pointer to the alloca inserted.
DemoteRegToStack This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca. This allows the CFG to be changed around without fear of invalidating the SSA information for the value. It returns the pointer to the alloca inserted to create a stack slot for X.
DetermineUseCaptureKind Determine what kind of capture behaviour U may exhibit.
DiffFilesWithTolerance DiffFilesWithTolerance - Compare the two files specified, returning 0 if the files match, 1 if they are different, and 2 if there is a file error. This function allows you to specify an absolute and relative FP error that is allowed to exist. If you specify a string to fill in for the error option, it will set the string to an error message if an error occurs, or if the files are different.
DisplayGraph
DuplicateInstructionsInSplitBetween Split edge between BB and PredBB and duplicate all non-Phi instructions from BB between its beginning and the StopAt instruction into the split block. Phi nodes are not duplicated, but their uses are handled correctly: we replace them with the uses of corresponding Phi inputs. ValueMapping is used to map the original instructions from BB to their newly-created copies. Returns the split block.
EliminateDuplicatePHINodes Check for and eliminate duplicate PHI nodes in this block. This doesn't try to be clever about PHI nodes which differ only in the order of the incoming values, but instcombine orders them so it usually won't matter.
EliminateNewDuplicatePHINodes
EliminateUnreachableBlocks Delete all basic blocks from F that are not reachable from its entry node. If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.
EmitDetailedRecords
EmitImportsFiles Emit into OutputFilename the files module ModulePath will import from.
EmitJSON
EnablePrettyStackTrace Enables dumping a "pretty" stack trace when the program crashes.
EnablePrettyStackTraceOnSigInfoForThisThread Enables (or disables) dumping a "pretty" stack trace when the user sends SIGINFO or SIGUSR1 to the current process.
EnableStatistics Enable the collection and printing of statistics.
ExtractTypeInfo ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
FindAvailableLoadedValue FindAvailableLoadedValue overloads
FindEarliestCapture
FindFunctionBackedges Analyze the specified function to find all of the loop backedges in the function and return them. This is a relatively cheap (compared to computing dominators and loop info) analysis.
FindInsertedValue Given an aggregate and an sequence of indices, see if the scalar value indexed is already around as a register, for example if it were inserted directly into the aggregate.
FlattenCFG This function is used to flatten a CFG. For example, it uses parallel-and and parallel-or mode to collapse if-conditions and merge if-regions with identical statements.
FlushFPConstant Attempt to flush float point constant according to denormal mode set in the instruction's parent function attributes. If so, return a zero with the correct sign, otherwise return the original constant. Inputs and outputs to floating point instructions can have their mode set separately, so the direction is also needed.
FoldReturnIntoUncondBranch This method duplicates the specified return instruction into a predecessor which ends in an unconditional branch. If the return instruction returns a value defined by a PHI, propagate the right value into the return. It returns the new return instruction in the predecessor.
FoldSingleEntryPHINodes We know that BB has one predecessor. If there are any single-entry PHI nodes in it, fold them away. This handles the case when all entries to the PHI nodes in a block are guaranteed equal, such as when the block has exactly one predecessor.
GVTOP
GetIfCondition Check whether BB is the merge point of a if-region. If so, return the branch instruction that determines which entry into BB will be taken. Also, return by references the block that will be entered from if the condition is true, and the block that will be entered if the condition is false.
GetPointerBaseWithConstantOffset Analyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset. Return the base and offset to the caller.
GetReturnInfo Given an LLVM IR type and return type attributes, compute the return value EVTs and flags, and optionally also the offsets, if the return value is being lowered to memory.
GetShadowBytes
GetShadowBytesAfterScope
GetStatistics Get the statistics. This can be used to look up the value of statistics without needing to parse JSON.
GetStringLength If we can compute the length of the string pointed to by the specified pointer, return 'len+1'. If we can't, return 0.
GetSuccessorNumber Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors. It is an error to call this with a block that is not a successor.
GetUnrollMetadata
HasLoopOrEntryConvergenceToken Check if the given basic block contains any loop or entry convergent intrinsic instructions.
Hi_32 Return the high 32 bits of a 64 bit value.
InlineFunction InlineFunction overloads
InlineFunctionImpl This should generally not be used, use InlineFunction instead.
InsertDebugValueAtStoreLoc Creates and inserts a dbg_value record intrinsic before a store that has an associated llvm.dbg.value intrinsic.
InsertPreheaderForLoop
InvertBranch
IsBlockFollowedByDeoptOrUnreachable Check if we can prove that all paths starting from this block converge to a block that either has a llvm.experimental.deoptimize call prior to its terminating return instruction or is terminated by unreachable. All blocks in the traversed sequence must have an unique successor, maybe except for the last one.
IsConstantOffsetFromGlobal If this constant is a constant offset from a global, return the global and the constant. Because of constantexprs, this function is recursive. If the global is part of a dso_local_equivalent constant, return it through Equiv if it is provided.
IsSingleCodeUnitUTF16Codepoint
IsSingleCodeUnitUTF32Codepoint
IsSingleCodeUnitUTF8Codepoint
Lo_32 Return the low 32 bits of a 64 bit value.
LoadIntFromMemory Loads the integer stored in the LoadBytes bytes starting from Src into IntVal, which is assumed to be wide enough and to hold zero.
Log2 Returns the log2 of the alignment.
Log2_32 Return the floor log base 2 of the specified value, -1 if the value is zero. (32 bit edition.) Ex. Log2_32(32) == 5, Log2_32(1) == 0, Log2_32(0) == -1, Log2_32(6) == 2
Log2_32_Ceil Return the ceil log base 2 of the specified value, 32 if the value is zero. (32 bit edition). Ex. Log2_32_Ceil(32) == 5, Log2_32_Ceil(1) == 0, Log2_32_Ceil(6) == 3
Log2_64 Return the floor log base 2 of the specified value, -1 if the value is zero. (64 bit edition.)
Log2_64_Ceil Return the ceil log base 2 of the specified value, 64 if the value is zero. (64 bit edition.)
LoopRotation Convert a loop into a loop with bottom test. It may perform loop latch simplication as well if the flag RotationOnly is false. The flag Threshold represents the size threshold of the loop header. If the loop header's size exceeds the threshold, the loop rotation will give up. The flag IsUtilMode controls the heuristic used in the LoopRotation. If it is true, the profitability heuristic will be ignored.
LowerDbgDeclare Lowers dbg.declare records into appropriate set of dbg.value records.
MD5Hash Helper to compute and return lower 64 bits of the given string's MD5 hash.
Make_64 Make a 64-bit integer from a high / low pair of 32-bit integers.
MapMetadata MapMetadata overloads
MapValue MapValue overloads
MaskedValueIsZero Return true if 'V & Mask' is known to be zero. We use this predicate to simplify operations downstream. Mask is known to be zero for bits that V cannot have.
MergeBasicBlockIntoOnlyPred BB is a block with one predecessor and its predecessor is known to have one successor (BB!). Eliminate the edge between them, moving the instructions in the predecessor into BB. This deletes the predecessor block.
MergeBlockIntoPredecessor Attempts to merge a block into its predecessor, if possible. The return value indicates success or failure. By default do not merge blocks if BB's predecessor has multiple successors. If PredecessorWithTwoSuccessors = true, the blocks can only be merged if BB's Pred has a branch to BB and to AnotherBB, and BB has a single successor Sing. In this case the branch will be updated with Sing instead of BB, and BB will still be merged into its predecessor and removed. If DT is not nullptr, update it directly; in that case, DTU must be nullptr.
MergeBlockSuccessorsIntoGivenBlocks Merge block(s) sucessors, if possible. Return true if at least two of the blocks were merged together. In order to merge, each block must be terminated by an unconditional branch. If L is provided, then the blocks merged into their predecessors must be in L. In addition, This utility calls on another utility: MergeBlockIntoPredecessor. Blocks are successfully merged when the call to MergeBlockIntoPredecessor returns true.
MinAlign MinAlign overloads
MulOverflow MulOverflow overloads
NextPowerOf2 Returns the next power of two (in 64-bits) that is strictly greater than A. Returns zero on overflow.
NullPointerIsDefined Check whether null pointer dereferencing is considered undefined behavior for a given function or an address space. Null pointer access in non-zero address space is not considered undefined. Return value: false => null pointer dereference is undefined. Return value: true => null pointer dereference is not undefined.
NumDigitsBase10 Returns the number of digits in the given integer.
PTOGV
PeelSingleBlockLoop Peels a single block loop. Loop must have two successors, one of which must be itself. Similarly it must have two predecessors, one of which must be itself.
PointerMayBeCaptured PointerMayBeCaptured overloads
PointerMayBeCapturedBefore PointerMayBeCapturedBefore overloads
PowerOf2Ceil Returns the power of two which is greater than or equal to the given value. Essentially, it is a ceil operation across the domain of powers of two.
PrepareToSplitEntryBlock Instrumentation passes often insert conditional checks into entry blocks. Call this function before splitting the entry block to move instructions that must remain in the entry block up before the split point. Static allocas and llvm.localescape calls, for example, must remain in the entry block.
PrintDomTree
PrintError
PrintFatalError [noreturn]
PrintFatalNote [noreturn]
PrintLaneMask Create Printable object to print LaneBitmasks on a raw_ostream.
PrintNote
PrintRecyclerStats PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics.
PrintStatistics PrintStatistics overloads
PrintStatisticsJSON Print statistics in JSON format. This does include all global timers (
PrintWarning
PromoteMemToReg Promote the specified list of alloca instructions into scalar registers, inserting PHI nodes as appropriate.
ReadByteArrayFromGlobal
RecursivelyDeleteDeadPHINode If the specified value is an effectively dead PHI node, due to being a def-use chain of single-use nodes that either forms a cycle or is terminated by a trivially dead instruction, delete it. If that makes any of its operands trivially dead, delete them too, recursively. Return true if a change was made.
RecursivelyDeleteTriviallyDeadInstructions RecursivelyDeleteTriviallyDeadInstructions overloads
RecursivelyDeleteTriviallyDeadInstructionsPermissive Same functionality as RecursivelyDeleteTriviallyDeadInstructions, but allow instructions that are not trivially dead. These will be ignored. Returns true if any changes were made, i.e. any instructions trivially dead were found and deleted.
RemapDbgRecord Remap the Values used in the DbgRecord DR using the value map VM.
RemapDbgRecordRange Remap the Values used in the DbgRecords Range using the value map VM.
RemapFunction Remap the operands, metadata, arguments, and instructions of a function.
RemapInstruction Convert the instruction operands from referencing the current values into those specified by VM.
RemapSourceAtom Remap source location atom. Called by RemapInstruction. This updates the instruction's atom group number if it has been mapped (e.g. with llvm::mapAtomInstance), which is necessary to distinguish source code atoms on duplicated code paths.
RemoveRedundantDbgInstrs Try to remove redundant dbg.value instructions from given basic block. Returns true if at least one instruction was removed. Remove redundant pseudo ops when RemovePseudoOp is true.
ReplaceInstWithInst ReplaceInstWithInst overloads
ReplaceInstWithValue Replace all uses of an instruction (specified by BI) with a value, then remove and delete the original instruction.
ResetStatistics Reset the statistics. This can be used to zero and de-register the statistics in order to measure a compilation.
RestorePrettyStackState Restores the topmost element of the "pretty" stack state to State, which should come from a previous call to SavePrettyStackState(). This is useful when using a CrashRecoveryContext in code that also uses PrettyStackTraceEntries, to make sure the stack that's printed if a crash happens after a crash that's been recovered by CrashRecoveryContext doesn't have frames on it that were added in code unwound by the CrashRecoveryContext.
ReverseStackTrace
SCEVExprContains Return true if any node in Root satisfies the predicate Pred.
SaturatingAdd SaturatingAdd overloads
SaturatingMultiply Multiply two unsigned integers, X and Y, of type T. Clamp the result to the maximum representable value of T on overflow. ResultOverflowed indicates if the result is larger than the maximum representable value of type T.
SaturatingMultiplyAdd Multiply two unsigned integers, X and Y, and add the unsigned integer, A to the product. Clamp the result to the maximum representable value of T on overflow. ResultOverflowed indicates if the result is larger than the maximum representable value of type T.
SavePrettyStackState Returns the topmost element of the "pretty" stack state.
SignExtend32 Sign-extend the number in the bottom B bits of X to a 32-bit integer. Requires B <= 32.
SignExtend64 Sign-extend the number in the bottom B bits of X to a 64-bit integer. Requires B <= 64.
SimpleNodeLabelString
SimplifyInstructionsInBlock Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions.
SkipBitcodeWrapperHeader SkipBitcodeWrapperHeader - Some systems wrap bc files with a special header for padding or other reasons. The format of this header is:
SplitAllCriticalEdges Loop over all of the edges in the CFG, breaking critical edges as they are found. Returns the number of broken edges.
SplitBlock Split the specified block at the specified instruction.
SplitBlockAndInsertForEachLane SplitBlockAndInsertForEachLane overloads
SplitBlockAndInsertIfElse Similar to SplitBlockAndInsertIfThen, but the inserted block is on the false path of the branch.
SplitBlockAndInsertIfThen Split the containing block at the specified instruction - everything before SplitBefore stays in the old basic block, and the rest of the instructions in the BB are moved to a new block. The two blocks are connected by a conditional branch (with value of Cmp being the condition). Before: Head SplitBefore Tail After: Head if (Cond) ThenBlock SplitBefore Tail
SplitBlockAndInsertIfThenElse SplitBlockAndInsertIfThenElse overloads
SplitBlockAndInsertSimpleForLoop Insert a for (int i = 0; i < End; i++) loop structure (with the exception that End is assumed > 0, and thus not checked on entry) at SplitBefore. Returns the first insert point in the loop body, and the PHINode for the induction variable (i.e. "i" above).
SplitBlockPredecessors This method introduces at least one new basic block into the function and moves some of the predecessors of BB to be predecessors of the new block. The new predecessors are indicated by the Preds array. The new block is given a suffix of 'Suffix'. Returns new basic block to which predecessors from Preds are now pointing.
SplitCriticalEdge SplitCriticalEdge overloads
SplitEdge Split the edge connecting the specified blocks, and return the newly created basic block between From and To.
SplitIndirectBrCriticalEdges
SplitKnownCriticalEdge If it is known that an edge is critical, SplitKnownCriticalEdge can be called directly, rather than calling SplitCriticalEdge first.
SplitLandingPadPredecessors This method transforms the landing pad, OrigBB, by introducing two new basic blocks into the function. One of those new basic blocks gets the predecessors listed in Preds. The other basic block gets the remaining predecessors of OrigBB. The landingpad instruction OrigBB is clone into both of the new basic blocks. The new blocks are given the suffixes 'Suffix1' and 'Suffix2', and are returned in the NewBBs vector.
SplitModule Splits the module M into N linkable partitions. The function ModuleCallback is called N times passing each individual partition as the MPart argument. PreserveLocals: Split without externalizing locals. RoundRobin: Use round-robin distribution of functions to modules instead of the default name-hash-based one.
SplitMultiBrEdge Create a new intermediate target block for a callbr or switch edge.
SplitString SplitString - Split up the specified string according to the specified delimiters, appending the result fragments to the output list.
StoreIntToMemory Fills the StoreBytes bytes of memory starting from Dst with the integer held in IntVal.
StrCmpOptionName
StrCmpOptionPrefixes
StripDebugInfo Strip debug info in the module if it exists.
StripTemplateParameters If Name is the name of a templated function that includes template parameters, returns a substring of Name containing no template parameters. E.g.: StripTemplateParameters("foo<int>") = "foo".
StructuralHash StructuralHash overloads
StructuralHashWithDifferences Computes a structural hash of a given function, considering the structure and content of the function's instructions while allowing for selective ignoring of certain operands based on custom criteria. This hash can be used to identify functions that are structurally similar or identical, which is useful in optimizations, deduplication, or analysis tasks.
SubOverflow SubOverflow overloads
TableGenMain
TableGenParseFile Parse the TableGen file defined within the main buffer of the given SourceMgr. On success, populates the provided RecordKeeper with the parsed records and returns false. On failure, returns true.
TryToSimplifyUncondBranchFromEmptyBlock BB is known to contain an unconditional branch, and contains no instructions other than PHI nodes, potential debug intrinsics and the branch. If possible, eliminate BB by rewriting all the predecessors to branch to the successor block and return true. If we can't transform, return false.
UnrollAndJamLoop
UnrollLoop
UnrollRuntimeLoopRemainder
UpgradeARCRuntime Convert calls to ARC runtime functions to intrinsic calls and upgrade the old retain release marker to new module flag format.
UpgradeAttributes Upgrade attributes that changed format or kind.
UpgradeBitCastExpr This is an auto-upgrade for bitcast constant expression between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.
UpgradeBitCastInst This is an auto-upgrade for bitcast between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.
UpgradeCFIFunctionsMetadata Upgrade the cfi.functions metadata node by calculating and inserting the GUID for each function entry if it's missing.
UpgradeCallsToIntrinsic This is an auto-upgrade hook for any old intrinsic function syntaxes which need to have both the function updated as well as all calls updated to the new function. This should only be run in a post-processing fashion so that it can update all calls to the old function.
UpgradeDataLayoutString Upgrade the datalayout string by adding a section for address space pointers.
UpgradeDebugInfo Check the debug info version number, if it is out-dated, drop the debug info. Return true if module is modified.
UpgradeFunctionAttributes Correct any IR that is relying on old function attribute behavior.
UpgradeGlobalVariable This checks for global variables which should be upgraded. If it requires upgrading, returns a pointer to the upgraded variable.
UpgradeInlineAsmString
UpgradeIntrinsicCall This is the complement to the above, replacing a specific call to an intrinsic function with a call to the specified new function.
UpgradeIntrinsicFunction This is a more granular function that simply checks an intrinsic function for upgrading, and returns true if it requires upgrading. It may return null in NewFn if the all calls to the original intrinsic function should be transformed to non-function-call instructions.
UpgradeModuleFlags This checks for module flags which should be upgraded. It returns true if module is modified.
UpgradeNVVMAnnotations Convert legacy nvvm.annotations metadata to appropriate function attributes.
UpgradeOperandBundles Upgrade operand bundles (without knowing about their user instruction).
UpgradeSectionAttributes
UpgradeTBAANode If the given TBAA tag uses the scalar TBAA format, create a new node corresponding to the upgrade to the struct-path aware TBAA format. Otherwise return the TBAANode itself.
ViewGraph ViewGraph - Emit a dot graph, run 'dot', run gv on the postscript file, then cleanup. For use from the debugger.
WriteBitcodeToFile Write the specified module to the specified raw output stream.
WriteDOTGraphToFile
WriteGraph Writes graph into a provided Filename. If Filename is empty, generates a random one.
abs abs overloads
accumulate accumulate overloads
adaptNoAliasScopes Adapt the metadata for the specified instruction according to the provided mapping. This is normally used after cloning an instruction, when some noalias scopes needed to be cloned.
addAssumptions addAssumptions overloads
addClonedBlockToLoopInfo @}
addDiffRuntimeChecks
addEnumValues Helper which adds two underlying types of enumeration type. Implicit conversion to a common type is accepted.
addHash Feed version components of VT into hash builder HBuilder.
addInnerLoopsToHeadersMap
addLiveIns Adds registers contained in LiveRegs to the block live-in list of MBB. Does not add reserved registers.
addLocationToRemarks Add location info to ORE message.
addRuntimeChecks Add code that checks at runtime if the accessed arrays in PointerChecks overlap. Returns the final comparator value or NULL if no check is needed.
addStringMetadataToLoop addStringMetadataToLoop overloads
adjacent_find adjacent_find overloads
adjustKnownBitsForSelectArm Adjust Known for the given select Arm to include information from the select Cond.
adjustKnownFPClassForSelectArm Adjust Known for the given select Arm to include information from the select Cond.
adl_begin Returns the begin iterator to range using std::begin and function found through Argument-Dependent Lookup (ADL).
adl_end Returns the end iterator to range using std::end and functions found through Argument-Dependent Lookup (ADL).
adl_rbegin Returns the reverse-begin iterator to range using std::rbegin and function found through Argument-Dependent Lookup (ADL).
adl_rend Returns the reverse-end iterator to range using std::rend and functions found through Argument-Dependent Lookup (ADL).
adl_size Returns the size of range using std::size and functions found through Argument-Dependent Lookup (ADL).
adl_swap Swaps lhs with rhs using std::swap and functions found through Argument-Dependent Lookup (ADL).
alignAddr Aligns Addr to Alignment bytes, rounding up.
alignDown Returns the largest unsigned integer less than or equal to Value and is Skew mod Align. Align must be non-zero. Guaranteed to never overflow.
alignTo alignTo overloads
alignToPowerOf2 alignToPowerOf2 overloads
all_equal all_equal overloads
all_of Provide wrappers to std::all_of which take ranges instead of having to pass begin/end explicitly.
all_of_zip Compare two zipped ranges using the provided predicate (as last argument). Return true if all elements satisfy the predicate and false otherwise.
allocate_buffer Allocate a buffer of memory with the given size and alignment.
analyzeKnownBitsFromAndXorOr Using KnownBits LHS/RHS produce the known bits for logic op (and/xor/or).
annotateValueSite annotateValueSite overloads
any_cast any_cast overloads
any_of Provide wrappers to std::any_of which take ranges instead of having to pass begin/end explicitly.
appendLEB128
appendLoopsToWorklist appendLoopsToWorklist overloads
appendReversedLoopsToWorklist Utility that implements appending of loops onto a worklist given a range. It has the same behavior as appendLoopsToWorklist, but assumes the range of loops has already been reversed, so it processes loops in the given order.
appendToCompilerUsed Adds global values to the llvm.compiler.used list.
appendToGlobalCtors Append F to the list of global ctors of module M with the given Priority. This wraps the function in the appropriate structure and stores it along side other global constructors. For details see https://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable
appendToGlobalDtors Same as appendToGlobalCtors(), but for global dtors.
appendToUsed Adds global values to the llvm.used list.
append_range Wrapper function to append range R to container C.
append_values Appends all Values to container C.
applyDebugifyMetadata Add synthesized debug information to a module.
applyDebugifyMetadataToMachineFunction
applyFlowInference
applyProfMetadataIfEnabled
arrayRefFromStringRef Construct an array ref of bytes from a string ref.
array_pod_sort array_pod_sort overloads
array_pod_sort_comparator Adapt std::less<T> for array_pod_sort.
assumeAligned Treats the value 0 as a 1, so Align is always at least 1.
assumeBundleImpliesNonNull
attributesPermitTailCall Test if given that the input instruction is in the tail call position, if there is an attribute mismatch between the caller and the callee that will inhibit tail call optimizations. AllowDifferingSizes is an output parameter which, if forming a tail call is permitted, determines whether it's permitted only if the size of the caller's and callee's return types match exactly.
avoidZeroOffsetLandingPad
bf_begin Return a breadth-first iterator at the entry of G.
bf_end Return a past-the-end breadth-first iterator for G.
biasPhysReg
binary_search binary_search overloads
bind_back bind_back overloads
bind_front bind_front overloads
bit_cast Reinterpret the object representation of from as type To.
bit_ceil Returns the smallest integral power of two no smaller than Value if Value is nonzero. Returns 1 otherwise.
bit_ceil_constexpr Returns the smallest integral power of two no smaller than Value if Value is nonzero. Returns 1 otherwise.
bit_floor Returns the largest integral power of two no greater than Value if Value is nonzero. Returns 0 otherwise.
bit_width Returns the number of bits needed to represent Value if Value is nonzero. Returns 0 otherwise.
bit_width_constexpr Returns the number of bits needed to represent Value if Value is nonzero. Returns 0 otherwise.
breadth_first Return a range that visits G in breadth-first order.
breakLoopBackedge Remove the backedge of the specified loop. Handles loop nests and general loop structures subject to the precondition that the loop has no parent loop and has a single latch block. Preserves all listed analyses.
buildAssumeFromInst Build a call to llvm.assume to preserve informations that can be derived from the given instruction. If no information derived from I, this call returns null. The returned instruction is not inserted anywhere.
buildAtomicRMWValue Emit IR to implement the given atomicrmw operation on values in registers, returning the new value.
buildCmpXchgValue Emit IR to implement the given cmpxchg operation on values in registers, returning the new value.
buildDbgValueForSpill Clone a DBG_VALUE whose value has been spilled to FrameIndex.
buildModuleSummaryIndex Direct function to compute a ModuleSummaryIndex from a given module.
bypassSlowDivision This optimization identifies DIV instructions in a BB that can be profitably bypassed and carried out with a shorter, faster divide.
byteswap Reverses the bytes in the given integer value V.
calculateCXXStateForAsynchEH
calculateClrEHStateNumbers
calculateCountScale Calculate what to divide by to scale counts.
calculateDbgEntityHistory
calculateSEHStateForAsynchEH
calculateSEHStateNumbers
calculateWinCXXEHStateNumbers Analyze the IR in ParentFn and it's handlers to build WinEHFuncInfo, which describes the state numbers and tables used by __CxxFrameHandler3. This analysis assumes that WinEHPrepare has already been run.
callDefaultCtor callDefaultCtor overloads
call_once Execute the function specified as a parameter once.
callsGCLeafFunction Return true if this call calls a gc leaf function.
canConstantFoldCallTo canConstantFoldCallTo - Return true if its even possible to fold a call to the specified function.
canConvertToMinOrMaxIntrinsic Check if the values in VL are select instructions that can be converted to a min or max (vector) intrinsic. Returns the intrinsic ID, if such a conversion is possible, together with a bool indicating whether all select conditions are only used by the selects. Otherwise return Intrinsic::not_intrinsic.
canCreatePoison Returns true if Reg can create poison from non-poison operands.
canCreateUndefOrPoison canCreateUndefOrPoison overloads
canHoistLoad Returns true if it is legal to hoist LI out of CurLoop. This is the load-specific subset of canSinkOrHoistInst it rejects volatile or ordered loads, allows constant-memory / invariant.load / invariant.start- dominated loads unconditionally, and otherwise queries MSSA for an in-loop clobber. TargetExecutesOncePerLoop has the same meaning as in canSinkOrHoistInst (set to true when hoisting to the preheader).
canIgnoreSNaN Returns true if the possibility of a signaling NaN can be safely ignored.
canIgnoreSignBitOfNaN Return true if the sign bit of the FP value can be ignored by the user when the value is NaN.
canIgnoreSignBitOfZero Return true if the sign bit of the FP value can be ignored by the user when the value is zero.
canInstructionHaveMMRAs
canLowerMemCpyFamily Matcher for memcpy-like instructions. For non-zero lengths, MemOps contains the load/store types to emit.
canParallelizeReductionWhenUnrolling
canPeel
canPeelLastIteration Returns true if the last iteration of L can be peeled off. It makes sure the loop exit condition can be adjusted when peeling and that the loop executes at least 2 iterations.
canRenameComdatFunc Check if we can safely rename this Comdat function. Instances of the same comdat function may have different control flows thus can not share the same counter variable.
canReplaceOperandWithVariable Given an instruction, is it legal to set operand OpIdx to a non-constant value?
canReplacePointersIfEqual Returns true if a pointer value From can be replaced with another pointer value To if they are deemed equal through some means (e.g. information from conditions). NOTE: The current implementation allows replacement in Icmp and PtrToInt instructions, as well as when we are replacing with a null pointer. Additionally it also allows replacement of pointers when both pointers have the same underlying object.
canReplacePointersInUseIfEqual
canReplaceReg Check if DstReg can be replaced with SrcReg depending on the register constraints.
canReturn Return true if there is at least a path through which F can return, false if there is no such path.
canRoundingModeBe Returns true if the rounding mode RM may be QRM at compile time or at run time.
canSimplifyInvokeNoUnwind
canSinkOrHoistInst Returns true if is legal to hoist or sink this instruction disregarding the possible introduction of faults. Reasoning about potential faulting instructions is the responsibility of the caller since it is challenging to do efficiently from within this routine. TargetExecutesOncePerLoop is true only when it is guaranteed that the target executes at most once per execution of the loop body. This is used to assess the legality of duplicating atomic loads. Generally, this is true when moving out of loop and not true when moving into loops. If ORE is set use it to emit optimization remarks.
canTrackArgumentsInterprocedurally Determine if the values of the given function's arguments can be tracked interprocedurally. The value of an argument can be tracked if the function has local linkage and its address is not taken.
canTrackGlobalVariableInterprocedurally Determine if the value maintained in the given global variable can be tracked interprocedurally. A value can be tracked if the global variable has local linkage and is only used by non-volatile loads and stores.
canTrackReturnsInterprocedurally Determine if the values of the given function's returns can be tracked interprocedurally. Return values can be tracked if the function has an exact definition and it doesn't have the "naked" attribute. Naked functions may contain assembly code that returns untrackable values.
canUseDebuginfod Returns false if a debuginfod lookup can be determined to have no chance of succeeding.
canVectorizeStructTy Returns true if StructTy is an unpacked literal struct where all elements are scalars that can be used as vector element types.
canVectorizeTy Returns true if Ty is a valid vector element type, void, or an unpacked literal struct where all elements are valid vector element types. Note: Even if a type can be vectorized that does not mean it is valid to do so in all cases. For example, a vectorized struct (as returned by toVectorizedTy) does not perform (de)interleaving, so it can't be used for vectorizing loads/stores.
cannotBeMaxInLoop Returns true if S is defined and never is equal to signed/unsigned max.
cannotBeMinInLoop Returns true if S is defined and never is equal to signed/unsigned min.
cannotBeNegativeZero Return true if we can prove that the specified FP value is never equal to -0.0. Users should use caution when considering PreserveSign denormal-fp-math.
cannotBeOrderedLessThanZero Return true if we can prove that the specified FP value is either NaN or never less than -0.0.
cannotOrderStrictlyGreater Returns true if all values in LHS must be less than or equal to those in RHS. That is, the comparison fcmp ogt LHS, RHS will always return false.
cannotOrderStrictlyGreaterEq Returns true if all values in LHS must be less than those in RHS. That is, the comparison fcmp oge LHS, RHS will always return false.
cannotOrderStrictlyLess Returns true if all values in LHS must be greater than or equal to those in RHS. That is, the comparison fcmp olt LHS, RHS will always return false.
cannotOrderStrictlyLessEq Returns true if all values in LHS must be greater than to those in RHS. That is, the comparison fcmp ole LHS, RHS will always return false.
cantFail cantFail overloads
capacity_in_bytes capacity_in_bytes overloads
capturesAddress
capturesAddressIsNullOnly
capturesAll
capturesAnyProvenance
capturesAnything
capturesFullProvenance
capturesNothing
capturesReadProvenanceOnly
caseFoldingDjbHash Computes the Bernstein hash after folding the input according to the Dwarf 5 standard case folding rules.
cast cast overloads
cast_if_present cast_if_present overloads
cast_or_null cast_or_null overloads
ceilDiv Returns the ceiling of LHS divided by RHS.
center_justify center_justify - add spaces before and after string so total output is Width characters. If Str is larger that Width, full string is written with no padding.
cgdata_category
changeToCall This function converts the specified invoke into a normal call.
changeToInvokeAndSplitBasicBlock Convert the CallInst to InvokeInst with the specified unwind edge basic block. This also splits the basic block where CI is located, because InvokeInst is a terminator instruction. Returns the newly split basic block.
changeToUnreachable Insert an unreachable instruction before the specified instruction, making it and the rest of the code in the block dead.
checkDebugInfoMetadata Check original debug information after a pass.
checkForCycles
checkGEPType
checkIfAlreadyInstrumented Check if module has flag attached, if not add the flag.
checkNotNull Calls llvm_unreachable if Pointer is null, otherwise returns the pointer as is.
checkedAdd Add two signed integers LHS and RHS.
checkedAddUnsigned Add two unsigned integers LHS and RHS.
checkedMul Multiply two signed integers LHS and RHS.
checkedMulAdd Multiply A and B, and add C to the resulting product.
checkedMulAddUnsigned Multiply unsigned integers A and B, and add C to the resulting product.
checkedMulUnsigned Multiply two unsigned integers LHS and RHS.
checkedSub Subtract two signed integers LHS and RHS.
children Return a range over the children of node G.
children_edges Return a range over the outgoing child edges of node G.
clampStateAndIndicateChange Helper function to clamp a state S of type StateType with the information in R and indicate/return if S did change (as-in update is required to be run again).
classifyEHPersonality See if the given exception handling personality function is one that we understand. If so, return a description of it; otherwise return Unknown.
cleanUpTempFiles
cloneAndAdaptNoAliasScopes cloneAndAdaptNoAliasScopes overloads
cloneLoop Recursively clone the specified loop and all of its children, mapping the blocks with the specified map.
cloneLoopWithPreheader Clones a loop OrigLoop. Returns the loop and the blocks in Blocks.
cloneNoAliasScopes Duplicate the specified list of noalias decl scopes. The 'Ext' string is added as an extension to the name. Afterwards, the ClonedScopes contains the mapping of the original scope MDNode onto the cloned scope. Be aware that the cloned scopes are still part of the original scope domain.
collectChildrenInLoop Does a BFS from a given node to all of its children inside a given loop. The returned vector of basic blocks includes the starting point.
collectDebugInfoMetadata Collect original debug information before a pass.
collectGlobalObjectNameStrings Given a vector of strings (names of global objects like functions or, virtual tables) NameStrs, the method generates a combined string Result that is ready to be serialized. The Result string is comprised of three fields: The first field is the length of the uncompressed strings, and the the second field is the length of the zlib-compressed string. Both fields are encoded in ULEB128. If doCompress is false, the third field is the uncompressed strings; otherwise it is the compressed string. When the string compression is off, the second field will have value zero.
collectPGOFuncNameStrings Produce Result string with the same format described above. The input is vector of PGO function name variables that are referenced. The global variable element in 'NameVars' is a string containing the pgo name of a function. See createPGOFuncNameVar that creates these global variables.
collectParametricTerms Collect parametric terms occurring in step expressions (first step of delinearization).
collectPossibleValues Enumerates all possible immediate values of V and inserts them into the set Constants. If AllowUndefOrPoison is false, it fails when V may contain undef/poison elements. Returns true if the result is complete. Otherwise, the result is incomplete (more than MaxCount values). NOTE: The constant values are not distinct.
collectUsedGlobalVariables Given "llvm.used" or "llvm.compiler.used" as a global name, collect the initializer elements of that global in a SmallVector and return the global itself.
collectVTableStrings
colorEHFunclets If an EH funclet personality is in use (see isFuncletEHPersonality), this will recompute which blocks are in which funclet. It is possible that some blocks are in multiple funclets. Consider this analysis to be expensive.
combineAAMetadata Combine metadata of two instructions, where instruction J is a memory access that has been merged into K. This will intersect alias-analysis metadata, while preserving other known metadata.
combineMetadataForCSE Combine the metadata of two instructions so that K can replace J. This specifically handles the case of CSE-like transformations. Some metadata can only be kept if K dominates J. For this to be correct, K cannot be hoisted.
commonAlignment Returns the alignment that satisfies both alignments. Same semantic as MinAlign.
compareLoops
compareVectors
computeAccessFunctions Return in Subscripts the access functions for each dimension in Sizes (third step of delinearization).
computeAndAddLiveIns Convenience function combining computeLiveIns() and addLiveIns().
computeArchiveRelativePath
computeConstantRange Determine the possible constant range of an integer or vector of integer value. This is intended as a cheap, non-recursive check.
computeConstantRangeIncludingKnownBits Combine constant ranges from computeConstantRange() and computeKnownBits().
computeDeadSymbolsAndUpdateIndirectCalls Compute all the symbols that are "dead": i.e these that can't be reached in the graph from any of the given symbols listed in GUIDPreservedSymbols. Non-prevailing symbols are symbols without a prevailing copy anywhere in IR and are normally dead, isPrevailing predicate returns status of symbol. Also update call edges for indirect calls to local functions added from SamplePGO when needed.
computeDeadSymbolsWithConstProp Compute dead symbols and run constant propagation in combined index after that.
computeEHOnlyBlocks Compute a list of blocks that are only reachable via EH paths.
computeExpressionSize
computeFunctionBodyMemoryAccess Returns the memory access properties of this copy of the function.
computeKnownBits computeKnownBits overloads
computeKnownBitsFromContext Merge bits known from context-dependent facts into Known.
computeKnownBitsFromRangeMetadata Compute known bits from the range metadata. KnownZero the set of bits that are known to be zero KnownOne the set of bits that are known to be one
computeKnownFPClass computeKnownFPClass overloads
computeKnownFPSignBit Return false if we can prove that the specified FP value's sign bit is 0. Return true if we can prove that the specified FP value's sign bit is 1. Otherwise return std::nullopt.
computeLTOCacheKey Computes a unique hash for the Module considering the current list of export/import and other global analysis results.
computeLiveIns Computes registers live-in to MBB assuming all of its successors live-in lists are up-to-date. Puts the result into the given LivePhysReg instance LiveRegs.
computeMachineUniformityInfo Compute uniformity information for a Machine IR function.
computeMinimumValueSizes Compute a map of integer instructions to their minimum legal type size.
computeOverflowForSignedAdd This version also leverages the sign bit of Add if known.
computeOverflowForSignedMul
computeOverflowForSignedSub
computeOverflowForUnsignedAdd
computeOverflowForUnsignedMul
computeOverflowForUnsignedSub
computePeelCount
computeRemLatency
computeUnrollCount
computeValueLLTs computeValueLLTs - Given an LLVM IR type, compute a sequence of LLTs that represent all the individual underlying non-aggregate types that comprise it.
concat Returns a concatenated range across two or more ranges. Does not modify the ranges.
concatenateVectors Concatenate a list of vectors.
const_mi_bundle_ops
constrainOperandRegClass constrainOperandRegClass overloads
constrainRegToClass Try to constrain Reg to the specified register class. If this fails, create a new virtual register in the correct class.
constrainSelectedInstRegOperands Mutate the newly-selected instruction I to constrain its (possibly generic) virtual register operands to the instruction's register class. This could involve inserting COPYs before (for uses) or after (for defs). This requires the number of operands to match the instruction description.
consumeError Consume a Error without doing anything. This method should be used only where an error can be considered a reasonable and expected return value.
consumeSignedInteger Parse a signed integer from the front of Str using Radix into Result.
consumeUnsignedInteger Parse an unsigned integer from the front of Str using Radix into Result.
containsIrreducibleCFG target CFG with begin()/end() iterator interfaces. 3) LI must be a valid LoopInfoBase that contains up-to-date loop analysis information of the CFG.
convertCtxProfToYaml
convertExceptionBehaviorToStr For any ExceptionBehavior enumerator, returns a string valid as input in constrained intrinsic exception behavior metadata.
convertRoundingModeToStr For any RoundingMode enumerator, returns a string valid as input in constrained intrinsic rounding mode metadata.
convertStrToExceptionBehavior Returns a valid ExceptionBehavior enumerator when given a string valid as input in constrained intrinsic exception behavior metadata.
convertStrToRoundingMode Returns a valid RoundingMode enumerator when given a string that is valid as input in constrained intrinsic rounding mode metadata.
convertToCamelFromSnakeCase Converts a string from snake-case to camel-case by replacing all occurrences of '_' followed by a lowercase letter with the letter in uppercase. Optionally allow capitalization of the first letter (if it is a lowercase letter)
convertToDeclaration Converts value GV to declaration, or replaces with a declaration if it is an alias. Returns true if converted, false if replaced.
convertToSnakeFromCamelCase Converts a string from camel-case to snake-case by replacing all uppercase letters with '_' followed by the letter in lowercase, except if the uppercase letter is the first character of the string.
convertUTF16ToUTF8String convertUTF16ToUTF8String overloads
convertUTF32ToUTF8String convertUTF32ToUTF8String overloads
convertUTF8Sequence Convert the first UTF8 sequence in the given source buffer to a UTF32 code point.
convertUTF8ToUTF16String Converts a UTF-8 string into a UTF-16 string with native endianness.
convertUsersOfConstantsToInstructions Replace constant expressions users of the given constants with instructions. Return whether anything was changed.
convertWideToUTF8 Converts a wide string view to a UTF-8 encoded std::string.
copy Copy the elements of Range into the output range starting at Out.
copyMetadataForLoad Copy the metadata from the source instruction to the destination (the replacement for the source instruction).
copyModuleAttrToFunctions Copies module attributes to the functions in the module. Currently only effects ARM, Thumb and AArch64 targets. Supported attributes: - branch-target-enforcement - branch-protection-pauth-lr - guarded-control-stack - sign-return-address - sign-return-address-with-bkey
copyNonnullMetadata Copy a nonnull metadata node to a new load instruction.
copyRangeMetadata Copy a range metadata node to a new load instruction.
copy_if Provide wrappers to std::copy_if which take ranges instead of having to pass begin/end explicitly.
count Wrapper function around std::count to count the number of times an element Element occurs in the given range Range.
count_if Wrapper function around std::count_if to count the number of times an element satisfying a given predicate occurs in a range.
countl_one Count the number of ones from the most significant bit to the first zero bit.
countl_zero Count number of 0's from the most significant bit to the least stopping at the first 1.
countl_zero_constexpr Count number of 0's from the most significant bit to the least stopping at the first 1.
countr_one Count the number of ones from the least significant bit to the first zero bit.
countr_zero Count number of 0's from the least significant bit to the most stopping at the first 1.
countr_zero_constexpr Count number of 0's from the least significant bit to the most stopping at the first 1.
crc32
createARMELFStreamer
createAggressiveAntiDepBreaker
createAlwaysInlinerLegacyPass Create a legacy pass manager instance of a pass to inline and remove functions marked as "always_inline".
createAnyOfReduction Create a reduction of the given vector Src for a reduction of kind RecurKind::AnyOf. The start value of the reduction is InitVal.
createAsmStreamer Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler.
createAtomicExpandLegacyPass AtomicExpandPass - At IR level this pass replace atomic instructions with __atomic_* library calls, or target specific instruction which implement the same semantics in a way which better fits the target backend.
createBURRListDAGScheduler createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler.
createBarrierNoopPass createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager.
createBasicAAWrapperPass
createBasicBlockMatchingAndInferencePass createBasicBlockMatchingAndInferencePass - This pass enables matching and inference when using propeller.
createBasicBlockPathCloningPass
createBasicBlockSectionsPass createBasicBlockSections Pass - This pass assigns sections to machine basic blocks and is enabled with -fbasic-block-sections.
createBasicBlockSectionsProfileReaderWrapperPass
createBasicRegisterAllocator BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework.
createBitMaskForGaps Create a mask that filters the members of an interleave group where there are gaps.
createBitcodeWriterPass Create and return a pass that writes the module to the specified ostream. Note that this pass is designed for use with the legacy pass manager.
createBranchFolder createBranchFolder - Create the BranchFolder pass, optionally disabling the common-code hoisting and/or basic-block reordering sub-phases. Default enables both (full BranchFolding behavior).
createBreakCriticalEdgesPass
createBreakFalseDepsLegacyPass Creates Break False Dependencies pass.
createCFGSimplificationPass
createCFGuardLongjmpPass Creates CFGuard longjmp target identification pass.
createCFGuardPass Insert Control Flow Guard checks on indirect function calls.
createCFIFixupLegacy Creates CFI Fixup pass.
createCFIInstrInserterLegacy Creates CFI Instruction Inserter pass.
createCGSCCToFunctionPassAdaptor A function to deduce a function pass type and wrap it in the templated adaptor.
createCOFFAsmParser
createCOFFMasmParser
createCallGraphDOTPrinterPass
createCallGraphViewerPass
createCallMatchingInvoke Create a call that matches the invoke II in terms of arguments, attributes, debug information, etc. The call is not placed in a block and it will not have a name. The invoke instruction is not removed, nor are the uses replaced by the new call.
createCanonicalizeFreezeInLoopsPass
createCheckDebugMachineModuleLegacyPass Creates MIR Check Debug pass.
createCodeGenPrepareLegacyPass createCodeGenPrepareLegacyPass - Transform the code to expose more pattern matching during instruction selection.
createComplexDeinterleavingPass This pass implements generation of target-specific intrinsics to support handling of complex number arithmetic
createConstantHoistingPass
createCopyConstrainDAGMutation
createCriticalAntiDepBreaker
createCtxProfFromYAML
createCustomBehaviour
createDAGLinearizer createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order.
createDXContainerStreamer
createDXILResourceBindingWrapperPassPass
createDXILResourceTypeWrapperPassPass
createDXILResourceWrapperPassPass
createDarwinAsmParser
createDeadArgEliminationPass createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function.
createDeadCodeEliminationPass
createDeadStoreEliminationPass
createDebugifyMachineModulePass Creates MIR Debugify pass.
createDefaultPBQPRegisterAllocator PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator.
createDefaultScheduler createDefaultScheduler - This creates an instruction scheduler appropriate for the target.
createDependenceAnalysisWrapperPass createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass.
createDevelopmentModeAdvisorAnalysisLegacy
createDevelopmentModeAdvisorProvider
createDevelopmentModePriorityAdvisorAnalysis
createDevelopmentModePriorityAdvisorProvider
createDevirtSCCRepeatedPass A function to deduce a function pass type and wrap it in the templated adaptor.
createDomOnlyPrinterWrapperPassPass
createDomOnlyViewerWrapperPassPass
createDomPrinterWrapperPassPass
createDomViewerWrapperPassPass
createDwarfEHPass createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation. Required if using dwarf exception handling.
createEHContGuardTargetsLegacy Creates Windows EH Continuation Guard target identification pass.
createELFAsmParser
createELFStreamer
createEarlyCSEPass
createExpandIRInstsPass
createExpandReductionsPass This pass expands the reduction intrinsics into sequences of shuffles.
createExpandVariadicsPass
createExternalAAWrapperPass A wrapper pass around a callback which can be used to populate the AAResults in the AAResultsWrapperPass from an external AA.
createFastDAGScheduler createFastDAGScheduler - This creates a "fast" scheduler.
createFastRegisterAllocator FastRegisterAllocation Pass - This pass register allocates as fast as possible. It is best suited for debug code where live ranges are short.
createFileError createFileError overloads
createFixIrreduciblePass
createFlattenCFGPass
createFreeMachineFunctionPass This pass frees the memory occupied by the MachineFunction.
createFunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor overloads
createFunctionToMachineFunctionPassAdaptor
createGCEmptyBasicBlocksLegacyPass createGCEmptyBasicblocksPass - Empty basic blocks (basic blocks without real code) appear as the result of optimization passes removing instructions. These blocks confuscate profile analysis (e.g., basic block sections) since they will share the address of their fallthrough blocks. This pass garbage-collects such basic blocks.
createGCLoweringPass GCLowering Pass - Used by gc.root to perform its default lowering operations.
createGOFFAsmParser
createGOFFObjectWriter Construct a new GOFF writer instance.
createGOFFStreamer
createGVNPass Create a legacy GVN pass.
createGlobalDCEPass
createGlobalMergeFuncPass This pass performs merging similar functions globally.
createGlobalMergePass GlobalMerge - This pass merges internal (by default) globals into structs to enable reuse of a base pointer by indexed addressing modes. It can also be configured to focus on size optimizations only.
createGlobalsAAWrapperPass
createGraphFilename
createGreedyRegisterAllocator Greedy register allocation pass - This pass implements a global register allocator for optimized builds.
createHardwareLoopsLegacyPass Create Hardware Loop pass.
createHybridListDAGScheduler createHybridListDAGScheduler - This creates a bottom up register pressure aware list scheduler that make use of latency information to avoid stalls for long latency instructions in low register pressure mode. In high register pressure mode it schedules to reduce register pressure.
createILPListDAGScheduler createILPListDAGScheduler - This creates a bottom up register pressure aware list scheduler that tries to increase instruction level parallelism in low register pressure mode. In high register pressure mode it schedules to reduce register pressure.
createIVUsersPass
createIfConverter
createImmutableModuleSummaryIndexWrapperPass
createIndirectBrExpandPass
createInferAddressSpacesPass
createInlineAsmPreparePass
createInlineSpiller Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap.
createInsertCodePrefetchPass createInsertCodePrefetchPass - This pass enables inserting code prefetch hints based on the basic block section profile.
createInstSimplifyLegacyPass
createInstrPostProcess
createInstructionCombiningPass
createInstrumentManager
createInterleaveMask Create an interleave shuffle mask.
createInterleavedAccessPass InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics.
createInterleavedLoadCombinePass InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass
createJMCInstrumenterPass JMC instrument pass.
createKCFIPass Lowers KCFI operand bundles for indirect calls.
createLCSSAPass
createLFIAsmParser
createLICMPass
createLazyValueInfoPass createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.
createLibcallLoweringInfoWrapper
createLoadClusterDAGMutation If ReorderWhileClustering is set to true, no attempt will be made to reduce reordering due to store clustering.
createLoadStoreVectorizerPass Create a legacy pass manager instance of the LoadStoreVectorizer pass
createLoopDataPrefetchPass
createLoopSimplifyPass
createLoopStrengthReducePass
createLoopTermFoldPass
createLoopUnrollPass
createLowerAtomicPass
createLowerEmuTLSPass LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model.
createLowerGlobalDtorsLegacyPass
createLowerInvokePass
createLowerSwitchPass
createMCAsmParser Create an MCAsmParser instance for parsing assembly similar to gas syntax
createMCMasmParser Create an MCAsmParser instance for parsing Microsoft MASM-style assembly
createMCRelocationInfo
createMCSymbolizer
createMIR2VecPrinterLegacyPass MIR2VecPrinter pass - This pass prints out the MIR2Vec embeddings for machine functions, basic blocks and instructions.
createMIR2VecVocabPrinterLegacyPass MIR2VecVocabPrinter pass - This pass prints out the MIR2Vec vocabulary contents to the given stream as a debugging tool.
createMIRAddFSDiscriminatorsPass Add Flow Sensitive Discriminators. PassNum specifies the sequence number of this pass (starting from 1).
createMIRParser This function is another interface to the MIR serialization format parser.
createMIRParserFromFile This function is the main interface to the MIR serialization format parser.
createMIRProfileLoaderPass Read Flow Sensitive Profile.
createMachOStreamer
createMachineBlockHashInfoPass createMachineBlockHashInfoPass - This pass computes basic block hashes.
createMachineCopyPropagationPass
createMachineFunctionPrinterPass MachineFunctionPrinter pass - This pass prints out the machine function to the given stream as a debugging tool.
createMachineFunctionSplitterPass createMachineFunctionSplitterPass - This pass splits machine functions using profile information.
createMachineOutlinerPass This pass performs outlining on machine instructions directly before printing assembly.
createMachineVerifierPass createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness.
createMacroFusionDAGMutation Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific predicate functions. shouldScheduleAdjacent will be true if any of the provided predicates are true. If BranchOnly is true, only branch instructions with one of their predecessors will be fused.
createMemCpyLoopKnownSize Emit a loop implementing the semantics of an llvm.memcpy whose size is a compile time constant. Loop is inserted at InsertBefore.
createMemCpyLoopUnknownSize Emit a loop implementing the semantics of llvm.memcpy where the size is not a compile-time constant. Loop will be inserted at InsertBefore.
createMinMaxOp Returns a Min/Max operation corresponding to MinMaxRecurrenceKind. The Builder's fast-math-flags must be set to propagate the expected values.
createModuleSummaryIndexWrapperPass
createModuleToFunctionPassAdaptor A function to deduce a function pass type and wrap it in the templated adaptor.
createModuleToPostOrderCGSCCPassAdaptor A function to deduce a function pass type and wrap it in the templated adaptor.
createNaryReassociatePass
createNullStreamer Create a dummy machine code streamer, which does nothing. This is useful for timing the assembler front end.
createObjCARCContractPass
createOrderedReduction createOrderedReduction overloads
createPBQPRegisterAllocator Create a PBQP register allocator instance.
createPGOFuncNameMetadata Create the PGOFuncName meta data if PGOFuncName is different from function's raw name. This should only apply to internal linkage functions declared by users only. TODO: Update all callers to 'createPGONameMetadata' and deprecate this function.
createPGOFuncNameVar Create and return the global variable for function name used in PGO instrumentation. FuncName is the IRPGO function name (returned by getIRPGOFuncName) for LLVM IR instrumentation and PGO function name (returned by getPGOFuncName) for front-end instrumentation.
createPGONameMetadata Create the PGOName metadata if a global object's PGO name is different from its mangled name. This should apply to local-linkage global objects only.
createPHIsForSplitLoopExit When a loop exit edge is split, LCSSA form may require new PHIs in the new exit block. This function inserts the new PHIs, as needed. Preds is a list of preds inside the loop, SplitBB is the new loop exit block, and DestBB is the old loop exit, now the successor of SplitBB.
createPartiallyInlineLibCallsPass
createPostDomOnlyPrinterWrapperPassPass
createPostDomOnlyViewerWrapperPassPass
createPostDomPrinterWrapperPassPass
createPostDomTree
createPostDomViewerWrapperPassPass
createPostInlineEntryExitInstrumenterPass
createPreISelIntrinsicLoweringPass This pass lowers the @llvm.load.relative and @llvm.objc.* intrinsics to instructions. This is unsafe to do earlier because a pass may combine the constant initializer into the load, which may result in an overflowing evaluation.
createPrintFunctionPass Create and return a pass that prints functions to the specified raw_ostream as they are processed.
createPrintMIRPass MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format.
createPrintModulePass Create and return a pass that writes the module to the specified raw_ostream.
createPrivateGlobalForString
createProfileFileNameVar
createProfileSamplingVar
createPrologEpilogInserterPass
createPromoteMemoryToRegisterPass
createPseudoProbeInserter This pass inserts pseudo probe annotation for callsite profiling.
createReassociatePass
createRegAllocScoringPass When learning an eviction policy, extract score(reward) information, otherwise this does nothing
createRegToMemWrapperPass
createRegUsageInfoCollector This pass is executed POST-RA to collect which physical registers are preserved by given machine function.
createRegUsageInfoPropPass Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass.
createRegionInfoPass
createRegionOnlyPrinterPass
createRegionOnlyViewerPass
createRegionPrinterPass
createRegionViewerPass
createReleaseModeAdvisorAnalysisLegacy
createReleaseModeAdvisorProvider
createReleaseModeModelRunner Helper to construct the appropriate MLModelRunner in release mode: 1. InteractiveModelRunner if an interactive channel is specified. 2. EmitCModelRunner if MLIR lowering is enabled. 3. ReleaseModeModelRunner<CompiledModelType> otherwise.
createReleaseModePriorityAdvisorAnalysis
createReleaseModePriorityAdvisorProvider
createReplaceWithVeclibLegacyPass
createReplicatedMask Create a mask with replicated elements.
createResetMachineFunctionPass This pass resets a MachineFunction when it has the FailedISel property as if it was just created. If EmitFallbackDiag is true, the pass will emit a DiagnosticInfoISelFallback for every MachineFunction it resets. If AbortOnFailedISel is true, abort compilation instead of resetting.
createRuntimeLibraryInfoWrapperPass
createSCEVAAWrapperPass Creates an instance of SCEVAAWrapperPass.
createSPIRVObjectWriter Construct a new SPIR-V writer instance.
createSPIRVStreamer
createSROAPass
createSafeStackPass This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities.
createSafepointIRVerifierPass Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs.
createSanitizerCtor Creates sanitizer constructor function.
createSanitizerCtorAndInitFunctions Creates sanitizer constructor function, and calls sanitizer's init function from it.
createScalarizeMaskedMemIntrinLegacyPass
createScalarizerPass Create a legacy pass manager instance of the Scalarizer pass
createSchedLive Create the standard converging machine scheduler. This will be used as the default scheduler if the target does not set a default. Adds default DAG mutations.
createSchedPostRA Create a generic scheduler with no vreg liveness or DAG mutation passes.
createScopedNoAliasAAWrapperPass
createSelectOptimizePass This pass converts conditional moves to conditional jumps when profitable.
createSeparateConstOffsetFromGEPPass
createSequentialMask Create a sequential shuffle mask.
createShadowStackGCLoweringPass ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC. Only runs on functions which opt in to the shadow stack collector.
createSimpleReduction createSimpleReduction overloads
createSinkingPass
createSjLjEHPreparePass createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow.
createSourceListDAGScheduler createSourceListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible.
createSpeculativeExecutionIfHasBranchDivergencePass
createSpeculativeExecutionPass
createStackFrameLayoutAnalysisPass StackFramePrinter pass - This pass prints out the machine function's stack frame to the given stream as a debugging tool.
createStackProtectorPass createStackProtectorPass - This pass adds stack protectors to functions.
createStaticDataAnnotatorLegacyPass createStaticDataAnnotatorPASS - This is a module pass that reads from StaticDataProfileInfoWrapperPass and annotates the section prefix of global variables.
createStaticDataSplitterLegacyPass createStaticDataSplitterPass - This is a machine-function pass that categorizes static data hotness using profile information.
createStoreClusterDAGMutation If ReorderWhileClustering is set to true, no attempt will be made to reduce reordering due to store clustering.
createStraightLineStrengthReducePass
createStrideMask Create a stride shuffle mask.
createStringError createStringError overloads
createStringErrorV
createStripConvergenceIntrinsicsPass
createStripDebugMachineModuleLegacyPass Creates MIR Strip Debug pass.
createStructurizeCFGPass When SkipUniformRegions is true the structizer will not structurize regions that only contain uniform branches.
createTailCallEliminationPass
createTargetTransformInfoWrapperPass Create an analysis pass wrapper around a TTI object.
createTriggerCrashFunctionPass
createTypeBasedAAWrapperPass
createTypePromotionLegacyPass Create IR Type Promotion pass.
createUnaryMask Given a shuffle mask for a binary shuffle, create the equivalent shuffle mask assuming both operands are identical. This assumes that the unary shuffle will use elements from operand 0 (operand 1 will be unused).
createUnifyLoopExitsPass
createUnpackMachineBundlesLegacy
createUnreachableBlockEliminationPass createUnreachableBlockEliminationPass - The LLVM code generator does not work well with unreachable basic blocks (what live ranges make sense for a block that cannot be reached?). As such, a code generator should either not instruction select unreachable blocks, or run this pass as its last LLVM modifying pass to clean up blocks that are not reachable from the entry block.
createVLIWDAGScheduler createVLIWDAGScheduler - Scheduler for VLIW targets. This creates top down DFA driven list scheduler with clustering heuristic to control register pressure.
createVerifierPass
createVirtRegRewriter
createWasmAsmParser
createWasmDwoObjectWriter
createWasmEHPass createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme.
createWasmObjectWriter Construct a new Wasm writer instance.
createWasmStreamer
createWideIV Widen Induction Variables - Extend the width of an IV to cover its widest uses.
createWinCOFFDwoObjectWriter
createWinCOFFObjectWriter Construct a new Win COFF writer instance.
createWinEHPass createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities.
createWindowsSecureHotPatchingPass Creates Windows Secure Hot Patch pass.
createXCOFFAsmParser
createXCOFFObjectWriter
dbgs dbgs() - This returns a reference to a raw_ostream for debugging messages. If debugging is disabled it returns errs(). Use it like: dbgs() << "foo" << "bar";
deallocate_buffer Deallocate a buffer of memory with the given size and alignment.
debugString
declareSanitizerInitFunction
decodeBase64
decodeMaybeAlign Dual operation of the encode function above.
decodePackedBCD
decodeSLEB128 Utility function to decode a SLEB128 value.
decodeSLEB128AndInc
decodeULEB128 Utility function to decode a ULEB128 value.
decodeULEB128AndInc
decodeULEB128AndIncUnsafe
decomposeBitTest Decompose an icmp into the form ((X & Mask) pred C) if possible. Unless AllowNonZeroC is true, C will always be 0. If DecomposeAnd is specified, then, for equality predicates, this will decompose bitmasking via and.
decomposeBitTestICmp Decompose an icmp into the form ((X & Mask) pred C) if possible. Unless AllowNonZeroC is true, C will always be 0. If DecomposeAnd is specified, then, for equality predicates, this will decompose bitmasking via and.
decomposeLinearExpression Decompose a pointer into a linear expression. This may look through multiple GEPs.
def_chain
deleteDeadLoop This function deletes dead loops. The caller of this function needs to guarantee that the loop is infact dead. The function requires a bunch or prerequisites to be present: - The loop needs to be in LCSSA form - The loop needs to have a Preheader - A unique dedicated exit block must exist
delinearize Split this SCEVAddRecExpr into two vectors of SCEVs representing the subscripts and sizes of an array access.
delinearizeFixedSizeArray Split this SCEVAddRecExpr into two vectors of SCEVs representing the subscripts and sizes of an access to a fixed size array. This is a special case of delinearization for fixed size arrays.
demangle Attempt to demangle a string using different demangling schemes. The function uses heuristics to determine which demangling scheme to use.
denormalModeKindName Return the name used for the denormal handling mode used by the expected names from the denormal-fp-math attribute.
denormalizeForPostIncUse Denormalize S to be post-increment for all loops present in Loops.
depth_first Return a range that visits G in depth-first order.
depth_first_ext Return a range that visits G in depth-first order using visited set S.
describeFuzzerAggregateOps
describeFuzzerControlFlowOps
describeFuzzerFloatOps
describeFuzzerIntOps Getters for the default sets of operations, per general category. @{
describeFuzzerOtherOps
describeFuzzerPointerOps
describeFuzzerUnaryOperations
describeFuzzerVectorOps
deserializeSectionKind Convert a value read from an index section to the internal representation.
detachDeadBlocks Replace contents of every block in BBs with single unreachable instruction. If Updates is specified, collect all necessary DT updates into this vector. If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.
df_begin Return a depth-first iterator at the entry of G.
df_end Return a past-the-end depth-first iterator for G.
df_ext_begin Return an external-storage depth-first iterator at the entry of G.
df_ext_end Return a past-the-end external-storage depth-first iterator for G.
diagnoseDontCall
disableAutoConversion
divideCeil divideCeil overloads
divideCeilSigned Returns the integer ceil(Numerator / Denominator). Signed version. Overflow is explicitly forbidden with an assert.
divideFloorSigned Returns the integer floor(Numerator / Denominator). Signed version. Overflow is explicitly forbidden with an assert.
divideNearest Returns (Numerator / Denominator) rounded by round-half-up. Guaranteed to never overflow.
divideSignedWouldOverflow Return true if signed ceil/floor division would overflow.
djbHash The Bernstein hash function used by the DWARF accelerator tables.
dlangDemangle
dlltoolDriverMain
doSystemDiff
downscaleWeights downscale the given weights preserving the ratio. If the maximum value is not already known and not provided via
dropDebugUsers Remove the debug intrinsic instructions for the given instruction.
drop_begin Return a range covering RangeOrContainer with the first N elements excluded.
drop_end Return a range covering RangeOrContainer with the last N elements excluded.
dump Write the set-bit indices of LHS to out as a bracketed space list.
dumpBytes Convert Bytes' to a hex string and output to OS'
dumpDotGraphToFile
dumpMessage
dumpRegSetPressure
dumpTypeQualifiedName Dump the qualified type name of DIE to OS.
dumpTypeUnqualifiedName
dyn_cast dyn_cast overloads
dyn_cast_if_present dyn_cast_if_present overloads
dyn_cast_or_null dyn_cast_or_null overloads
dynamicAPIntFromInt64 Constructs a DynamicAPInt from an int64_t value.
ehAwareSplitEdge Split the edge connect the specficed blocks in the case that Succ is an Exception Handling Block
embedBitcodeInModule If EmbedBitcode is set, save a copy of the llvm IR as data in the __LLVM,__bitcode section (.llvmbc on non-MacOS). If available, pass the serialized module via the Buf parameter. If not, pass an empty (default-initialized) MemoryBufferRef, and the serialization will be handled by this API. The same behavior happens if the provided Buf is not bitcode (i.e. if it's invalid data or even textual LLVM assembly). If EmbedCmdline is set, the command line is also exported in the corresponding section (__LLVM,_cmdline / .llvmcmd) - even if CmdArgs were empty.
embedBufferInModule Embed the memory buffer Buf into the module M as a global using the specified section name. Also provide a metadata entry to identify it in the module using the same section name. If SectionExclude is true !exclude is applied to the global in order to apply necessary linkage flags to exclude the section from a link. If false, apply !metadata_section_kind which results in no additional section linkage flags.
emitAMDGPUPrintfCall
emitAppleAccelTable Emit an Apple Accelerator Table consisting of entries in the specified AccelTable. The DataT template parameter should be derived from AppleAccelTableData.
emitAppleAccelTableImpl
emitBCmp Emit a call to the bcmp function.
emitBinaryFloatFnCall emitBinaryFloatFnCall overloads
emitCalloc Emit a call to the calloc function.
emitDWARF5AccelTable Emit a DWARFv5 Accelerator Table consisting of entries in the specified AccelTable. The CUs contains either symbols keeping offsets to the start of compilation unit, either offsets to the start of compilation unit themselves.
emitFPutC Emit a call to the fputc function. This assumes that Char is an 'int', and File is a pointer to FILE.
emitFPutS Emit a call to the fputs function. Str is required to be a pointer and File is a pointer to FILE.
emitFWrite Emit a call to the fwrite function. This assumes that Ptr is a pointer, Size is an 'size_t', and File is a pointer to FILE.
emitGEPOffset Given a getelementptr instruction/constantexpr, emit the code necessary to compute the offset from the base pointer (without adding in the base pointer). Return the result as a signed integer of intptr size. When NoAssumptions is true, no assumptions about index computation not overflowing is made.
emitHotColdNew Emit a call to the hot/cold operator new function.
emitHotColdNewAligned
emitHotColdNewAlignedNoThrow
emitHotColdNewNoThrow
emitHotColdSizeReturningNew
emitHotColdSizeReturningNewAligned
emitInlinedInto Emit ORE message.
emitInlinedIntoBasedOnCost Emit ORE message based in cost (default heuristic).
emitLFIBundleAlign
emitLFINoteSection
emitLinkerFlagsForGlobalCOFF
emitLinkerFlagsForUsedCOFF
emitMalloc Emit a call to the malloc function.
emitMemCCpy Emit a call to the memccpy function.
emitMemChr Emit a call to the memchr function. This assumes that Ptr is a pointer, Val is an 'int' value, and Len is an 'size_t' value.
emitMemCmp Emit a call to the memcmp function.
emitMemCpyChk Emit a call to the __memcpy_chk function to the builder. This expects that the Len and ObjSize have type 'size_t' and Dst/Src are pointers.
emitMemPCpy Emit a call to the mempcpy function.
emitMemRChr Emit a call to the memrchr function, analogously to emitMemChr.
emitPutChar Emit a call to the putchar function. This assumes that Char is an 'int'.
emitPutS Emit a call to the puts function. This assumes that Str is some pointer.
emitSNPrintf Emit a call to the snprintf function.
emitSPrintf Emit a call to the sprintf function.
emitSourceFileHeader emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream.
emitStpCpy Emit a call to the stpcpy function to the builder, for the specified pointer arguments.
emitStpNCpy Emit a call to the stpncpy function to the builder, for the specified pointer arguments and length.
emitStrCat Emit a call to the strcat function.
emitStrChr Emit a call to the strchr function to the builder, for the specified pointer and character. Ptr is required to be some pointer type, and the return value has 'i8*' type.
emitStrCpy Emit a call to the strcpy function to the builder, for the specified pointer arguments.
emitStrDup Emit a call to the strdup function to the builder, for the specified pointer. Ptr is required to be some pointer type, and the return value has 'i8*' type.
emitStrLCat Emit a call to the strlcat function.
emitStrLCpy Emit a call to the strlcpy function.
emitStrLen Emit a call to the strlen function to the builder, for the specified pointer. Ptr is required to be some pointer type, and the return value has 'size_t' type.
emitStrNCat Emit a call to the strncat function.
emitStrNCmp Emit a call to the strncmp function to the builder.
emitStrNCpy Emit a call to the strncpy function to the builder, for the specified pointer arguments and length.
emitUnaryFloatFnCall emitUnaryFloatFnCall overloads
emitVSNPrintf Emit a call to the vsnprintf function.
emitVSPrintf Emit a call to the vsprintf function.
emitWcsLen Emit a call to the wcslen function to the builder, for the specified pointer. Ptr is required to be some pointer type, and the return value has 'size_t' type.
enableAutoConversion
encode encode overloads
encodeBase64
encodeSLEB128 encodeSLEB128 overloads
encodeULEB128 encodeULEB128 overloads
enum_seq enum_seq overloads
enum_seq_inclusive enum_seq_inclusive overloads
enumerate Given two or more input ranges, returns a new range whose values are tuples (A, B, C, ...), such that A is the 0-based index of the item in the sequence, and B, C, ..., are the values from the original input ranges. All input ranges are required to have equal lengths. Note that the returned iterator allows for the values (B, C, ...) to be modified. Example:
equal equal overloads
equal_to Functor variant of std::equal_to that can be used as a UnaryPredicate in functional algorithms like all_of. Args is forwarded and stored by value. If you would like to pass by reference, use std::ref or std::cref.
erase Wrapper function to remove a value from a container:
eraseInstr
eraseInstrs
erase_if Provide a container algorithm similar to C++ Library Fundamentals v2's erase_if which is equivalent to:
errnoAsErrorCode Helper to get errno as an std::error_code.
errorCodeToError Helper for converting an std::error_code to a Error.
errorOrToExpected Convert an ErrorOr<T> to an Expected<T>.
errorToBool Helper for converting an Error to a bool.
errorToErrorCode Helper for converting an ECError to a std::error_code.
errorToErrorCodeAndEmitErrors
errs This returns a reference to a raw_ostream for standard error. Use it like: errs() << "foo" << "bar"; By default, the stream is tied to stdout to ensure stdout is flushed before stderr is written, to ensure the error messages are written in their expected place.
exp Implement IEEE 754-2019 exp functions
expandAtomicMemCpyAsLoop Expand AtomicMemCpy as a loop. AtomicMemCpy is not deleted.
expandDivision Generate code to divide two integers, replacing Div with the generated code. This currently generates code similarly to compiler-rt's implementations, but future work includes generating more specialized code when more information about the operands are known. Implements both 32bit and 64bit scalar division.
expandDivisionUpTo32Bits Generate code to divide two integers, replacing Div with the generated code. Uses ExpandDivision with a 32bit Div which makes it useful for targets with little or no support for less than 32 bit arithmetic.
expandDivisionUpTo64Bits Generate code to divide two integers, replacing Div with the generated code. Uses ExpandDivision with a 64bit Div.
expandMemCpyAsLoop Expand MemCpy as a loop. MemCpy is not deleted.
expandMemMoveAsLoop Expand MemMove as a loop. MemMove is not deleted. Returns true if the memmove was lowered.
expandMemSetAsLoop expandMemSetAsLoop overloads
expandMemSetPatternAsLoop expandMemSetPatternAsLoop overloads
expandReductionViaLoop Expand a scalable vector reduction into a runtime loop that applies RdxOpcode element by element, starting from Acc as the initial accumulator value (typically the reduction identity). If DT and/or LI are provided, they are updated to reflect the new basic blocks.
expandRemainder Generate code to calculate the remainder of two integers, replacing Rem with the generated code. This currently generates code using the udiv expansion, but future work includes generating more specialized code, e.g. when more information about the operands are known. Implements both 32bit and 64bit scalar division.
expandRemainderUpTo32Bits Generate code to calculate the remainder of two integers, replacing Rem with the generated code. Uses ExpandReminder with a 32bit Rem which makes it useful for targets with little or no support for less than 32 bit arithmetic.
expandRemainderUpTo64Bits Generate code to calculate the remainder of two integers, replacing Rem with the generated code. Uses ExpandReminder with a 64bit Rem.
expandVectorPredicationIntrinsic Expand a vector predication intrinsic. Returns the kind of expansion that was applied to the intrinsic.
expectedToErrorOr Convert an Expected<T> to an ErrorOr<T>.
expectedToErrorOrAndEmitErrors
expectedToOptional Convert an Expected to an std::optional without doing anything. This method should be used only where an error can be considered a reasonable and expected return value.
exportDebugifyStats
extractBranchWeights extractBranchWeights overloads
extractBuildAttributesSubsections
extractFromBranchWeightMD32 Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes. Supports uint32_t.
extractFromBranchWeightMD64 Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes. Supports uint64_t.
extractParts extractParts overloads
extractProbe
extractProfTotalWeight extractProfTotalWeight overloads
extractVectorParts Version which handles irregular sub-vector splits.
extractWidenableCondition
failed Utility function that returns true if the provided LogicalResult corresponds to a failure value.
failure Utility function to generate a LogicalResult. If isFailure is true a failure result is generated, otherwise a 'success' result is generated.
fcmpImpliesClass Compute the possible floating-point classes that LHS could be based on fcmp Pred LHS, RHS.
fcmpToClassTest Returns a pair of values, which if passed to llvm.is.fpclass, returns the same result as an fcmp with the given operands.
fdbgs fdbgs() - This returns a reference to a formatted_raw_ostream for debug output. Use it like: fdbgs() << "foo" << "bar";
ferrs ferrs() - This returns a reference to a formatted_raw_ostream for standard error. Use it like: ferrs() << "foo" << "bar";
fill Provide wrappers to std::fill which take ranges instead of having to pass begin/end explicitly.
fillMapFromAssume Insert into the map all the informations contained in the operand bundles of the llvm.assume. This should be used when many queries are going to be made on the same llvm.assume. String attributes are not inserted in the map. If the IR changes the map will be outdated.
filterDeadComdatFunctions Filter out potentially dead comdat functions where other entries keep the entire comdat group alive.
filter_to_vector Filter a range to a SmallVector with the element types deduced.
finalizeBundle finalizeBundle overloads
finalizeBundles finalizeBundles - Finalize instruction bundles in the specified MachineFunction. Return true if any bundles are finalized.
finalizeLLVMOptimizationRemarks Finalize optimization remarks and deregister the RemarkStreamer from the Context. This must be called before closing the (file) stream that was used to set up the remarks.
find Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly.
findAllocaForValue Returns unique alloca where the value comes from, or nullptr. If OffsetZero is true check that V points to the begining of the alloca.
findArrayDimensions Compute the array dimensions Sizes from the set of Terms extracted from the memory access function of this SCEVAddRecExpr (second step of delinearization).
findAvailablePtrLoadStore Scan backwards to see if we have the value of the given pointer available locally within a small number of instructions.
findBooleanLoopTags Return the replacement tags for the enable tag Name, or nullptr.
findDVRDeclareValues As above, for DVRDeclareValues.
findDVRDeclares Finds dbg.declare records declaring local variables as living in the memory that 'V' points to.
findDVRValues As above, for DVRValues.
findDbgUsers Finds the debug info records describing a value.
findDbgValues Finds the dbg.values describing a value.
findDefsUsedOutsideOfLoop Returns the instructions that use values defined in the loop.
findDevirtualizableCallsForTypeCheckedLoad Given a call to the intrinsic @llvm.type.checked.load, find all devirtualizable call sites based on the call and return them in DevirtCalls.
findDevirtualizableCallsForTypeTest Given a call to the intrinsic @llvm.type.test, find all devirtualizable call sites based on the call and return them in DevirtCalls.
findFixedSizeArrayDimensions Compute the dimensions of fixed size array from Expr and save the results in Sizes.
findIndirectCalls
findMaximalSubpartOfIllFormedUTF8Sequence
findOptionMDForLoop Find string metadata for a loop.
findOptionMDForLoopID Find and return the loop attribute node for the attribute Name in LoopID. Return nullptr if there is no such attribute.
findScalarElement Given a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector.
findSplitPointForStackProtector Find the split point at which to splice the end of BB into its success stack protector check machine basic block.
findStringMetadataForLoop Find string metadata for loop
findVTableAddrs
findValuesAffectedByCondition Call InsertAffected on all Values whose known bits / value may be affected by the condition Cond. Used by AssumptionCache and DomConditionCache.
find_if Provide wrappers to std::find_if which take ranges instead of having to pass begin/end explicitly.
find_if_not Return an iterator to the first element of Range for which P is false.
find_singleton Return the single value in Range that satisfies P(<member of Range> *, AllowRepeats)->T * returning nullptr when no values or multiple values were found. When AllowRepeats is true, multiple values that compare equal are allowed.
find_singleton_nested Return a pair consisting of the single value in Range that satisfies P(<member of Range> , AllowRepeats)->std::pair<T, bool> returning nullptr when no values or multiple values were found, and a bool indicating whether multiple values were found to cause the nullptr. When AllowRepeats is true, multiple values that compare equal are allowed. The predicate P returns a pair<T *, bool> where T is the singleton while the bool indicates whether multiples have already been found. It is expected that first will be nullptr when second is true. This allows using find_singleton_nested within the predicate P.
fitWeights Push the weights right to fit in uint32_t.
floorDiv Returns the floor of LHS divided by RHS.
fmt_align
fmt_consume
fmt_pad
fmt_repeat
fneg Return the test mask which returns true if the value's sign bit is flipped.
foldBranchToCommonDest If this basic block is ONLY a setcc and a branch, and if a predecessor branches to us and one of our successors, fold the setcc into the predecessor and use logical operations to pick the right destination.
forEachCallbackCallSite Apply function Func to each CB's callback call site.
forEachCallbackFunction Apply function Func to each CB's callback function.
for_each Provide wrappers to std::for_each which take ranges instead of having to pass begin/end explicitly.
forcePrintFuncIR
forcePrintModuleIR
formDedicatedExitBlocks Ensure that all exit blocks of the loop are dedicated exits.
formLCSSA Put loop into LCSSA form.
formLCSSAForInstructions Ensures LCSSA form for every instruction from the Worklist in the scope of innermost containing loop.
formLCSSARecursively Put a loop nest into LCSSA form.
format These are helper functions used to produce formatted output. They use template type deduction to construct the appropriate instance of the format_object class to simplify their construction.
formatCallSiteLocation Get call site location as a string with the given format
format_bytes Format Bytes as a hex dump without an ASCII column.
format_bytes_with_ascii Format Bytes as hex with an ASCII column.
format_decimal format_decimal - Output N as a right justified, fixed-width decimal. If number will not fit in width, full number is still printed. Examples: OS << format_decimal(0, 5) => " 0" OS << format_decimal(255, 5) => " 255" OS << format_decimal(-1, 3) => " -1" OS << format_decimal(12345, 3) => "12345"
format_hex format_hex - Output N as a fixed width hexadecimal. If number will not fit in width, full number is still printed. Examples: OS << format_hex(255, 4) => 0xff OS << format_hex(255, 4, true) => 0xFF OS << format_hex(255, 6) => 0x00ff OS << format_hex(255, 2) => 0xff
format_hex_no_prefix format_hex_no_prefix - Output N as a fixed width hexadecimal. Does not prepend '0x' to the outputted string. If number will not fit in width, full number is still printed. Examples: OS << format_hex_no_prefix(255, 2) => ff OS << format_hex_no_prefix(255, 2, true) => FF OS << format_hex_no_prefix(255, 4) => 00ff OS << format_hex_no_prefix(255, 1) => ff
formatv
fouts fouts() - This returns a reference to a formatted_raw_ostream for standard output. Use it like: fouts() << "foo" << "bar";
frexp Equivalent of C standard library function.
fromHex Convert hexadecimal string Input to its binary representation. The return string is half the size of Input.
fullyRecomputeLiveIns Convenience function for recomputing live-in's for a set of MBBs until the computation converges.
funcReturnsFirstArgOfCall Returns true if the parent of CI returns CI's first argument after calling CI.
fuseInstructionPair Create an artificial edge between FirstSU and SecondSU. Make data dependencies from the FirstSU also dependent on the SecondSU to prevent them from being scheduled between the FirstSU and the SecondSU and vice-versa. Fusing more than 2 instructions is not currently supported.
gatherImportedSummariesForModule ModuleToSummariesForIndex will be populated with the needed summaries from each required module path. Use a std::map instead of StringMap to get stable order for bitcode emission.
gatherPeelingPreferences
gatherUnrollingPreferences
gcd Returns the greatest common divisor of A and B.
gcovOneInput
generateParamAccessSummary
gep_type_begin
gep_type_end
get get overloads
getAddressSanitizerParams
getAllocAlignment Gets the alignment argument for an aligned_alloc-like function, using either built-in knowledge based on fuction names/signatures or allocalign attributes. Note: the Value returned may not indicate a valid alignment, per the definition of the allocalign attribute.
getAllocSize Return the size of the requested allocation. With a trivial mapper, this is similar to calling getObjectSize(..., Exact), but without looking through calls that return their argument. A mapper function can be used to replace one Value* (operand to the allocation) with another. This is useful when doing abstract interpretation.
getAllocToken Calculates stable allocation token ID. Returns std::nullopt for stateful modes that are only available in the AllocToken pass.
getAllocTokenModeAsString Returns the canonical string name for the given AllocTokenMode.
getAllocTokenModeFromString Returns the AllocTokenMode from its canonical string name; if an invalid name was provided returns nullopt.
getAllocationFamily If a function is part of an allocation family (e.g. malloc/realloc/calloc/free), return the identifier for its family of functions.
getAnyConstantVRegValWithLookThrough If VReg is defined by a statically evaluable chain of instructions rooted on a G_CONSTANT or G_FCONSTANT returns its value as APInt and def register.
getApproximateEVTForLLT
getArgumentAliasingToReturnedPointer This function returns call pointer argument that is considered the same by aliasing rules. You CAN'T use it to replace one value with another. If MustPreserveOffset is true, the call must preserve the byte offset of the pointer within its underlying object. Offset preservation implies nullness preservation; pass true when callers reason about either offset or null equality (e.g. GEP decomposition, dereferenceability, isKnownNonZero).
getArithmeticReductionInstruction Returns the arithmetic instruction opcode used when expanding a reduction.
getArm64ECDemangledFunctionName Returns the ARM64EC demangled function name, unless the input is not mangled.
getArm64ECInsertionPointInMangledName
getArm64ECMangledFunctionName Returns the ARM64EC mangled function name unless the input is already mangled.
getAsSignedInteger Parse a signed integer from Str using Radix into Result.
getAsUnsignedInteger Helper functions for StringRef::getAsInteger.
getAssumeAlignInfo
getAssumeDereferenceableInfo
getAssumeNoUndefInfo
getAssumeNonNullInfo
getAssumeSeparateStorageInfo
getAssumptions getAssumptions overloads
getAtomicScopeIRString Returns the LLVM IR syncscope string that T uses to spell S.
getAtomicSyncScopeID A helper function that returns an atomic operation's sync scope; returns std::nullopt if it is not an atomic operation.
getAttributeBasedInliningDecision Returns InlineResult::success() if the call site should be always inlined because of user directives, and the inlining is viable. Returns InlineResult::failure() if the inlining may never happen because of user directives or incompatibilities detectable without needing callee traversal. Otherwise returns std::nullopt, meaning that inlining should be decided based on other criteria (e.g. cost modeling).
getAutoSenseRadix Detect and strip a radix prefix from Str, returning the inferred radix.
getBaseObjectSize Like getObjectSize(), but only returns the size of base objects (like allocas, global variables and allocator calls) and std::nullopt otherwise. Requires ExactSizeFromOffset mode.
getBestSimplifyQuery
getBitcodeFileContents Returns the contents of a bitcode file. This includes the raw contents of the symbol table embedded in the bitcode file. Clients which require a symbol table should prefer to use irsymtab::read instead of this function because it creates a reader for the irsymtab and handles upgrading bitcode files without a symbol table or with an old symbol table.
getBitcodeLTOInfo Returns LTO information for the specified bitcode file.
getBitcodeModuleList Returns a list of modules in the specified bitcode buffer.
getBitcodeProducerString Read the header of the specified bitcode buffer and extract just the producer string information. If successful, this returns a string. On error, this returns "".
getBitcodeTargetTriple Read the header of the specified bitcode buffer and extract just the triple information. If successful, this returns a string. On error, this returns "".
getBitwiseNotOperand If V is a bitwise not, returns the inverted operand. Otherwise returns an empty SDValue. Only bits set in Mask are required to be inverted, other bits may be arbitrary.
getBooleanLoopAttribute Returns true if Name is applied to TheLoop and enabled.
getBranchProbability getBranchProbability overloads
getBranchWeightMDNode Get the branch weights metadata node
getBranchWeightOffset Return the offset to the first branch weight data
getBugReportMsg Get the bug report message that will be output upon a crash.
getBundleAttrFromID
getBundleAttrFromOBU
getBundleEnd Returns an iterator pointing beyond the bundle containing I.
getBundleStart Returns an iterator to the first instruction in the bundle containing I.
getCGPassBuilderOption
getCPUDefaultTargetFeatures
getCachedOrDownloadArtifact getCachedOrDownloadArtifact overloads
getCachedOrDownloadDebuginfo Fetches a debug binary by searching the default local cache directory and server URLs.
getCachedOrDownloadExecutable Fetches an executable by searching the default local cache directory and server URLs.
getCachedOrDownloadSource Fetches a specified source file by searching the default local cache directory and server URLs.
getCallsiteCost Return the cost associated with a callsite, including parameter passing and the call/return instruction.
getCodeGenDataSectionName
getColorCategory Return the command-line option category for color-related flags.
getConstantDataArrayInfo Returns true if the value V is a pointer into a ConstantDataArray. If successful Slice will point to a ConstantDataArray info object with an appropriate offset.
getConstantFPVRegVal
getConstantRangeFromMetadata Parse out a conservative ConstantRange from !range metadata.
getConstantStringInfo This function computes the length of a null-terminated C string pointed to by V. If successful, it returns true and returns the string in Str. If unsuccessful, it returns false. This does not include the trailing null character by default. If TrimAtNul is set to false, then this returns any trailing null characters as well as any other characters that come after it.
getConstrainedIntrinsicID Returns constrained intrinsic id to represent the given instruction in strictfp function. If the instruction is already a constrained intrinsic or does not have a constrained intrinsic counterpart, the function returns zero.
getContainedTypes Returns the types contained in Ty. For struct types, it returns the elements, all other types are returned directly.
getCoverTy Return smallest type that covers both OrigTy and TargetTy and is multiple of TargetTy.
getCoverageMappingVarName Return the name of a covarage mapping variable (internal linkage) for each instrumented source module. Such variables are allocated in the __llvm_covmap section.
getCoverageUnusedNamesVarName Return the name of the internal variable recording the array of PGO name vars referenced by the coverage mapping. The owning functions of those names are not emitted by FE (e.g, unused inline functions.)
getDISubprogram Find subprogram that is enclosing this scope.
getDWARFUnitIndex Return the CU or TU index table for section kind Kind.
getDbgRecordRange Inline helper to return a range of DbgRecords attached to a marker. It needs to be inlined as it's frequently called, but also come after the declaration of DbgMarker. Thus: it's pre-declared by users like Instruction, then an inlineable body defined here.
getDeadRegState
getDebugMetadataVersionFromModule Return Debug Info Metadata Version by checking module flags.
getDebugRegState
getDebugValueLoc Produce a DebugLoc to use for each dbg.declare that is promoted to a dbg.value.
getDebuginfodCacheKey Returns the cache key for a given debuginfod URL path.
getDebuginfodDebuginfoUrlPath Get the full URL path for a debug binary request of a given BuildID.
getDebuginfodExecutableUrlPath Get the full URL path for an executable request of a given BuildID.
getDebuginfodSourceUrlPath Get the full URL path for a source request of a given BuildID and file path.
getDefIgnoringCopies Find the def instruction for Reg, folding away any trivial copies. May return nullptr if Reg is not a generic virtual register.
getDefRegState
getDefSrcRegIgnoringCopies Find the def instruction for Reg, and underlying value Register folding away any copies.
getDefaultDebuginfodCacheDirectory Finds a default local file caching directory for the debuginfod client, first checking DEBUGINFOD_CACHE_PATH.
getDefaultDebuginfodTimeout Finds a default timeout for debuginfod HTTP requests. Checks DEBUGINFOD_TIMEOUT environment variable, default is 90 seconds (90000 ms).
getDefaultDebuginfodUrls Finds default array of Debuginfod server URLs by checking DEBUGINFOD_URLS environment variable.
getDefaultEHPersonality
getDefaultInlineOrder
getDefaultMaxUsesToExploreForCaptureTracking getDefaultMaxUsesToExploreForCaptureTracking - Return default value of the maximal number of uses to explore before giving up. It is used by PointerMayBeCaptured family analysis.
getDefaultPrecision Return the default digit precision for float formatting style Style.
getDefaultStackSize Based on RLIMIT_STACK or the equivalent.
getDeinterleaveIntrinsicFactor Returns the corresponding factor of llvm.vector.deinterleaveN intrinsics.
getDeinterleavedVectorType Given a deinterleaveN intrinsic, return the (narrow) vector type of each factor.
getDevelopmentModeAdvisor
getDisjunctionWeights Get the branch weights of a branch conditioned on b1 || b2, where b1 and b2 are 2 booleans that are the conditions of 2 branches for which we have the branch weights B1 and B2, respectively. In both B1 and B2, the first position (index 0) is for the 'true' branch, and the second position (index 1) is for the 'false' branch.
getEHPersonalityName
getEHScopeMembership
getEarlyClobberRegState
getEffectiveCodeModel Helper method for getting the code model, returning Default if CM does not have a value. The tiny and kernel models will produce an error, so targets that support them or require more complex codemodel selection logic should implement and call their own getEffectiveCodeModel.
getExitBlockHelper getExitBlock - If getExitBlocks would return exactly one block, return that block. Otherwise return null.
getExplicitlyUnknownBranchWeightsIfProfiled Returns a metadata node containing unknown branch weights if the function has an entry count, otherwise returns nullptr.
getExpressionForConstant Given a constant, create a debug information expression.
getExtDivCycle Return the outermost cycle made divergent by branch outside it.
getFCmpCode Similar to getICmpCode but for FCmpInst. This encodes a fcmp predicate into a four bit mask.
getFCmpCodeWithoutNaN getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats, return the equivalent code if we're allowed to assume that NaNs won't occur.
getFCmpCondCode getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point condition code. This includes consideration of global floating-point math flags.
getFConstantSplat Returns a floating point scalar constant of a build vector splat if it exists. When AllowUndef == true some elements can be undef but not all.
getFConstantVRegValWithLookThrough If VReg is defined by a statically evaluable chain of instructions rooted on a G_FCONSTANT returns its APFloat value and def register.
getFlippedStrictnessPredicateAndConstant Convert an integer comparison with a constant RHS into an equivalent form with the strictness flipped predicate. Return the new predicate and corresponding constant RHS if possible. Otherwise return std::nullopt. E.g., (icmp sgt X, 0) -> (icmp sle X, 1). For a samesign predicate, fail if adjusting the constant would change its sign bit, because that would change the comparison's poison domain.
getFloatFn Get the name of the overloaded floating point function corresponding to Ty. Return the LibFunc in TheLibFunc.
getFltSemanticForLLT Get the appropriate floating point arithmetic semantic based on the bit size of the given scalar LLT.
getFreedOperand If this if a call to a free function, return the freed operand.
getFuncNameWithoutPrefix Given a PGO function name, remove the filename prefix and return the original (static) function name.
getFunctionAtVTableOffset Given a vtable and a specified offset, returns the function and the trivial pointer at the specified offset in pair iff the pointer at the specified offset is a function or an alias to a function. Returns a pair of nullptr otherwise.
getFunctionLiveInPhysReg Return a virtual register corresponding to the incoming argument register PhysReg. This register is expected to have class RC, and optional type RegTy. This assumes all references to the register will use the same type.
getGCDType Return a type where the total size is the greatest common divisor of OrigTy and TargetTy. This will try to either change the number of vector elements, or bitwidth of scalars. The intent is the result type can be used as the result of a G_UNMERGE_VALUES from OrigTy, and then some combination of G_MERGE_VALUES, G_BUILD_VECTOR and G_CONCAT_VECTORS (possibly with intermediate casts) can re-form TargetTy.
getGCStrategy Lookup the GCStrategy object associated with the given gc name.
getGlobalContextForCAPI Get the deprecated global context for use by the C API.
getGlobalPassGate Singleton instance of the OptPassGate class, so multiple pass managers don't need to coordinate their uses of OptBisect and OptDisable.
getHeatColor
getHorizDemandedEltsForFirstOperand Compute the demanded elements mask of horizontal binary operations. A horizontal operation combines two adjacent elements in a vector operand. This function returns a mask for the elements that correspond to the first operand of this horizontal combination. For example, for two vectors [X1, X2, X3, X4]and [Y1, Y2, Y3, Y4], the resulting mask can include the elements X1, X3, Y1, and Y3. To get the other operands, simply shift the result of this function to the left by 1.
getHotnessName
getICmpCode Encode a icmp predicate into a three bit mask. These bits are carefully arranged to allow folding of expressions such as:
getICmpCondCode getICmpCondCode overloads
getICmpTrueVal Returns an integer representing true, as defined by the TargetBooleanContents.
getIConstantFromReg VReg is defined by a G_CONSTANT, return the corresponding value.
getIConstantSplatSExtVal
getIConstantSplatVal
getIConstantVRegSExtVal If VReg is defined by a G_CONSTANT fits in int64_t returns it.
getIConstantVRegVal If VReg is defined by a G_CONSTANT, return the corresponding value.
getIConstantVRegValWithLookThrough If VReg is defined by a statically evaluable chain of instructions rooted on a G_CONSTANT returns its APInt value and def register.
getIRPGOFuncName
getImplRegState
getIndexExpressionsFromGEP Gathers the individual index expressions from a GEP instruction.
getInitialValueOfAllocation If this is a call to an allocation function that initializes memory to a fixed value, return said value in the requested type. Otherwise, return nullptr.
getInlineCost getInlineCost overloads
getInlineOrder
getInlineParams getInlineParams overloads
getInlineParamsFromOptLevel Generate the parameters to tune the inline cost analysis based on command line options. If -inline-threshold option is not explicitly passed, the default threshold is computed from OptLevel. An OptLevel value above 3 is considered an aggressive optimization mode. Optimization for size is handled via separate thresholds for optsize/minsize, rather than changes to the default threshold.
getInliningCostEstimate Get the cost estimate ignoring thresholds. This is similar to getInlineCost when passed InlineParams::ComputeFullInlineCost, or a non-null ORE. It uses default InlineParams otherwise. Contrary to getInlineCost, which makes a threshold-based final evaluation of should/shouldn't inline, captured in InlineResult, getInliningCostEstimate returns: - std::nullopt, if the inlining cannot happen (is illegal) - an integer, representing the cost.
getInliningCostFeatures Get the expanded cost features. The features are returned unconditionally, even if inlining is impossible.
getInstrMaxCountValue Return the max count value. We reserver a few large values for special use.
getInstrProfBitmapBiasVarName
getInstrProfBitmapVarPrefix Return the name prefix of profile bitmap variables.
getInstrProfCounterBiasVarName
getInstrProfCountersVarPrefix Return the name prefix of profile counter variables.
getInstrProfDataVarPrefix Return the name prefix of variables containing per-function control data.
getInstrProfInitFuncName Return the name of the runtime initialization method that is generated by the compiler. The function calls __llvm_profile_register_functions and __llvm_profile_override_default_filename functions if needed. This function has internal linkage and invoked at startup time via init_array.
getInstrProfInstrumentGPUFuncName Return the name of the GPU wave-cooperative counter increment helper.
getInstrProfNameSeparator Return the marker used to separate PGO names during serialization.
getInstrProfNameVarPrefix Return the name prefix of variables containing instrumented function names.
getInstrProfNamesRegFuncName Return the name of the runtime interface that registers the PGO name strings.
getInstrProfNamesVarName Return the name of the variable holding the strings (possibly compressed) of all function's PGO names.
getInstrProfNamesVarPostfixVarName
getInstrProfRegFuncName Return the name of the runtime interface that registers per-function control data for one instrumented function.
getInstrProfRegFuncsName Return the name of function that registers all the per-function control data at program startup time by calling __llvm_register_function. This function has internal linkage and is called by __llvm_profile_init runtime method. This function is not generated for these platforms: Darwin, Linux, and FreeBSD.
getInstrProfRuntimeHookVarName Return the name of the hook variable defined in profile runtime library. A reference to the variable causes the linker to link in the runtime initialization module (which defines the hook variable).
getInstrProfRuntimeHookVarUseFuncName Return the name of the compiler generated function that references the runtime hook variable. The function is a weak global.
getInstrProfSectionName Return the name of the profile section corresponding to IPSK.
getInstrProfVNodesVarName Return the name of value profile node array variables:
getInstrProfVTableNamesVarName
getInstrProfVTableVarPrefix Return the name prefix of variables containing virtual table profile data.
getInstrProfValueProfFuncName Return the name profile runtime entry point to do value profiling for a given site.
getInstrProfValueProfMemOpFuncName Return the name profile runtime entry point to do memop size value profiling.
getInstrProfValuesVarPrefix Return the name prefix of value profile variables.
getInstrProfVarPrefix Return the prefix of the name of the variables to function as a filter.
getIntDivCycle Return the outermost cycle made divergent by branch inside it.
getIntLoopAttribute Find named metadata for a loop with an integer value. Return Default if not set.
getInterleaveIntrinsicFactor Returns the corresponding factor of llvm.vector.interleaveN intrinsics.
getInternalReadRegState
getIntrinsicForCallSite Map a call instruction to an intrinsic ID. Libcalls which have equivalent intrinsics are treated as-if they were intrinsics.
getInverseGMinMaxOpcode Returns the inverse opcode of MinMaxOpc, which is a generic min/max opcode like G_SMIN.
getInverseMinMaxFlavor Return the inverse minimum/maximum flavor of the specified flavor. For example, signed minimum is the inverse of signed maximum.
getInverseMinMaxIntrinsic
getKCFITypeID Compute KCFI type ID from mangled type name. The algorithm can be xxHash64 or FNV-1a.
getKillRegState
getKnowledgeForValue Return a valid Knowledge associated to the Value V if its Attribute kind is in AttrKinds and it matches the Filter.
getKnowledgeFromBundle This extracts the Knowledge from an element of an operand bundle. This is mostly for use in the assume builder.
getKnowledgeFromUse Return a valid Knowledge associated to the Use U if its Attribute kind is in AttrKinds.
getKnowledgeValidInContext Return a valid Knowledge associated to the Value V if its Attribute kind is in AttrKinds and the knowledge is suitable to be used in the context of CtxI.
getKnownAlignment Try to infer an alignment for the specified pointer.
getKnownAssumptionStrings A set of known assumption strings that are accepted without warning and which can be recommended as typo correction.
getLCMType Return the least common multiple type of OrigTy and TargetTy, by changing the number of vector elements or scalar bitwidth. The intent is a G_MERGE_VALUES, G_BUILD_VECTOR, or G_CONCAT_VECTORS can be constructed from OrigTy elements, and unmerged into TargetTy. It is an error to call this function where one argument is a fixed vector and the other is a scalable vector, since it is illegal to build a G_{MERGE|UNMERGE}_VALUES between fixed and scalable vectors.
getLLTForMVT Get a rough equivalent of an LLT for a given MVT. LLT does not yet support scalarable vector types, and will assert if used.
getLLTForType Construct a low-level type based on an LLVM type.
getLazyBitcodeModule Read the header of the specified bitcode buffer and prepare for lazy deserialization of function bodies. If ShouldLazyLoadMetadata is true, lazily load metadata as well. If IsImporting is true, this module is being parsed for ThinLTO importing into another module.
getLazyIRFileModule If the given file holds a bitcode image, return a Module for it which does lazy deserialization of function bodies. Otherwise, attempt to parse it as LLVM Assembly and return a fully populated Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode reader to optionally enable lazy metadata loading.
getLazyIRModule If the given MemoryBuffer holds a bitcode image, return a Module for it which does lazy deserialization of function bodies. Otherwise, attempt to parse it as LLVM Assembly and return a fully populated Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode reader to optionally enable lazy metadata loading. This takes ownership of Buffer.
getLibcallLowering Resolve the LibcallLoweringInfo for Subtarget from the module-level ModuleInfo, applying the subtarget's libcall overrides.
getLoadStoreAddressSpace A helper function that returns the address space of the pointer operand of load or store instruction.
getLoadStoreAlignment A helper function that returns the alignment of load or store instruction.
getLoadStorePointerOperand A helper function that returns the pointer operand of a load or store instruction. Returns nullptr if not load or store.
getLoadStoreType A helper function that returns the type of a load or store instruction.
getLongDoubleFormatName Returns the IR floating-point type name for a LongDoubleFormat.
getLoopAnalysisUsage Helper to consistently add the set of standard passes to a loop pass's AnalysisUsage.
getLoopConvergenceHeart Find the convergence heart of the loop.
getLoopEstimatedTripCount Return either: - std::nullopt, if the implementation is unable to handle the loop form of L (e.g., L must have a latch block that controls the loop exit). - The value of llvm.loop.estimated_trip_count from the loop metadata of L, if that metadata is present. - Else, a new estimate of the trip count from the latch branch weights of L.
getLoopPassPreservedAnalyses Returns the minimum set of Analyses that all loop passes must preserve.
getLoopProbability Based on branch weight metadata, return either: - An unknown probability if the implementation is unable to handle the loop form of L (e.g., L must have a latch block that controls the loop exit). - The probability P that, at the end of any iteration, the latch of L will start another iteration such that 1 - P is the probability of exiting the loop.
getLoopVectorizeKindPrefix Return a short prefix describing the loop's vectorizer origin based on the llvm.loop.vectorize.body and llvm.loop.vectorize.epilogue metadata. The result is one of "vectorized epilogue ", "vectorized ", "epilogue ", or "" (empty) and is intended to be prepended to loop-kind tokens in optimization remarks.
getLosslessInvCast Try to cast C to InvC losslessly, satisfying CastOp(InvC) equals C, or CastOp(InvC) is a refined value of undefined C. Will try best to preserve the flags.
getLosslessSignedTrunc
getLosslessUnsignedTrunc
getMVTForLLT Get a rough equivalent of an MVT for a given LLT. MVT can't distinguish pointers, so these will convert to a plain integer.
getMachineArchType
getMachineFunctionPassPreservedAnalyses Returns the minimum set of Analyses that all machine function passes must preserve.
getMachineType
getMaxFreq
getMemCacheHintMetadata Return the cache hint metadata node for memory operand OperandNo on I, or nullptr when the instruction has no hint for that operand. For a CallBase, OperandNo is an argument index; otherwise it is an instruction operand index.
getMergedAtomicOrdering Return a single atomic ordering that is at least as strong as both the AO and Other orderings for an atomic operation.
getMetadataToPropagate Add metadata from Inst to Metadata, if it can be preserved after vectorization. It can be preserved after vectorization if the kind is one of [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal,] MD_access_group, MD_mmra].
getMinMaxIntrinsic Convert given SPF to equivalent min/max intrinsic. Caller must ensure SPF is an integer min or max pattern.
getMinMaxLimit Return the minimum or maximum constant value for the specified integer min/max flavor and type.
getMinMaxPred Return the canonical comparison predicate for the specified minimum/maximum flavor.
getMinMaxReductionIntrinsicID Returns the llvm.vector.reduce min/max intrinsic that corresponds to the intrinsic op.
getMinMaxReductionIntrinsicOp Returns the min/max intrinsic used when expanding a min/max reduction.
getMinMaxReductionPredicate Returns the comparison predicate used when expanding a min/max reduction.
getMinMaxReductionRecurKind Returns the recurence kind used when expanding a min/max reduction.
getModuleSummaryIndex Parse the specified bitcode buffer, returning the module summary index.
getModuleSummaryIndexForFile Parse the module summary index out of an IR file and return the module summary index object if found, or an empty summary if not. If Path refers to an empty file and IgnoreEmptyThinLTOIndexFile is true, then this function will return nullptr.
getNameFromBundleAttr
getNextAvailablePluginDiagnosticKind Get the next available kind ID for a plugin diagnostic. Each time this function is called, it returns a different number. Therefore, a plugin that wants to "identify" its own classes with a dynamic identifier, just have to use this method to get a new ID and assign it to each of its classes. The returned ID will be greater than or equal to DK_FirstPluginKind. Thus, the plugin identifiers will not conflict with the DiagnosticKind values.
getNoCommonBitsSetResult Return how strongly LHS and RHS are known to have no common set bits.
getNonFoldableAlwaysTrue
getNumBranchWeights
getNumBytesForUTF8
getNumOfCalls
getObjCNamesIfSelector If Name is the AT_name of a DIE which refers to an Objective-C selector, returns an instance of ObjCSelectorNames. The Selector and ClassName fields are guaranteed to be non-empty in the result.
getObjectSize Compute the size of the object pointed by Ptr. Returns true and the object size in Size if successful, and false otherwise. In this context, by object we mean the region of memory starting at Ptr to the end of the underlying object pointed to by Ptr.
getOpcodeDef getOpcodeDef overloads
getOptionalBoolLoopAttribute
getOptionalElementCountLoopAttribute Find a combination of metadata ("llvm.loop.vectorize.width" and "llvm.loop.vectorize.scalable.enable") for a loop and use it to construct a ElementCount. If scalable.enable is present the count is scalable; if scalable.disable is present or the tag is absent, it is fixed-width. If the metadata "llvm.loop.vectorize.width" cannot be found then std::nullopt is returned.
getOptionalIntLoopAttribute Find named metadata for a loop with an integer value.
getOrCreateFunctionComdat
getOrCreateSanitizerCtorAndInitFunctions Creates sanitizer constructor function lazily. If a constructor and init function already exist, this function returns it. Otherwise it calls createSanitizerCtorAndInitFunctions. The FunctionsCreatedCallback is invoked in that case, passing the new Ctor and Init function.
getOrEnforceKnownAlignment Try to ensure that the alignment of V is at least PrefAlign bytes. If the owning object can be modified and has an alignment less than PrefAlign, it will be increased and PrefAlign returned. If the alignment cannot be increased, the known alignment of the value is returned.
getOrInsertLibFunc getOrInsertLibFunc overloads
getOrderedReduction Generates an ordered vector reduction using extracts to reduce the value.
getOrdinalSuffix Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th).
getOutermostDivergentCycle Return the outermost cycle made divergent by a join of paths from DivTermBlock through JoinBlock.
getOwningLazyBitcodeModule Like getLazyBitcodeModule, except that the module takes ownership of the memory buffer if successful. If successful, this moves Buffer. On error, this does not move Buffer. If IsImporting is true, this module is being parsed for ThinLTO importing into another module.
getPGOFuncName getPGOFuncName overloads
getPGOFuncNameMetadata Return the PGOFuncName meta data associated with a function.
getPGOFuncNameMetadataName
getPGOFuncNameVarInitializer Return the initializer in string of the PGO name var NameVar.
getPGOFuncNameVarName Return the name of the global variable used to store a function name in PGO instrumentation. FuncName is the IRPGO function name (returned by getIRPGOFuncName) for LLVM IR instrumentation and PGO function name (returned by getPGOFuncName) for front-end instrumentation.
getPGOName
getPGONameMetadataName
getParsedIRPGOName
getPassTimer Request the timer for this legacy-pass-manager's pass instance.
getPointerAtOffset Processes a Constant recursively looking into elements of arrays, structs and expressions to find a trivial pointer element that is located at the given offset (relative to the beginning of the whole outer Constant).
getPointerAuthStableSipHash Compute a stable non-zero 16-bit hash of the given string.
getPointerOperand A helper function that returns the pointer operand of a load, store or GEP instruction. Returns nullptr if not load, store, or GEP.
getPointersDiff Returns the distance between the pointers PtrA and PtrB iff they are compatible and it is possible to calculate the distance between them. This is a simple API that does not depend on the analysis pass.
getPredForFCmpCode This is the complement of getFCmpCode. It turns a predicate code into either a constant true or false or the predicate for a new FCmp. Non-NULL return value will be a true or false constant. NULL return means a new ICmp is needed. The predicate is output in Pred.
getPredForICmpCode This is the complement of getICmpCode. It turns a predicate code into either a constant true or false or the predicate for a new ICmp. The sign is passed in to determine which kind of predicate to use in the new ICmp instruction. Non-NULL return value will be a true or false constant. NULL return means a new ICmp is needed. The predicate is output in Pred.
getPrefetchTargetSymbolName
getPtrStride getPtrStride overloads
getRandomBytes
getReallocatedOperand If this is a call to a realloc function, return the reallocated operand.
getRecurrenceIdentity Given information about an recurrence kind, return the identity for the llvm.vector.reduce.* used to generate it.
getReductionForBinop Returns the reduction intrinsic id corresponding to the binary operation.
getReductionIdentity Given information about an llvm.vector.reduce.* intrinsic, return the identity value for the reduction.
getReductionIntrinsicID Returns the llvm.vector.reduce intrinsic that corresponds to the recurrence kind.
getRegState Get all register state flags from machine operand RegOp.
getReleaseModeAdvisor
getRenamableRegState
getReplayInlineAdvisor
getSLEB128Size Utility function to get the size of the SLEB128-encoded value.
getScope
getSelectPattern Determine the pattern for predicate X Pred Y ? X : Y.
getSelectionDAGFallbackAnalysisUsage Modify analysis usage so it preserves passes required for the SelectionDAG fallback.
getShuffleDemandedElts Transform a shuffle mask's output demanded element mask into demanded element masks for the 2 operands, returns false if the mask isn't valid. Both DemandedLHS and DemandedRHS are initialised to [SrcWidth]. AllowUndefElts permits "-1" indices to be treated as undef.
getShuffleMaskWithWidestElts Repetitively apply widenShuffleMaskElts() for as long as it succeeds, to get the shuffle mask with widest possible elements.
getShuffleReduction Generates a vector reduction using shufflevectors to reduce the value. Fast-math-flags are propagated using the IRBuilder's setting.
getSingleElement Asserts that the given container has a single element and returns that element.
getSipHash_2_4_128 Computes a SipHash-2-4 128-bit result.
getSipHash_2_4_64 Computes a SipHash-2-4 64-bit result.
getSplatIndex If all non-negative Mask elements are the same value, return that value. If all elements are negative (undefined) or Mask contains different non-negative values, return -1.
getSplatValue Get splat value if the input is a splat vector or return nullptr. The value may be extracted from a splat constants vector or from a sequence of instructions that broadcast a single value into a vector.
getSrcRegIgnoringCopies Find the source register for Reg, folding away any trivial copies. It will be an output register of the instruction that getDefIgnoringCopies returns. May return an invalid register if Reg is not a generic virtual register.
getStableSipHash Compute a stable 64-bit hash of the given string.
getStackPointer The value is not guaranteed to point to anything specific. It can be used to estimate how much stack space has been used since the previous call.
getStandardCSEConfigForOpt
getStartAndEndForAccess Calculate Start and End points of memory access using exact backedge taken count BTC if computable or maximum backedge taken count MaxBTC otherwise.
getStrideFromAddRec If AR is an affine AddRec for Lp with a constant step, return the step in units of AccessTy's allocation size. Returns std::nullopt if the step is not constant, does not divide the access size, or AccessTy is a scalable vector. Ptr is only used for debug output and may be null.
getStringFnAttrAsInt
getSwappedBytes Needed by swapByteOrder().
getSyncEffects Get ModRefInfo for a synchronizing operation, such as a fence or stronger than monotonic atomic load/store.
getTensorSpecFromJSON Construct a TensorSpec from a JSON dictionary of the form: { "name": <string>, "port": <int>, "type": <string. Use LLVM's types, e.g. float, double, int64_t>, "shape": <array of ints> } For the "type" field, see the C++ primitive types used in TFUTILS_SUPPORTED_TYPES.
getTimeTraceProfilerInstance
getToken getToken - This function extracts one token from source, ignoring any leading characters that appear in the Delimiters string, and ending the token at any of the characters that appear in the Delimiters string. If there are no tokens in the source string, an empty string is returned. The function returns a pair containing the extracted token and the remaining tail string.
getTypeForLLT Get the type back from LLT. It won't be 100 percent accurate but returns an estimate of the type.
getTypeName We provide a function which tries to compute the (demangled) name of a type statically.
getULEB128Size Utility function to get the size of the ULEB128-encoded value.
getUTF8SequenceSize
getUndefRegState
getUnderlyingObject This method strips off any GEP address adjustments, pointer casts or llvm.threadlocal.address from the specified value V, returning the original object being addressed. Note that the returned value has pointer type if the specified value does. If the MaxLookup value is non-zero, it limits the number of instructions to be stripped off.
getUnderlyingObjectAggressive Like getUnderlyingObject(), but will try harder to find a single underlying object. In particular, this function also looks through selects and phis.
getUnderlyingObjects This method is similar to getUnderlyingObject except that it can look through phi and select instructions and return multiple objects.
getUnderlyingObjectsForCodeGen This is a wrapper around getUnderlyingObjects and adds support for basic ptrtoint+arithmetic+inttoptr sequences.
getUniqueExitBlocksHelper
getUniqueInternalLinkagePostfix
getUniqueModuleId Produce a unique identifier for this module by taking the MD5 sum of the names of the module's strong external symbols that are not comdat members.
getUnrollMetadataForLoop
getVScaleRange Determine the possible constant range of vscale with the given bit width, based on the vscale_range function attribute.
getValidBranchWeightMDNode Get the valid branch weights metadata node
getValueProfDataFromInst Extract the value profile data from Inst and returns them if Inst is annotated with value profile data. Returns an empty vector otherwise.
getVectorIntrinsicIDForCall Returns intrinsic ID for call. For the input call instruction it finds mapping intrinsic and returns its intrinsic ID, in case it does not found it return not_intrinsic.
getVectorSplat Examples:
getVectorizedTypeVF Returns the number of vector elements for a vectorized type.
getVisibleToRegularObjVtableGUIDs
getWeakLeft
getWeightFromBranchProb
get_array_pod_sort_comparator get_array_pod_sort_comparator - This is an internal helper function used to get type deduction of T right.
get_cpus Returns how many physical CPUs or NUMA groups the system has.
get_max_thread_name_length Get the maximum length of a thread name on this platform. A value of 0 means there is no limit.
get_physical_cores Returns how many physical cores (as opposed to logical cores returned from thread::hardware_concurrency(), which includes hyperthreads). Returns -1 if unknown for the current host system.
get_stable_name Strip LLVM-introduced suffixes so the name is stable across builds.
get_thread_affinity_mask Returns a mask that represents on which hardware thread, core, CPU, NUMA group, the calling thread can be executed. On Windows, threads cannot cross CPU sockets boundaries.
get_thread_name Get the name of the current thread. The level of support for getting a thread's name varies wildly across operating systems, and it is not even guaranteed that if you can successfully set a thread's name that you can later get it back. This function is intended for diagnostic purposes, and as with setting a thread's name no indication of whether the operation succeeded or failed is returned.
get_threadid Return the current thread id, as used in various OS system calls. Note that not all platforms guarantee that the value returned will be unique across the entire system, so portable code should not assume this.
get_threadpool_strategy Build a strategy from a number of threads as a string provided in Num. When Num is above the max number of threads specified by the Default strategy, we attempt to equally allocate the threads on all CPU sockets. "0" or an empty string will return the Default strategy. "all" for using all hardware threads.
guessSuccessors Determine a possible list of successors of a basic block based on the basic block machine operand being used inside the block. This should give you the correct list of successor blocks in most cases except for things like jump tables where the basic block references can't easily be found. The MIRPRinter will skip printing successors if they match the result of this function and the parser will use this function to construct a list if it is missing.
handleAllErrors handleAllErrors overloads
handleErrorImpl handleErrorImpl overloads
handleErrors Pass the ErrorInfo(s) contained in E to their respective handlers. Any unhandled errors (or Errors returned by handlers) are re-concatenated and returned. Because this function returns an error, its result must also be checked or returned. If you intend to handle all errors use handleAllErrors (which returns void, and will abort() on unhandled errors) instead.
handleExecNameEncodedBEOpts Handle backend options that are encoded in the executable name.
handleExecNameEncodedOptimizerOpts Handle optimizer options which are encoded in the executable name. Same semantics as in 'handleExecNameEncodedBEOpts'.
handleExpected Handle any errors (if present) in an Expected<T>, then try a recovery path.
handleUnreachableTerminator If a terminator in an unreachable basic block has an operand of type Instruction, transform it into poison. Return true if any operands are changed to poison. Original Values prior to being changed to poison are returned in PoisonedValues.
hardware_concurrency hardware_concurrency overloads
hasAssumption hasAssumption overloads
hasBranchWeightMD Checks if an instructions has Branch Weight Metadata
hasBranchWeightOrigin Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic
hasDisableAllTransformsHint Look for the loop attribute that disables all transformation heuristic.
hasDisableLICMTransformsHint Look for the loop attribute that disables the LICM transformation heuristics.
hasDistributeTransformation
hasExplicitlyUnknownBranchWeights
hasFloatFn Check whether the overloaded floating point function corresponding to Ty is available.
hasInstrProfHashMismatch This checks if the source of this function has drifted since this binary was profiled previously. For now, we are piggy backing on what PGO does to detect this with instrumented profiles. PGO emits an hash of the IR and checks if the hash has changed. Advanced basic block layout is usually done on top of PGO optimized binaries and hence this check works well in practice.
hasIterationCountInvariantInParent Check inner loop (L) backedge count is known to be invariant on all iterations of its outer loop. If the loop has no parent, this is trivially true.
hasLICMVersioningTransformation
hasLessThanNumFused Checks if the number of cluster edges between SU and its predecessors is less than FuseLimit
hasMustProgress Look for the loop attribute that requires progress within the loop. Note: Most consumers probably want "isMustProgress" which checks the containing function attribute too.
hasNItems hasNItems overloads
hasNItemsOrLess hasNItemsOrLess overloads
hasNItemsOrMore hasNItemsOrMore overloads
hasPartialIVCondition Check if the loop header has a conditional branch that is not loop-invariant, because it involves load instructions. If all paths from either the true or false successor to the header or loop exists do not modify the memory feeding the condition, perform 'partial unswitching'. That is, duplicate the instructions feeding the condition in the pre-header. Then unswitch on the duplicated condition. The condition is now known in the unswitched version for the 'invariant' path through the original loop.
hasProfMD Checks if an Instruction has MD_prof Metadata
hasRegState
hasSingleElement Returns true if the given container only contains a single element.
hasUTF16ByteOrderMark Returns true if a blob of text starts with a UTF-16 big or little endian byte order mark.
hasUnrollAndJamTransformation
hasUnrollTransformation @{ Get the mode for LLVM's supported loop transformations.
hasValidBranchWeightMD Checks if an instructions has valid Branch Weight Metadata
hasVectorizeTransformation
hasWholeProgramVisibility
has_single_bit Return true if Value is a non-zero power of two.
hash_combine Combine values into a single hash_code.
hash_combine_range hash_combine_range overloads
hash_value hash_value overloads
haveNoCommonBitsSet Return true if LHS and RHS have no common bits set.
heavyweight_hardware_concurrency heavyweight_hardware_concurrency overloads
hexDigitValue Interpret the given character C as a hexadecimal digit and return its value.
hexFromNibbles Return the binary representation of the two provided values, MSB and LSB, that make up the nibbles of a hexadecimal digit.
hexdigit hexdigit - Return the hexadecimal character for the given number X (which should be less than 16).
hoistAllInstructionsInto Hoist all of the instructions in the IfBlock to the dominant block DomBlock, by moving its instructions to the insertion point InsertPt.
hoistRegion Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in depth first order w.r.t the DominatorTree. This allows us to visit definitions before uses, allowing us to hoist a loop body in one pass without iteration. Takes DomTreeNode, AAResults, LoopInfo, DominatorTree, TargetLibraryInfo, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status. AllowSpeculation is whether values should be hoisted even if they are not guaranteed to execute in the loop, but are safe to speculatively execute.
identifyNoAliasScopesToClone identifyNoAliasScopesToClone overloads
identify_magic identify_magic overloads
idf_begin Return an inverse depth-first iterator at the entry of G.
idf_end Return a past-the-end inverse depth-first iterator for G.
idf_ext_begin Return an external inverse depth-first iterator at the entry of G.
idf_ext_end Return a past-the-end external inverse depth-first iterator for G.
ilogb Returns the exponent of the internal representation of the APFloat.
impliesPoison Return true if V is poison given that ValAssumedPoison is already poison. For example, if ValAssumedPoison is icmp X, 10 and V is icmp X, 5, impliesPoison returns true.
includes includes overloads
includesPoison Returns true if Kind includes the Poison bit.
includesUndef Returns true if Kind includes the Undef bit.
inconvertibleErrorCode The value returned by this function can be returned from convertToErrorCode for Error values where no sensible translation to std::error_code exists. It should only be used in this situation, and should never be used where a sensible conversion to std::error_code is available, as attempts to convert to/from this error will result in a fatal error. (i.e. it is a programmatic error to try to convert such a value).
inferAlignFromPtrInfo
inferAttributesFromOthers If we can infer one attribute from another on the declaration of a function, explicitly materialize the maximal set in the IR.
inferNonMandatoryLibFuncAttrs Analyze the name and prototype of the given function and set any applicable attributes. Note that this merely helps optimizations on an already existing function but does not consider mandatory attributes.
initializeAAResultsWrapperPassPass
initializeAlwaysInlinerLegacyPassPass
initializeAnalysis Initialize all passes linked into the Analysis library.
initializeAssignmentTrackingAnalysisPass
initializeAssumptionCacheTrackerPass
initializeAtomicExpandLegacyPass
initializeBarrierNoopPass
initializeBasicAAWrapperPassPass
initializeBasicBlockMatchingAndInferencePass
initializeBasicBlockPathCloningPass
initializeBasicBlockSectionsPass
initializeBasicBlockSectionsProfileReaderWrapperPassPass
initializeBlockFrequencyInfoWrapperPassPass
initializeBranchFolderLegacyPass
initializeBranchProbabilityInfoWrapperPassPass
initializeBranchRelaxationLegacyPass
initializeBreakCriticalEdgesPass
initializeBreakFalseDepsLegacyPass
initializeCFGSimplifyPassPass
initializeCFGuardLongjmpPass
initializeCFGuardPass
initializeCFIFixupLegacyPass
initializeCFIInstrInserterLegacyPass
initializeCallGraphDOTPrinterPass
initializeCallGraphViewerPass
initializeCallGraphWrapperPassPass
initializeCanonicalizeFreezeInLoopsPass
initializeCheckDebugMachineModuleLegacyPass
initializeCodeGen Initialize all passes linked into the CodeGen library.
initializeCodeGenPrepareLegacyPassPass
initializeComplexDeinterleavingLegacyPassPass
initializeConstantHoistingLegacyPassPass
initializeCore Initialize all passes linked into the Core library.
initializeCycleInfoWrapperPassPass
initializeDAEPass
initializeDCELegacyPassPass
initializeDSELegacyPassPass
initializeDXILMetadataAnalysisWrapperPassPass
initializeDXILMetadataAnalysisWrapperPrinterPass
initializeDXILResourceBindingWrapperPassPass
initializeDXILResourceTypeWrapperPassPass
initializeDXILResourceWrapperPassPass
initializeDeadMachineInstructionElimPass
initializeDebugifyMachineModulePass
initializeDependenceAnalysisWrapperPassPass
initializeDetectDeadLanesLegacyPass
initializeDomOnlyPrinterWrapperPassPass
initializeDomOnlyViewerWrapperPassPass
initializeDomPrinterWrapperPassPass
initializeDomViewerWrapperPassPass
initializeDominanceFrontierWrapperPassPass
initializeDominatorTreeWrapperPassPass
initializeDummyCGSCCPassPass
initializeDwarfEHPrepareLegacyPassPass
initializeEHContGuardTargetsLegacyPass
initializeEarlyCSELegacyPassPass
initializeEarlyCSEMemSSALegacyPassPass
initializeEarlyIfConverterLegacyPass
initializeEarlyIfPredicatorPass
initializeEarlyMachineLICMPass
initializeEarlyTailDuplicateLegacyPass
initializeEdgeBundlesWrapperLegacyPass
initializeExpandIRInstsLegacyPassPass
initializeExpandPostRALegacyPass
initializeExpandReductionsPass
initializeExpandVariadicsPass
initializeExternalAAWrapperPassPass
initializeFEntryInserterLegacyPass
initializeFinalizeISelPass
initializeFixIrreduciblePass
initializeFixupStatepointCallerSavedLegacyPass
initializeFlattenCFGLegacyPassPass
initializeFuncletLayoutLegacyPass
initializeGCEmptyBasicBlocksLegacyPass
initializeGCMachineCodeAnalysisPass
initializeGCModuleInfoPass
initializeGISelCSEAnalysisWrapperPassPass
initializeGISelValueTrackingAnalysisLegacyPass
initializeGVNLegacyPassPass
initializeGlobalDCELegacyPassPass
initializeGlobalISel Initialize all passes linked into the GlobalISel library.
initializeGlobalMergeFuncPassWrapperPass
initializeGlobalMergePass
initializeGlobalsAAWrapperPassPass
initializeHardwareLoopsLegacyPass
initializeIPO Initialize all passes linked into the IPO library.
initializeIRTranslatorLegacyPass
initializeIVUsersWrapperPassPass
initializeIfConverterPass
initializeImmutableModuleSummaryIndexWrapperPassPass
initializeImplicitNullChecksLegacyPass
initializeIndirectBrExpandLegacyPassPass
initializeInferAddressSpacesPass
initializeInitUndefLegacyPass
initializeInlineAsmPreparePass
initializeInsertCodePrefetchPass
initializeInstCombine Initialize all passes linked into the InstCombine library.
initializeInstSimplifyLegacyPassPass
initializeInstructionCombiningPassPass
initializeInstructionSelectLegacyPass
initializeInterleavedAccessPass
initializeInterleavedLoadCombinePass
initializeJMCInstrumenterPass
initializeLCSSAVerificationPassPass
initializeLCSSAWrapperPassPass
initializeLFIMCStreamer
initializeLazyBFIPassPass
initializeLazyBPIPassPass Helper for client passes to initialize dependent passes for LBPI.
initializeLazyBlockFrequencyInfoPassPass
initializeLazyBranchProbabilityInfoPassPass
initializeLazyMachineBlockFrequencyInfoPassPass
initializeLazyValueInfoWrapperPassPass
initializeLegacyLICMPassPass
initializeLegalizerLegacyPass
initializeLibcallLoweringInfoWrapperPass
initializeLiveDebugValuesLegacyPass
initializeLiveDebugVariablesWrapperLegacyPass
initializeLiveIntervalsWrapperPassPass
initializeLiveRangeShrinkPass
initializeLiveRegMatrixWrapperLegacyPass
initializeLiveStacksWrapperLegacyPass
initializeLiveVariablesWrapperPassPass
initializeLoadStoreOptLegacyPass
initializeLoadStoreVectorizerLegacyPassPass
initializeLocalStackSlotPassPass
initializeLocalizerLegacyPass
initializeLogicalSROALegacyPassPass
initializeLoopDataPrefetchLegacyPassPass
initializeLoopInfoWrapperPassPass
initializeLoopPassPass
initializeLoopSimplifyPass
initializeLoopStrengthReducePass
initializeLoopTermFoldPass
initializeLoopUnrollPass
initializeLowerAtomicLegacyPassPass
initializeLowerEmuTLSPass
initializeLowerGlobalDtorsLegacyPassPass
initializeLowerIntrinsicsPass
initializeLowerInvokeLegacyPassPass
initializeLowerSwitchLegacyPassPass
initializeMIR2VecPrinterLegacyPassPass
initializeMIR2VecVocabLegacyAnalysisPass
initializeMIR2VecVocabPrinterLegacyPassPass
initializeMIRAddFSDiscriminatorsPass
initializeMIRCanonicalizerPass
initializeMIRNamerPass
initializeMIRPrintingPassPass
initializeMIRProfileLoaderPassPass
initializeMachineBlockFrequencyInfoWrapperPassPass
initializeMachineBlockHashInfoPass
initializeMachineBlockPlacementLegacyPass
initializeMachineBlockPlacementStatsLegacyPass
initializeMachineBranchProbabilityInfoWrapperPassPass
initializeMachineCFGPrinterLegacyPass
initializeMachineCSELegacyPass
initializeMachineCombinerLegacyPass
initializeMachineCopyPropagationLegacyPass
initializeMachineCycleInfoPrinterLegacyPass
initializeMachineCycleInfoWrapperPassPass
initializeMachineDominanceFrontierWrapperPassPass
initializeMachineDominatorTreeWrapperPassPass
initializeMachineFunctionPrinterPassPass
initializeMachineFunctionSplitterPass
initializeMachineKCFILegacyPass
initializeMachineLICMPass
initializeMachineLateInstrsCleanupLegacyPass
initializeMachineLoopInfoWrapperPassPass
initializeMachineModuleInfoWrapperPassPass
initializeMachineOptimizationRemarkEmitterPassPass
initializeMachineOutlinerPass
initializeMachinePipelinerPass
initializeMachinePostDominatorTreeWrapperPassPass
initializeMachineRegionInfoPassPass
initializeMachineRegisterClassInfoWrapperPassPass
initializeMachineSanitizerBinaryMetadataLegacyPass
initializeMachineSchedulerLegacyPass
initializeMachineSinkingLegacyPass
initializeMachineTraceMetricsWrapperPassPass
initializeMachineUniformityAnalysisPassPass
initializeMachineUniformityInfoPrinterPassPass
initializeMachineVerifierLegacyPassPass
initializeMemoryDependenceWrapperPassPass
initializeMemorySSAWrapperPassPass
initializeModuleSummaryIndexWrapperPassPass
initializeModuloScheduleTestPass
initializeNaryReassociateLegacyPassPass
initializeObjCARCContractLegacyPassPass
initializeOptimizationRemarkEmitterWrapperPassPass
initializeOptimizePHIsLegacyPass
initializePEILegacyPass
initializePHIEliminationPass
initializePartiallyInlineLibCallsLegacyPassPass
initializePatchableFunctionLegacyPass
initializePeepholeOptimizerLegacyPass
initializePhiValuesWrapperPassPass
initializePhysicalRegisterUsageInfoWrapperLegacyPass
initializePlaceBackedgeSafepointsLegacyPassPass
initializePostDomOnlyPrinterWrapperPassPass
initializePostDomOnlyViewerWrapperPassPass
initializePostDomPrinterWrapperPassPass
initializePostDomViewerWrapperPassPass
initializePostDominatorTreeWrapperPassPass
initializePostInlineEntryExitInstrumenterPass
initializePostMachineSchedulerLegacyPass
initializePostRAHazardRecognizerLegacyPass
initializePostRAMachineSinkingLegacyPass
initializePostRASchedulerLegacyPass
initializePreISelIntrinsicLoweringLegacyPassPass
initializePrintFunctionPassWrapperPass
initializePrintModulePassWrapperPass
initializeProcessImplicitDefsLegacyPass
initializeProfileSummaryInfoWrapperPassPass
initializePromoteLegacyPassPass
initializePseudoProbeInserterPass
initializeRABasicPass
initializeRAGreedyLegacyPass
initializeReachingDefInfoWrapperPassPass
initializeReassociateLegacyPassPass
initializeRegAllocEvictionAdvisorAnalysisLegacyPass
initializeRegAllocFastPass
initializeRegAllocPriorityAdvisorAnalysisLegacyPass
initializeRegAllocScoringPass
initializeRegBankSelectLegacyPass
initializeRegToMemWrapperPassPass
initializeRegUsageInfoCollectorLegacyPass
initializeRegUsageInfoPropagationLegacyPass
initializeRegionInfoPassPass
initializeRegionOnlyPrinterPass
initializeRegionOnlyViewerPass
initializeRegionPrinterPass
initializeRegionViewerPass
initializeRegisterCoalescerLegacyPass
initializeRemoveLoadsIntoFakeUsesLegacyPass
initializeRemoveRedundantDebugValuesLegacyPass
initializeRenameIndependentSubregsLegacyPass
initializeReplaceWithVeclibLegacyPass
initializeResetMachineFunctionPass
initializeRuntimeLibraryInfoWrapperPass
initializeSCEVAAWrapperPassPass
initializeSROALegacyPassPass
initializeSafeStackLegacyPassPass
initializeSafepointIRVerifierPass
initializeScalarEvolutionWrapperPassPass
initializeScalarOpts Initialize all passes linked into the ScalarOpts library.
initializeScalarizeMaskedMemIntrinLegacyPassPass
initializeScalarizerLegacyPassPass
initializeScavengerTestPass
initializeScopedNoAliasAAWrapperPassPass
initializeSelectOptimizePass
initializeSeparateConstOffsetFromGEPLegacyPassPass
initializeShadowStackGCLoweringPass
initializeShrinkWrapLegacyPass
initializeSinkingLegacyPassPass
initializeSjLjEHPreparePass
initializeSlotIndexesWrapperPassPass
initializeSpeculativeExecutionLegacyPassPass
initializeSpillPlacementWrapperLegacyPass
initializeStackColoringLegacyPass
initializeStackFrameLayoutAnalysisLegacyPass
initializeStackMapLivenessPass
initializeStackProtectorPass
initializeStackSafetyGlobalInfoWrapperPassPass
initializeStackSafetyInfoWrapperPassPass
initializeStackSlotColoringLegacyPass
initializeStaticDataAnnotatorLegacyPass
initializeStaticDataProfileInfoWrapperPassPass
initializeStaticDataSplitterLegacyPass
initializeStraightLineStrengthReduceLegacyPassPass
initializeStripConvergenceIntrinsicsLegacyPassPass
initializeStripDebugMachineModulePass
initializeStructurizeCFGLegacyPassPass
initializeTailCallElimPass
initializeTailDuplicateLegacyPass
initializeTarget Initialize all passes linked into the CodeGen library.
initializeTargetLibraryInfoWrapperPassPass
initializeTargetPassConfigPass
initializeTargetTransformInfoWrapperPassPass
initializeTransformUtils Initialize all passes linked into the TransformUtils library.
initializeTwoAddressInstructionLegacyPassPass
initializeTypeBasedAAWrapperPassPass
initializeTypePromotionLegacyPass
initializeUniformityInfoWrapperPassPass
initializeUnifyLoopExitsLegacyPassPass
initializeUnpackMachineBundlesLegacyPass
initializeUnreachableBlockElimLegacyPassPass
initializeUnreachableMachineBlockElimLegacyPass
initializeVectorization Initialize all passes linked into the Vectorize library.
initializeVerifierLegacyPassPass
initializeVirtRegMapWrapperLegacyPass
initializeVirtRegRewriterLegacyPass
initializeWasmEHPreparePass
initializeWinEHPreparePass
initializeWindowsSecureHotPatchingPass
initializeWriteBitcodePassPass
initializeXRayInstrumentationLegacyPass
inlineCostFeatureToMlFeature
inlineCostStr Utility for extracting the inline cost message to a string.
insertDebugValuesForPHIs Propagate dbg.value intrinsics through the newly inserted PHIs.
insertIfNotContained Add Candidate to Cycles if it is not already contained in Cycles.
inst_begin
inst_end
install_bad_alloc_error_handler Installs a new bad alloc error handler that should be used whenever a bad alloc error, e.g. failing malloc/calloc, is encountered by LLVM.
install_fatal_error_handler install_fatal_error_handler - Installs a new error handler to be used whenever a serious (non-recoverable) error is encountered by LLVM.
install_out_of_memory_new_handler Install a new-handler that reports out-of-memory as a fatal LLVM error.
instrprof_category
instrs
instructions
instructionsWithoutDebug Construct a range iterator which begins at It and moves forwards until End is reached, skipping any debug instructions.
interleave interleave overloads
interleaveComma interleaveComma overloads
interleaved Output range R as a sequence of interleaved elements. Requires the range element type to be printable using raw_ostream& operator<<. The Separator and Prefix / Suffix can be customized. Examples: `c++ SmallVector<int> Vals = {1, 2, 3}; OS << interleaved(Vals); // ==> "1, 2, 3" OS << interleaved(Vals, ";"); // ==> "1;2;3" OS << interleaved(Vals, " ", "{", "}"); // ==> "{1 2 3}" `
interleaved_array Output range R as an array of interleaved elements. Requires the range element type to be printable using raw_ostream& operator<<. The Separator can be customized. Examples: `c++ SmallVector<int> Vals = {1, 2, 3}; OS << interleaved_array(Vals); // ==> "[1, 2, 3]" OS << interleaved_array(Vals, ";"); // ==> "[1;2;3]" OS << interleaved_array(Vals, " "); // ==> "[1 2 3]" `
internalizeModule Helper function to internalize functions and variables in a Module.
intersectAccessGroups Compute the access-group list of access groups that Inst1 and Inst2 are both in. If either instruction does not access memory at all, it is considered to be in every list.
intrinsicPropagatesPoison Return whether this intrinsic propagates poison for all operands.
inverse_children Return a range over the inverse-order children of node G.
inverse_depth_first Return a range that visits the inverse of G in depth-first order.
inverse_depth_first_ext Return a range that visits the inverse of G in depth-first order using visited set S.
inverse_fabs Return the test mask which returns true after fabs is applied to the value.
inverse_nodes Return a range over all nodes of G in inverse graph order.
inverse_post_order_ext Post-order traversal of the inverse of G using external visited set S.
invertCondition Invert the given true/false value, possibly reusing an existing copy.
invertFPClassTestIfSimpler Evaluates if the specified FP class test is better performed as the inverse (i.e. fewer instructions should be required to lower it). An example is the test "inf|normal|subnormal|zero", which is an inversion of "nan".
invoke C++20 constexpr invoke. This uses std::apply (constexpr in C++17) to achieve constexpr invocation.
invokeGlobalTargetPassConfigCallbacks
isASCII isASCII overloads
isAcquireOrStronger
isAddrAligned Checks that Addr is a multiple of the alignment.
isAligned Checks that SizeInBytes is a multiple of the alignment.
isAllOnesConstant Returns true if V is an integer constant with all bits set.
isAllOnesOrAllOnesSplat isAllOnesOrAllOnesSplat overloads
isAllocLikeFn Tests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like).
isAllocaPromotable Return true if this alloca is legal for promotion.
isAllocationFn Tests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like).
isAlmostDeadIV Return true if the induction variable IV in a Loop whose latch is LatchBlock would become dead if the exit test Cond were removed. Conservatively returns false if analysis is insufficient.
isAlnum Checks whether character C is either a decimal digit or an uppercase or lowercase letter as classified by "C" locale.
isAlpha Checks if character C is a valid letter as classified by "C" locale.
isArm64ECMangledFunctionName Check if an ARM64EC function name is mangled.
isAssertMI Returns true if the instruction MI is one of the assert instructions.
isAssignmentTrackingEnabled Return true if assignment tracking is enabled for module M.
isAssumeLikeIntrinsic Return true if it is an intrinsic that cannot be speculated but also cannot trap.
isAssumeWithEmptyBundle Return true iff the operand bundles of the provided llvm.assume doesn't contain any valuable information. This is true when: - The operand bundle is empty - The operand bundle only contains information about dropped values or constant folded values.
isAsynchronousEHPersonality Returns true if this personality function catches asynchronous exceptions.
isAtLeastOrStrongerThan
isBaseOfObject Return true if we know V to the base address of the corresponding memory object. This implies that any address less than V must be out of bounds for the underlying object. Note that just being isIdentifiedObject() is not enough - For example, a negative offset from a noalias argument or call can be inbounds w.r.t the actual underlying object.
isBitcode isBitcode - Return true if the given bytes are the magic bytes for LLVM IR bitcode, either with or without a wrapper.
isBitcodeContainingObjCCategory Return true if Buffer contains a bitcode file with ObjC code (category or class) in it.
isBitcodeWrapper isBitcodeWrapper - Return true if the given bytes are the magic bytes for an LLVM IR bitcode wrapper.
isBitcodeWriterPass Check whether a pass is a BitcodeWriterPass.
isBitwiseNot Returns true if V is a bitwise not operation. Assumes that an all ones constant is canonicalized to be operand 1.
isBranchWeightMD Checks if an MDNode contains Branch Weight Metadata
isBuildVectorAllOnes Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are ~0 or undef.
isBuildVectorAllZeros Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are 0 or undef.
isBuildVectorConstantSplat isBuildVectorConstantSplat overloads
isBytewiseValue If the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with. This is true for all i8 values obviously, but is also true for i32 0, i32 -1, i16 0xF0F0, double 0.0 etc. If the value can't be handled with a repeated byte store (e.g. i16 0x1234), return null. If the value is entirely undef and padding, return undef.
isCFGuardCall
isCFGuardFunction
isCallableCC
isCheckForZeroAndMulWithOverflow Match one of the patterns up to the select/logic op: %Op0 = icmp ne i4 %X, 0 %Agg = call { i4, i1 } llvm.[us]mul.with.overflow.i4(i4 %X, i4 %Y) %Op1 = extractvalue { i4, i1 } %Agg, 1 %ret = select i1 %Op0, i1 %Op1, i1 false / %ret = and i1 %Op0, %Op1
isCompileUnit
isConsecutiveAccess Returns true if the memory operations A and B are consecutive. This is a simple API that does not depend on the analysis pass.
isConstFalseVal
isConstOrConstSplat isConstOrConstSplat overloads
isConstOrConstSplatFP isConstOrConstSplatFP overloads
isConstTrueVal Returns true if given the TargetLowering's boolean contents information, the value Val contains a true value.
isConstantOrConstantSplatVector Determines if Def defines a constant integer or a splat vector of constant integers.
isConstantOrConstantSplatVectorFP Determines if Def defines a float constant integer or a splat vector of float constant integers.
isConstantOrConstantVector isConstantOrConstantVector overloads
isCriticalEdge Return true if the specified edge is a critical edge. Critical edges are edges from a block with multiple successors to a block with multiple predecessors.
isCurrentDebugType isCurrentDebugType - Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option. An optional level can be provided to control the verbosity of the output. If the provided level is not 0 and user specified a level below the provided level, return false.
isCycleInvariant
isDefaultFPEnvironment Returns true if the exception handling behavior and rounding mode match what is used in the default floating point environment.
isDereferenceableAndAlignedInLoop isDereferenceableAndAlignedInLoop overloads
isDereferenceableAndAlignedPointer isDereferenceableAndAlignedPointer overloads
isDereferenceablePointer Equivalent to isDereferenceableAndAlignedPointer with an alignment of 1.
isDigit Checks if character C is one of the 10 decimal digits.
isEmbeddedModelEvaluatorValid
isEscapeSource Returns true if the pointer is one which would have been considered an escape by isNotCapturedBefore.
isExplicitlyUnknownProfileMetadata
isFilterPassesEmpty
isFinite Return true if this loop can be assumed to run for a finite number of iterations.
isFuncletEHPersonality Returns true if this is a personality function that invokes handler funclets (which must return to it).
isFunctionInPrintList
isGPUProfTarget Determines whether module targets a GPU eligable for PGO instrumentation
isGuaranteedNotToBePoison isGuaranteedNotToBePoison overloads
isGuaranteedNotToBeUndef isGuaranteedNotToBeUndef overloads
isGuaranteedNotToBeUndefOrPoison isGuaranteedNotToBeUndefOrPoison overloads
isGuaranteedToExecuteForEveryIteration Return true if this function can prove that the instruction I is executed for every iteration of the loop L.
isGuaranteedToTransferExecutionToSuccessor isGuaranteedToTransferExecutionToSuccessor overloads
isGuard Returns true iff U has semantics of a guard expressed in a form of call of llvm.experimental.guard intrinsic.
isGuardAsWidenableBranch Returns true iff U has semantics of a guard expressed in a form of a widenable conditional branch to deopt block.
isHeuristicInlineCostFeature
isHexDigit Checks if character C is a hexadecimal numeric character.
isIRPGOFlagSet Check if INSTR_PROF_RAW_VERSION_VAR is defined. This global is only being set in IR PGO compilation.
isIRPrintingPass Return true if a pass is for IR printing.
isIdentifiedFunctionLocal Return true if V is umabigously identified at the function-level. Different IdentifiedFunctionLocals can't alias. Further, an IdentifiedFunctionLocal can not alias with any function arguments other than itself, which is not necessarily true for IdentifiedObjects.
isIdentifiedObject Return true if this pointer refers to a distinct and identifiable object. This returns true for: Global Variables and Functions (but not Global Aliases) Allocas ByVal and NoAlias Arguments NoAlias returns (e.g. calls to malloc)
isImpliedByDomCondition Return the boolean condition value in the context of the given instruction if it is known based on dominating conditions.
isImpliedCondition Return true if RHS is known to be implied true by LHS. Return false if RHS is known to be implied false by LHS. Otherwise, return std::nullopt if no implication can be made. A & B must be i1 (boolean) values or a vector of such values. Note that the truth table for implication is the same as <=u on i1 values (but not <=s!). The truth table for both is: | T | F (B) T | T | F F | T | T (A)
isInTailCallPosition Test if the given instruction is in a position to be optimized with a tail-call. This roughly means that it's in a block with a return and there's nothing that needs to be scheduled between it and the return.
isInlineViable Check if it is mechanically possible to inline the function Callee, based on the contents of the function.
isInstructionTriviallyDead Return true if the result produced by the instruction is not used, and the instruction will return. Certain side-effecting instructions are also considered dead if there are no uses of the instruction.
isInt Checks if an integer fits into the given bit width.
isIntN Checks if an signed integer fits into the given (dynamic) bit width.
isIntOrFPConstant Return true if V is either a integer or FP constant.
isIntrinsicReturningPointerAliasingArgumentWithoutCapturing {launder,strip}.invariant.group returns pointer that aliases its argument, and it only captures pointer by returning it. These intrinsics are not marked as nocapture, because returning is considered as capture. The arguments are not marked as returned neither, because it would make it useless. If MustPreserveOffset is true, the intrinsic must preserve the byte offset of the pointer within its underlying object (which excludes llvm.ptrmask, since masking off low bits changes the byte offset while still aliasing the same object).
isKnownIntegral Return true if the floating-point value V is known to be an integer value.
isKnownInversion Return true iff: 1. X is poison implies Y is poison. 2. X is true implies Y is false. 3. X is false implies Y is true. Otherwise, return false.
isKnownNegation Return true if the two given values are negation. Currently can recoginze Value pair: 1: <X, Y> if X = sub (0, Y) or Y = sub (0, X) 2: <X, Y> if X = sub (A, B) and Y = sub (B, A)
isKnownNegative Returns true if the given value is known be negative (i.e. non-positive and non-zero).
isKnownNegativeInLoop Returns true if we can prove that S is defined and always negative in loop L.
isKnownNeverInfOrNaN Return true if the floating-point value can never contain a NaN or infinity.
isKnownNeverInfinity Return true if the floating-point scalar value is not an infinity or if the floating-point vector value has no infinities. Return false if a value could ever be infinity.
isKnownNeverNaN Return true if the floating-point scalar value is not a NaN or if the floating-point vector value has no NaN elements. Return false if a value could ever be NaN.
isKnownNonEqual Return true if the given values are known to be non-equal when defined. Supports scalar integer types only.
isKnownNonNegative Returns true if the give value is known to be non-negative.
isKnownNonNegativeInLoop Returns true if we can prove that S is defined and always non-negative in loop L.
isKnownNonPositiveInLoop Returns true if we can prove that S is defined and always non-positive in loop L.
isKnownNonZero Return true if the given value is known to be non-zero when defined. For vectors, return true if every element is known to be non-zero when defined. For pointers, if the context instruction and dominator tree are specified, perform context-sensitive analysis and return true if the pointer couldn't possibly be null at the specified instruction. Supports values with integer or pointer type and vectors of integers.
isKnownPositive Returns true if the given value is known be positive (i.e. non-negative and non-zero).
isKnownPositiveInLoop Returns true if we can prove that S is defined and always positive in loop L.
isKnownToBeAPowerOfTwo isKnownToBeAPowerOfTwo overloads
isLegalToPromote Return true if the given indirect call site can be made to call Callee.
isLegalUTF8Sequence
isLegalUTF8String
isLibFreeFunction isLibFreeFunction - Returns true if the function is a builtin free()
isLibFuncEmittable Check whether the library function is available on target and also that it in the current Module is a Function with the right type.
isLower Checks if character C is a lowercase letter as classified by "C" locale.
isManyPotentiallyReachableFromMany Determine whether there is a potentially a path from at least one block in 'Worklist' to at least one block in 'StopSet' within a single function without passing through any of the blocks in 'ExclusionSet'. Returns false only if we can prove that once any block in 'Worklist' has been reached then no blocks in 'StopSet' can be executed without passing through any blocks in 'ExclusionSet'. Conservatively returns true.
isMask_32 Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (32 bit version). Ex. isMask_32(0x0000FFFFU) == true.
isMask_64 Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (64 bit version).
isMaskedSlidePair Does this shuffle mask represent either one slide shuffle or a pair of two slide shuffles, combined with a select on some constant vector mask? A slide is a shuffle mask which shifts some set of elements up or down the vector, with all other elements being undefined. An identity shuffle will be matched a slide by 0. The output parameter provides the source (-1 means no source), and slide direction for each slide.
isMathLibCallNoop Check whether the given call has no side-effects. Specifically checks for math routimes which sometimes set errno.
isMinSignedConstant Returns true if V is a constant min signed integer value.
isModAndRefSet
isModOrRefSet
isModSet
isMustProgress Return true if this loop can be assumed to make progress. (i.e. can't be infinite without side effects without also being undefined)
isNoAliasCall Return true if this pointer is returned by a noalias function.
isNoModRef
isNoOpWithoutInvoke Return true if this personality may be safely removed if there are no invoke instructions remaining in the current function.
isNonDataDep Returns true if Dep is a non-null non-data dependency.
isNotCrossLaneOperation Return true if the instruction doesn't potentially cross vector lanes. This condition is weaker than checking that the instruction is lanewise: lanewise means that the same operation is splatted across all lanes, but we also include the case where there is a different operation on each lane, as long as the operation only uses data from that lane. An example of an operation that is not lanewise, but doesn't cross vector lanes is insertelement.
isNotVisibleOnUnwind Return true if Object memory is not visible after an unwind, in the sense that program semantics cannot depend on Object containing any particular value on unwind. If the RequiresNoCaptureBeforeUnwind out parameter is set to true, then the memory is only not visible if the object has not been captured prior to the unwind. Otherwise it is not visible even if captured.
isNullConstant Returns true if V is a constant integer zero.
isNullConstantOrUndef Returns true if V is a constant integer zero or an UNDEF node.
isNullFPConstant Returns true if V is an FP constant with a value of positive zero.
isNullOrNullSplat isNullOrNullSplat overloads
isOneConstant Returns true if V is a constant integer one.
isOneOrOneSplat Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs). Build vector implicit truncation is allowed, but the truncated bits need to be zero.
isOneOrOneSplatFP Return true if the value is a constant floating-point value, or a splatted vector of a constant floating-point value, of 1.0 (with no undefs).
isOnesOrOnesSplat Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs). Does not permit build vector implicit truncation.
isOnlyUsedInZeroComparison
isOnlyUsedInZeroEqualityComparison
isOverflowIntrinsicNoWrap Returns true if the arithmetic part of the WO 's result is used only along the paths control dependent on the computation not overflowing, WO being an <op>.with.overflow intrinsic.
isPassInPrintList
isPhysRegUsedAfter Check if physical register Reg is used after MBI.
isPotentiallyReachable isPotentiallyReachable overloads
isPotentiallyReachableFromMany Determine whether there is at least one path from a block in 'Worklist' to 'StopBB' without passing through any blocks in 'ExclusionSet', returning true if uncertain.
isPowerOf2_32 Return true if the argument is a power of two > 0. Ex. isPowerOf2_32(0x00100000U) == true (32 bit edition.)
isPowerOf2_64 Return true if the argument is a power of two > 0 (64 bit edition.)
isPreISelGenericFloatingPointOpcode Returns whether opcode Opc is a pre-isel generic floating-point opcode, having only floating-point operands.
isPreISelGenericOpcode Check whether the given Opcode is a generic opcode that is not supposed to appear after ISel.
isPreISelGenericOptimizationHint
isPrefixedHexStyle Return true if hex style S includes a radix prefix.
isPresplitCoroSuspendExitEdge
isPrint Checks whether character C is printable.
isPunct Checks whether character C is a punctuation character.
isRangeRelaxable
isRawBitcode isRawBitcode - Return true if the given bytes are the magic bytes for raw LLVM IR bitcode (without a wrapper).
isReachedBefore
isReadOnlyLoop Returns true if the loop contains read-only memory accesses and doesn't throw. Puts loads that may fault into NonDereferenceableAndAlignedLoads.
isReallocLikeFn Tests if a function is a call or invoke to a library function that reallocates memory (e.g., realloc).
isRefSet
isReleaseModelValid isReleaseModelValid overloads
isReleaseOrStronger
isRemovableAlloc Return true if this is a call to an allocation function that does not have side effects that we are required to preserve beyond the effect of allocating a new object. Ex: If our allocation routine has a counter for the number of objects allocated, and the program prints it on exit, can the value change due to optimization? Answer is highly language dependent. Note: Removable really does mean removable; it does not mean observable. A language (e.g. C++) can allow removing allocations without allowing insertion or speculative execution of allocation routines.
isSafeToDestroyConstant It is safe to destroy a constant iff it is only used by constants itself. Note that constants cannot be cyclic, so this test is pretty easy to implement recursively.
isSafeToLoadUnconditionally Return true if we know that executing a load from this value cannot trap.
isSafeToMoveBefore isSafeToMoveBefore overloads
isSafeToSpeculativelyExecute Return true if the instruction does not have any effects besides calculating the result and does not have undefined behavior.
isSafeToSpeculativelyExecuteWithOpcode This returns the same result as isSafeToSpeculativelyExecute if Opcode is the actual opcode of Inst. If the provided and actual opcode differ, the function (virtually) overrides the opcode of Inst with the provided Opcode. There are come constraints in this case: * If Opcode has a fixed number of operands (eg, as binary operators do), then Inst has to have at least as many leading operands. The function will ignore all trailing operands beyond that number. * If Opcode allows for an arbitrary number of operands (eg, as CallInsts do), then all operands are considered. * The virtual instruction has to satisfy all typing rules of the provided Opcode. * This function is pessimistic in the following sense: If one actually materialized the virtual instruction, then isSafeToSpeculativelyExecute may say that the materialized instruction is speculatable whereas this function may have said that the instruction wouldn't be speculatable. This behavior is a shortcoming in the current implementation and not intentional.
isSafeToSpeculativelyExecuteWithVariableReplaced Don't use information from its non-constant operands. This helper is used when its operands are going to be replaced.
isSafeToUnrollAndJam
isScopedEHPersonality Returns true if this personality uses scope-style EH IR instructions: catchswitch, catchpad/ret, and cleanuppad/ret.
isShiftedInt Checks if a signed integer is an N bit number shifted left by S.
isShiftedMask_32 isShiftedMask_32 overloads
isShiftedMask_64 isShiftedMask_64 overloads
isShiftedUInt Checks if a unsigned integer is an N bit number shifted left by S.
isSignBitCheck Given an exploded icmp instruction, return true if the comparison only checks the sign bit. If it only checks the sign bit, set TrueIfSigned if the result of the comparison is true when the input value is signed.
isSpace Checks whether character C is whitespace in the "C" locale.
isSpecialPass
isSplatValue Return true if each element of the vector value V is poisoned or equal to every other non-poisoned element. If an index element is specified, either every element of the vector is poisoned or the element at that index is not poisoned and equal to every other non-poisoned element. This may be more powerful than the related getSplatValue() because it is not limited by finding a scalar source value to a splatted vector.
isStatepointDirectiveAttr Return true if the Attr is an attribute that is a statepoint directive.
isStrongerThan Returns true if ao is stronger than other as defined by the AtomicOrdering lattice, which is based on C++'s definition.
isStrongerThanMonotonic
isStrongerThanUnordered
isTargetSpecificOpcode Check whether the given Opcode is a target-specific opcode.
isTheSameCluster Return whether the input cluster ID's are the same and valid.
isTimeTraceVerbose
isTriviallyDead Check whether an instruction MI is dead: it only defines dead virtual registers, and doesn't have other side effects.
isTriviallyScalarizable Note: There are intrinsics where implementing vectorization for the intrinsic is redundant, but we want to implement scalarization of the vector. To prevent the requirement that an intrinsic also implements vectorization we provide this separate function.
isTriviallyVectorizable Identify if the intrinsic is trivially vectorizable. This method returns true if the intrinsic's argument types are all scalars for the scalar form of the intrinsic and all vectors (or scalars handled by isVectorIntrinsicWithScalarOpAtArg) for the vector form of the intrinsic.
isUInt Checks if an unsigned integer fits into the given bit width.
isUIntN Checks if an unsigned integer fits into the given (dynamic) bit width.
isUnpackedStructLiteral
isUpper Checks if character C is a uppercase letter as classified by "C" locale.
isValidAsAccessGroup Return whether an MDNode might represent an access group.
isValidAssumeForContext Return true if it is valid to use the assumptions provided by an assume intrinsic, I, at the point in the control-flow identified by the context instruction, CxtI. By default, ephemeral values of the assumption are treated as an invalid context, to prevent the assumption from being used to optimize away its argument. If the caller can ensure that this won't happen, it can call with AllowEphemerals set to true to get more valid assumptions.
isValidAtomicOrdering
isValidAtomicOrderingCABI
isValueProfileMD Checks if an MDNode contains value profiling Metadata
isVectorIntrinsicWithOverloadTypeAtArg Identifies if the vector form of the intrinsic is overloaded on the type of the operand at index OpdIdx, or on the return type if OpdIdx is -1. TTI is used to consider target specific intrinsics, if no target specific intrinsics will be considered then it is appropriate to pass in nullptr.
isVectorIntrinsicWithScalarOpAtArg Identifies if the vector form of the intrinsic has a scalar operand. TTI is used to consider target specific intrinsics, if no target specific intrinsics will be considered then it is appropriate to pass in nullptr.
isVectorIntrinsicWithStructReturnOverloadAtField Identifies if the vector form of the intrinsic that returns a struct is overloaded at the struct element index RetIdx. /// TTI is used to consider target specific intrinsics, if no target specific intrinsics will be considered then it is appropriate to pass in nullptr.
isVectorizedStructTy Returns true if StructTy is an unpacked literal struct where all elements are vectors of matching element count. This does not include empty structs.
isVectorizedTy Returns true if Ty is a vector type or a struct of vector types where all vector types share the same VF.
isWidenableBranch Returns true iff U is a widenable branch (that is, extractWidenableCondition returns widenable condition).
isWidenableCondition Returns true iff V has semantics of llvm.experimental.widenable.condition call
isWritableObject Return true if the Object is writable, in the sense that any location based on this pointer that can be loaded can also be stored to without trapping. Additionally, at the point Object is declared, stores can be introduced without data races. At later points, this is only the case if the pointer can not escape to a different thread.
isZeroOrZeroSplat Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs). Build vector implicit truncation is allowed.
isZeroOrZeroSplatFP Return true if the value is a constant (+/-)0.0 floating-point value or a splatted vector thereof (with no undefs).
is_contained is_contained overloads
is_sorted is_sorted overloads
is_sorted_constexpr is_sorted_constexpr overloads
isa isa<X> - Return true if the parameter to the template is an instance of one of the template type arguments. Used like this:
isa_and_nonnull Return true if Val is present and matches any of X.
isa_and_present isa_and_present<X> - Functionally identical to isa, except that a null value is accepted.
itaniumDemangle Returns a non-NULL pointer to a NUL-terminated C style string that should be explicitly freed, if successful. Otherwise, may return nullptr if mangled_name is not a valid mangling or is nullptr.
itostr Convert a signed integer to a decimal string.
jitLinkForORC
jitTargetAddressToFunction Convert a JITTargetAddress to a callable function pointer.
jitTargetAddressToPointer Convert a JITTargetAddress to a pointer.
jobserver_concurrency Coordinate with a GNU Make jobserver when one is present.
join join overloads
joinErrors Concatenate errors. The resulting Error is unchecked, and contains the ErrorInfo(s), if any, contained in E1, followed by the ErrorInfo(s), if any, contained in E2.
join_items Joins the strings in the parameter pack Items, adding Separator between the elements. All arguments must be implicitly convertible to std::string, or there should be an overload of std::string::operator+=() that accepts the argument explicitly.
lcm Returns the least common multiple of A and B.
left_justify left_justify - append spaces after string so total output is Width characters. If Str is larger that Width, full string is written with no padding.
legalizeMachineFunction
libDriverMain
linkAllBuiltinGCs Ensure the definition of the builtin GCs gets linked in
linkErlangGCPrinter Creates an erlang-compatible metadata printer.
linkOcamlGCPrinter Creates an ocaml-compatible metadata printer.
lintFunction
lintModule Lint a module.
llvm_execute_on_thread_impl
llvm_is_multithreaded Returns true if LLVM is compiled with support for multi-threading, and false otherwise.
llvm_shutdown llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
llvm_thread_detach_impl
llvm_thread_get_current_id_impl
llvm_thread_get_id_impl
llvm_thread_join_impl
llvm_unreachable_internal [noreturn]This function calls abort(), and prints the optional message to stderr. Use the llvm_unreachable macro (that adds location info), instead of calling this function directly.
localCache Create a local file system cache which uses the given cache name, temporary file prefix, cache directory and file callback. This function does not immediately create the cache directory if it does not yet exist; this is done lazily the first time a file is added. The cache name appears in error messages for errors during caching. The temporary file prefix is used in the temporary file naming scheme used when writing files atomically.
logAllUnhandledErrors Log all errors (if any) in E to OS. If there are any errors, ErrorBanner will be printed before the first one is logged. A newline will be printed after each error.
longestCommonSequence
lowerAtomicCmpXchgInst Convert the given Cmpxchg into primitive load and compare.
lowerAtomicRMWInst Convert the given RMWI into primitive load and stores, assuming that doing so is legal. Return true if the lowering succeeds.
lowerConstantIntrinsics
lowerGlobalIFuncUsersAsGlobalCtor Lower all calls to ifuncs by replacing uses with indirect calls loaded out of a global table initialized in a global constructor. This will introduce one constructor function and adds it to llvm.global_ctors. The constructor will call the resolver function once for each ifunc.
lowerObjectSizeCall Try to turn a call to @llvm.objectsize into an integer value of the given Type. Returns null on failure. If MustSucceed is true, this function will not return null, and may return conservative values governed by the second argument of the call to objectsize.
lowerUnaryVectorIntrinsicAsLoop Lower CI as a loop. CI is a unary intrinsic with a vector argument and is deleted and replaced with a loop.
lower_bound lower_bound overloads
machineFunctionIsIllegal Checks that MIR is fully legal, returns an illegal instruction if it's not, nullptr otherwise
machineToStr
makeFollowupLoopID Create a new loop identifier for a loop created from a loop transformation.
makeGuardControlFlowExplicit Splits control flow at point of Guard, replacing it with explicit branch by the condition of guard's first argument. The taken branch then goes to the block that contains Guard's successors, and the non-taken branch goes to a newly-created deopt block that contains a sole call of the deoptimize function DeoptIntrinsic. If 'UseWC' is set, preserve the widenable nature of the guard by lowering to equivelent form. If not set, lower to a form without widenable semantics.
makeIntrusiveRefCnt Factory function for creating intrusive ref counted pointers.
makePostTransformationMetadata Create a new LoopID after the loop has been transformed.
makeSampler
makeVisitor Returns an opaquely-typed Callable object whose operator() overload set is the sum of the operator() overload sets of each CallableT in CallableTs.
make_early_inc_range Make a range that does early increment to allow mutation of the underlying range without disrupting iteration.
make_error Make a Error instance representing failure using the given error info type.
make_error_code Convert an errc value to a std::error_code.
make_fallible_end Convenience wrapper to make a fallible_iterator end value from an instance of an underlying iterator.
make_fallible_itr Convenience wrapper to make a fallible_iterator value from an instance of an underlying iterator and an Error reference.
make_fallible_range Build an iterator range whose increments report failure through Err.
make_filter_range Convenience function that takes a range of elements and a predicate, and return a new filter_iterator range.
make_first_range Given a container of pairs, return a range over the first elements.
make_pointee_range Return a range that iterates over the pointees of Range.
make_pointer_range Return a range whose iterators expose addresses of pointees in Range.
make_range make_range overloads
make_second_range Given a container of pairs, return a range over the second elements.
mapAtomInstance Mark a cloned instruction as a new instance so that its source loc can be updated when remapped.
mapLastWindowsError
mapWindowsError
map_iterator Create a mapped iterator over I using F.
map_range Return a range that applies F to the elements of C. F can be a function, lambda, or member pointer.
map_to_vector Map a range to a SmallVector with element types deduced from the mapping. F can be a function, lambda, or member pointer.
markRegisterParameterAttributes
maskContainsAllOneOrUndef Given a mask vector of i1, Return true if any of the elements of this predicate mask are known to be true or undef. That is, return true if at least one lane can be assumed active.
maskLeadingOnes Create a bitmask with the N left-most bits set to 1, and all other bits set to 0. Only unsigned types are allowed.
maskLeadingZeros Create a bitmask with the N left-most bits set to 0, and all other bits set to 1. Only unsigned types are allowed.
maskTrailingOnes Create a bitmask with the N right-most bits set to 1, and all other bits set to 0. Only unsigned types are allowed.
maskTrailingZeros Create a bitmask with the N right-most bits set to 0, and all other bits set to 1. Only unsigned types are allowed.
matchDecomposedSelectPattern Determine the pattern that a select with the given compare as its predicate and given values as its true/false operands would match.
matchSelectPattern Pattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind and providing the out parameter results if we successfully match.
matchSimpleBinaryIntrinsicRecurrence Attempt to match a simple value-accumulating recurrence of the form: %llvm.intrinsic.acc = phi Ty [%Init, %Entry], [%llvm.intrinsic, %backedge] %llvm.intrinsic = call Ty llvm.intrinsic(%OtherOp, %llvm.intrinsic.acc) OR %llvm.intrinsic.acc = phi Ty [%Init, %Entry], [%llvm.intrinsic, %backedge] %llvm.intrinsic = call Ty llvm.intrinsic(%llvm.intrinsic.acc, %OtherOp)
matchSimpleRecurrence matchSimpleRecurrence overloads
matchSimpleTernaryIntrinsicRecurrence Attempt to match a simple value-accumulating recurrence of the form: %llvm.intrinsic.acc = phi Ty [%Init, %Entry], [%llvm.intrinsic, %backedge] %llvm.intrinsic = call Ty llvm.intrinsic(%OtherOp0, %OtherOp1, %llvm.intrinsic.acc) OR %llvm.intrinsic.acc = phi Ty [%Init, %Entry], [%llvm.intrinsic, %backedge] %llvm.intrinsic = call Ty llvm.intrinsic(%llvm.intrinsic.acc, %OtherOp0, %OtherOp1)
matchUnaryPredicate Attempt to match a unary predicate against a scalar/splat constant or every element of a constant G_BUILD_VECTOR. If ConstVal is null, the source value was undef.
maxIntN Gets the maximum value for a N-bit signed integer.
maxUIntN Gets the maximum value for a N-bit unsigned integer.
max_element max_element overloads
maximum Implements IEEE 754-2019 maximum semantics. Returns the larger of 2 arguments, returning a quiet NaN if an argument is a NaN and treating -0 as less than +0.
maximumnum Implements IEEE 754-2019 maximumNumber semantics. Returns the larger of 2 arguments, not propagating NaNs and treating -0 as less than +0.
maxnum Implements IEEE-754 2008 maxNum semantics. Returns the larger of the 2 arguments if both are not NaN. If either argument is a qNaN, returns the other argument. If either argument is sNaN, return a qNaN. +0 is treated as ordered greater than -0.
mayBeOldLoopAttachmentTag Check whether a string looks like an old loop attachment tag.
mayContainIrreducibleControl
mayHaveMemprofSummary Returns true if the instruction could have memprof metadata, used to ensure consistency between summary analysis and the ThinLTO backend processing.
mayHaveNonDefUseDependency Returns true if the result or effects of the given instructions I depend values not reachable through the def use graph. * Memory dependence arises for example if the instruction reads from memory or may produce effects or undefined behaviour. Memory dependent instructions generally cannot be reorderd with respect to other memory dependent instructions. * Control dependence arises for example if the instruction may fault if lifted above a throwing call or infinite loop.
maybeMarkSanitizerLibraryCallNoBuiltin Given a CallInst, check if it calls a string function known to CodeGen, and mark it with NoBuiltin if so. To be used by sanitizers that intend to intercept string functions and want to avoid converting them to target specific instructions.
mergeSampleProfErrors
mi_bundle_ops
microsoftDemangle Demangles the Microsoft symbol pointed at by mangled_name and returns it. Returns a pointer to the start of a null-terminated demangled string on success, or nullptr on error. If n_read is non-null and demangling was successful, it receives how many bytes of the input string were consumed. status receives one of the demangle_ enum entries above if it's not nullptr. Flags controls various details of the demangled representation.
minIntN Gets the minimum value for a N-bit signed integer.
min_element min_element overloads
minimum Implements IEEE 754-2019 minimum semantics. Returns the smaller of 2 arguments, returning a quiet NaN if an argument is a NaN and treating -0 as less than +0.
minimumnum Implements IEEE 754-2019 minimumNumber semantics. Returns the smaller of 2 arguments, not propagating NaNs and treating -0 as less than +0.
minnum Implements IEEE-754 2008 minNum semantics. Returns the smaller of the 2 arguments if both are not NaN. If either argument is a qNaN, returns the other argument. If either argument is sNaN, return a qNaN. -0 is treated as ordered less than +0.
mismatch Provide wrappers to std::mismatch which take ranges instead of having to pass begin/end explicitly. This function returns a pair of iterators for the first mismatching elements from R1 and R2. As an example, if:
mod mod overloads
move Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
moveInstructionsToTheBeginning Move instructions, in an order-preserving manner, from FromBB to the beginning of ToBB when proven safe.
moveInstructionsToTheEnd Move instructions, in an order-preserving manner, from FromBB to the end of ToBB when proven safe.
mustExecuteUBIfPoisonOnPathTo Return true if undefined behavior would provable be executed on the path to OnPathTo if Root produced a posion result. Note that this doesn't say anything about whether OnPathTo is actually executed or whether Root is actually poison. This can be used to assess whether a new use of Root can be added at a location which is control equivalent with OnPathTo (such as immediately before it) without introducing UB which didn't previously exist. Note that a false result conveys no information.
mustSuppressSpeculation Return true if speculation of the given load must be suppressed to avoid ordering or interfering with an active sanitizer. If not suppressed, dereferenceability and alignment must be proven separately. Note: This is only needed for raw reasoning; if you use the interface below (isSafeToSpeculativelyExecute), this is handled internally.
mustTriggerUB Return true if the given instruction must trigger undefined behavior when I is executed with any operands which appear in KnownPoison holding a poison value at the point of execution.
nameUnamedGlobals Rename all the anon globals in the module using a hash computed from the list of public globals in the module.
narrowShuffleMaskElts Replace each shuffle mask index with the scaled sequential indices for an equivalent mask of narrowed elements. Mask elements that are less than 0 (sentinel values) are repeated in the output mask.
needConversion
needsComdatForCounter Check if we can use Comdat for profile variables. This will eliminate the duplicated profile variables for Comdat functions.
needsParamAccessSummary
neg Returns the negated value of the argument.
next_nodbg Increment It, then continue incrementing it while it points to a debug instruction. A replacement for std::next.
nodes Return a range over all nodes of graph G.
nonMicrosoftDemangle
nonStrictlyPostDominate In case that two BBs ThisBlock and OtherBlock are control flow equivalent but they do not strictly dominate and post-dominate each other, we determine if ThisBlock is reached after OtherBlock in the control flow.
none_of Provide wrappers to std::none_of which take ranges instead of having to pass begin/end explicitly.
normalizeForPostIncUse Normalize S to be post-increment for all loops present in Loops. Returns nullptr if the result is not invertible and CheckInvertible is true.
normalizeForPostIncUseIf Normalize S for all add recurrence sub-expressions for which Pred returns true.
not_equal_to Functor variant of std::not_equal_to that can be used as a UnaryPredicate in functional algorithms like all_of. Args is forwarded and stored by value. If you would like to pass by reference, use std::ref or std::cref.
nulls This returns a reference to a raw_ostream which simply discards output.
offsetToAlignedAddr Returns the necessary adjustment for aligning Addr to Alignment bytes, rounding up.
offsetToAlignment Returns the offset to the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align.
onlyUsedByLifetimeMarkers Return true if the only users of this pointer are lifetime markers.
onlyUsedByLifetimeMarkersOrDroppableInsts Return true if the only users of this pointer are lifetime markers or droppable instructions.
operator% Returns the remainder of A divided by B.
operator%= Stores the remainder of A divided by B in A.
operator& Bitwise conjunction operators
operator&= Bitwise conjunction assignment operators
operator* Multiplication operators
operator*= Multiplies A by B in place.
operator+ Addition operators
operator+= Addition assignment operators
operator- Unary minus operators
operator-= Subtracts B from A in place.
operator/ Returns A divided by B.
operator/= Divides A by B in place.
operator>> Right shift operator
operator^ Bitwise exclusive-or operators
operator| Bitwise disjunction operators
operator|= Bitwise disjunction assignment operators
operator~ Unary bitwise complement operator.
optimal_concurrency Limit threads to about TaskCount so small jobs avoid oversubscription.
optimizeGlobalCtorsList Call "ShouldRemove" for every entry in M's global_ctor list and remove the entries for which it returns true. Return true if anything changed.
optimized_def_chain
orderedStrictlyGreater Returns all FPClasses which are greater than all values in Mask That is, return all classes for which the comparison fcmp ole LHS, RHS will always return false. Ignores nan and treats the sign of the zeroes as ordered.
orderedStrictlyLess Returns all FPClasses which are less than all values in Mask That is, return all classes for which the comparison fcmp ole LHS, RHS will always return false. Ignores nan and treats the sign of the zeroes as ordered.
outs This returns a reference to a raw_fd_ostream for standard output. Use it like: outs() << "foo" << "bar";
overwriteULEB128 Overwrite a ULEB128 value and keep the original length.
parallelFor Invoke Fn for each index in []Begin, End), possibly in parallel.
parallelForEach parallelForEach overloads
parallelForEachError Apply Fn to each element of R in parallel and join any returned Errors.
parallelSort parallelSort overloads
parallelTransformReduce parallelTransformReduce overloads
parseAnalysisUtilityPasses This utility template takes care of adding require<> and invalidate<> passes for an analysis to a given PassManager. It is intended to be used during parsing of a pass pipeline when parsing a single PipelineName. When registering a new function analysis FancyAnalysis with the pass pipeline name "fancy-analysis", a matching ParsePipelineCallback could look like this:
parseAndVerify Try to parse module and verify it. May output verification errors to the errs().
parseAssembly parseAssemblyFile and parseAssemblyString are wrappers around this function. Parse LLVM Assembly from a MemoryBuffer.
parseAssemblyFile This function is a main interface to the LLVM Assembly Parser. It parses an ASCII file that (presumably) contains LLVM Assembly code. It returns a Module (intermediate representation) with the corresponding features. Note that this does not verify that the generated Module is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly from a file
parseAssemblyFileWithIndex This function is a main interface to the LLVM Assembly Parser. It parses an ASCII file that (presumably) contains LLVM Assembly code, including a module summary. It returns a Module (intermediate representation) and a ModuleSummaryIndex with the corresponding features. Note that this does not verify that the generated Module or Index are valid, so you should run the verifier after parsing the file to check that they are okay. Parse LLVM Assembly from a file
parseAssemblyFileWithIndexNoUpgradeDebugInfo Only for use in llvm-as for testing; this does not produce a valid module.
parseAssemblyInto This function is the low-level interface to the LLVM Assembly Parser. This is kept as an independent function instead of being inlined into parseAssembly for the convenience of interactive users that want to add recently parsed bits to an existing module.
parseAssemblyString The function is a secondary interface to the LLVM Assembly Parser. It parses an ASCII string that (presumably) contains LLVM Assembly code. It returns a Module (intermediate representation) with the corresponding features. Note that this does not verify that the generated Module is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly from a string
parseAssemblyWithIndex Parse LLVM Assembly including the summary index from a MemoryBuffer.
parseAtomicScopeIRString Parses a target syncscope string into its abstract scope, the inverse of getAtomicScopeIRString. Returns the scope and whether it is the single address space variant.
parseBitcodeFile Read the specified bitcode file, returning the module.
parseCachePruningPolicy Parse the given string as a cache pruning policy. Defaults are taken from a default constructed CachePruningPolicy object. For example: "prune_interval=30s:prune_after=24h:cache_size=50%" which means a pruning interval of 30 seconds, expiration time of 24 hours and maximum cache size of 50% of available disk space.
parseCommandLineOptions A convenience function that calls cl::ParseCommandLineOptions on the given set of options.
parseConstantValue Parse a type and a constant value in the given string.
parseDIExpressionBodyAtBeginning
parseDenormalFPAttribute Returns the denormal mode to use for inputs and outputs.
parseDenormalFPAttributeComponent Parse the expected names from the denormal-fp-math attribute.
parseFuzzerCLOpts Parse cl::opts from a fuzz target commandline.
parseIR If the given MemoryBuffer holds a bitcode image, return a Module for it. Otherwise, attempt to parse it as LLVM Assembly and return a Module for it.
parseIRFile If the given file holds a bitcode image, return a Module for it. Otherwise, attempt to parse it as LLVM Assembly and return a Module for it.
parseInfoSectionUnitHeader
parseKCFIHashAlgorithm Parse a KCFI hash algorithm name. Returns xxHash64 if the name is not recognized.
parseLongDoubleFormat Parses an IR floating-point type name into a LongDoubleFormat, returning std::nullopt if it does not name a supported long double format.
parseMBBReference
parseMDNode
parseMachineBasicBlockDefinitions Parse the machine basic block definitions, and skip the machine instructions.
parseMachineInstructions Parse the machine instructions.
parseMachineMetadata
parseModule Fuzzer friendly interface for the llvm bitcode parser.
parseNamedRegisterReference
parsePrefetchTarget
parseRegisterReference
parseStackObjectReference
parseStatepointDirectivesFromAttrs Parse out statepoint directives from the function attributes present in AS.
parseSummaryIndexAssembly Parse LLVM Assembly for summary index from a MemoryBuffer.
parseSummaryIndexAssemblyFile This function is a main interface to the LLVM Assembly Parser. It parses an ASCII file that (presumably) contains LLVM Assembly code for a module summary. It returns a ModuleSummaryIndex with the corresponding features. Note that this does not verify that the generated Index is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly Index from a file
parseSummaryIndexAssemblyString The function is a secondary interface to the LLVM Assembly Parser. It parses an ASCII string that (presumably) contains LLVM Assembly code for a module summary. It returns a a ModuleSummaryIndex with the corresponding features. Note that this does not verify that the generated Index is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly from a string
parseType Parse a type in the given string.
parseTypeAtBeginning Parse a string Asm that starts with a type. Read[out] gives the number of characters that have been read to parse the type in Asm.
parseVirtualRegisterReference
parseWidenableBranch parseWidenableBranch overloads
parseWidenableGuard
partition Provide wrappers to std::partition which take ranges instead of having to pass begin/end explicitly.
partition_point Binary search for the first iterator in a range where a predicate is false. Requires that C is always true below some limit, and always false above it.
patchReplacementInstruction Patch the replacement so that it is not more restrictive than the value being replaced. It assumes that the replacement does not get moved from its original position.
peekThroughBitcasts Return the non-bitcasted source operand of V if it exists. If V is not a bitcasted value, it is returned as-is.
peekThroughExtractSubvectors Return the non-extracted vector source operand of V if it exists. If V is not an extracted subvector, it is returned as-is.
peekThroughFreeze Return the non-frozen source operand of V if it exists. If V is not a freeze, it is returned as-is.
peekThroughInsertVectorElt Recursively peek through INSERT_VECTOR_ELT nodes, returning the source vector operand of V, as long as V is an INSERT_VECTOR_ELT operation that do not insert into any of the demanded vector elts.
peekThroughOneUseBitcasts Return the non-bitcasted and one-use source operand of V if it exists. If V is not a bitcasted one-use value, it is returned as-is.
peekThroughOneUseFreeze Return the non-frozen source operand of V if it exists and V has a single use. If V is not a single-use freeze, it is returned as-is.
peekThroughTruncates Return the non-truncated source operand of V if it exists. If V is not a truncation, it is returned as-is.
peelLoop VMap is the value-map that maps instructions from the original loop to instructions in the last peeled-off iteration. If PeelLast is true, peel off the last PeelCount iterations from L (canPeelLastIteration must be true for L), otherwise peel off the first PeelCount iterations.
performOptimizedStructLayout Compute a layout for a struct containing the given fields, making a best-effort attempt to minimize the amount of space required.
phys_regs_and_masks Returns an iterator range over all physical register and mask operands for MI and bundled instructions. This also skips any debug operands.
pointerToJITTargetAddress Convert a pointer to a JITTargetAddress.
popcount Count the number of set bits in a value. Ex. popcount(0xF000F000) = 8 Returns 0 if Value is zero.
possiblyDemandedEltsInMask Given a mask vector of the form <Y x i1>, return an APInt (of bitwidth Y) for each lane which may be active.
post_order Post-order traversal of a graph. Note: this returns a PostOrderTraversal, not an iterator range;
post_order_ext Post-order traversal of G that records visited nodes in external set S.
pred_begin
pred_empty
pred_end
pred_size Get the number of predecessors of BB. This is a linear time operation. Use BasicBlock::hasNPredecessors() or hasNPredecessorsOrMore if able.
predecessors
predicatesFoldable Return true if both predicates match sign or if at least one of them is an equality comparison (which is signless).
prepareForDynamicDebugging Modify M to prepare it for dynamic debugging before running optimizations. Return a clone of the module which references global values in M. The names of the cloned function definitions in this module are prefixed with “__dyndbg.”.
prepareTempFiles
prettyPrintRegisterOp Pretty print a register opcode and operands.
prev_nodbg Decrement It, then continue decrementing it while it points to a debug instruction. A replacement for std::prev.
printAfterPasses
printBasicBlock Print BasicBlock BB as an operand or print "<nullptr>" if BB is a nullptr.
printBeforePasses
printBlockFreq printBlockFreq overloads
printDebugLog If EnableDebugBuffering is true, this flushes the debug stream with the banner displayed, the same way it is printed automatically on program termination.
printDwarfExpression Print a Dwarf expression/
printDwarfExpressionCompact Print the expression in a format intended to be compact and useful to a user, but not perfectly unambiguous, or capable of representing every valid DWARF expression. Returns true if the expression was sucessfully printed.
printEscapedString Print each character of the specified string, escaping it if it is not printable or if it is an escape char.
printFormattedPipelinePasses
printGraphForFunction
printHTMLEscaped Print each character of the specified string, escaping HTML special characters.
printIRUnitNameForStackTrace
printJumpTableEntryReference Prints a jump table entry reference.
printLLVMNameWithoutPrefix Print out a name of an LLVM value without any prefixes.
printLoop Function to print a loop's contents as LLVM's text IR assembly.
printLowerCase printLowerCase - Print each character as lowercase if it is uppercase.
printMBBReference Prints a machine basic block reference.
printMIR printMIR overloads
printPercentEncoded Print each character of String percent-encoded for use as a URL query-component value (RFC 3986): unreserved characters (ALPHA, DIGIT, '-' '_' '.' '~') are written directly; every other byte becomes an uppercase %XX escape. Operates on raw bytes, so UTF-8 round-trips.
printReg Prints virtual and physical registers with or without a TRI instance.
printRegClassOrBank Create Printable object to print register classes or register banks on a raw_ostream.
printRegUnit Create Printable object to print register units on a raw_ostream.
printRelativeBlockFreq
printVRegOrUnit Create Printable object to print virtual registers and physical registers on a raw_ostream.
processImportsFiles Call F passing each of the files module ModulePath will import from.
processShuffleMasks Splits and processes shuffle mask depending on the number of input and output registers. The function does 2 main things: 1) splits the source/destination vectors into real registers; 2) do the mask analysis to identify which real registers are permuted. Then the function processes resulting registers mask using provided action items. If no input register is defined, NoInputAction action is used. If only 1 input register is used, SingleInputAction is used, otherwise ManyInputsAction is used to process > 2 input registers and masks.
product_of Returns the product of all values in Range with Init initial value. The default initial value is 1.
programUndefinedIfPoison
programUndefinedIfUndefOrPoison Return true if this function can prove that if Inst is executed and yields a poison value or undef bits, then that will trigger undefined behavior.
promoteCall Promote the given indirect call site to unconditionally call Callee.
promoteCallWithIfThenElse Promote the given indirect call site to conditionally call Callee. The promoted direct call instruction is predicated on `CB.getCalledOperand() == Callee`.
promoteCallWithVTableCmp This is similar to promoteCallWithIfThenElse except that the condition to promote a virtual call is that VPtr is the same as any of AddressPoints.
promoteLoopAccessesToScalars Try to promote memory values to scalars by sinking stores out of the loop and moving loads to before the loop. We do this by looping over the stores in the loop, looking for stores to Must pointers which are loop invariant. It takes a set of must-alias values, Loop exit blocks vector, loop exit blocks insertion point vector, PredIteratorCache, LoopInfo, DominatorTree, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status. AllowSpeculation is whether values should be hoisted even if they are not guaranteed to execute in the loop, but are safe to speculatively execute.
propagateIRFlags Get the intersection (logical and) of all of the potential IR flags of each scalar operation (VL) that will be converted into a vector (I). If OpValue is non-null, we only consider operations similar to OpValue when intersecting. Flag set: NSW, NUW (if IncludeWrapFlags is true), exact, and all of fast-math.
propagateMetadata Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath,] MD_nontemporal, MD_access_group, MD_mmra]. For K in Kinds, we get the MDNode for K from each of the elements of VL, compute their "intersection" (i.e., the most generic metadata value that covers all of the individual values), and set I's metadata for M equal to the intersection value.
propagatesPoison Return true if PoisonOp's user yields poison or raises UB if its operand PoisonOp is poison.
pruneCache Perform pruning using the supplied policy, returns true if pruning occurred, i.e. if Policy.Interval was expired.
range_size Returns the size of the Range, i.e., the number of elements. This implementation takes inspiration from std::ranges::size from C++20 and delegates the size check to adl_size or std::distance, in this order of preference. Unlike llvm::size, this function does not guarantee O(1) running time, and is intended to be used in generic code that does not know the exact range type.
readAbbrevAttribute Read the next (attribute, form) specification from an abbreviation declaration at Offset, advancing Offset past it. ImplicitConst is set to the inline value of a DW_FORM_implicit_const attribute and to std::nullopt otherwise. Returns false on the terminating (0, 0) pair.
readAndDecodeStrings NameStrings is a string composed of one or more possibly encoded sub-strings. The substrings are separated by 01 (returned by InstrProf.h:getInstrProfNameSeparator). This method decodes the string and calls NameCallback for each substring.
readModuleSummaryIndex Parse the specified bitcode buffer and merge the index into CombinedIndex.
readWideAPInt
recognizeBSwapOrBitReverseIdiom Try to match a bswap or bitreverse idiom.
recomputeLTOCacheKey Recomputes the LTO cache key for a given key with an extra identifier.
recomputeLivenessFlags Recomputes dead and kill flags in MBB.
registerCodeGenCallback
remapDebugVariable Remap the operands of the debug records attached to Inst, and the operands of Inst itself if it's a debug intrinsic.
remapInstructionsInBlocks Remaps instructions in Blocks using the mapping in VMap.
removeASanIncompatibleFnAttributes Remove memory attributes that are incompatible with the instrumentation added by AddressSanitizer and HWAddressSanitizer. ReadsArgMem - indicates whether function arguments may be read by instrumentation and require removing writeonly attributes.
removeAllNonTerminatorAndEHPadInstructions Remove all instructions from a basic block other than its terminator and any present EH pad instructions. Returns the number of instructions that have been removed.
removeFromUsedLists Removes global values from the llvm.used and llvm.compiler.used arrays. ShouldRemove should return true for any initializer field that should not be included in the replacement global.
removeUnreachableBlocks Remove all blocks that can not be reached from the function's entry. When FoldInstsToUnreachable is true, it will also convert obviously unreachable instructions into unreachable (e.g, store to null).
removeUnwindEdge Replace 'BB's terminator with one that does not have an unwind successor block. Rewrites invoke to call, etc. Updates any PHIs in unwind successor. Returns the instruction that replaced the original terminator, which might be a call in case the original terminator was an invoke.
remove_bad_alloc_error_handler Restores default bad alloc error handling behavior.
remove_fatal_error_handler Restores default error handling behaviour.
remove_if Provide wrappers to std::remove_if which take ranges instead of having to pass begin/end explicitly.
renameModuleForThinLTO Perform in-place global value handling on the given Module for exported local functions renamed and promoted for ThinLTO.
replace replace overloads
replaceAllDbgUsesWith Point debug users of From to To or salvage them. Use this function only when replacing all uses of From with To, with a guarantee that From is going to be deleted.
replaceAndRecursivelySimplify Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.
replaceDbgDeclare Replaces dbg.declare record when the address it describes is replaced with a new value. If Deref is true, an additional DW_OP_deref is prepended to the expression. If Offset is non-zero, a constant displacement is added to the expression (between the optional Deref operations). Offset can be negative.
replaceDbgValueForAlloca Replaces multiple dbg.value records when the alloca it describes is replaced with a new value. If Offset is non-zero, a constant displacement is added to the expression (after the mandatory Deref). Offset can be negative. New dbg.value records are inserted at the locations of the instructions they replace.
replaceDominatedUsesWith replaceDominatedUsesWith overloads
replaceDominatedUsesWithIf replaceDominatedUsesWithIf overloads
replaceNonLocalUsesWith
replaceRelativePointerUsersWithZero Finds the same "relative pointer" pattern as described above, where the target is C, and replaces the entire pattern with a constant zero.
replaceSymbolicStrideSCEV Return the SCEV corresponding to a pointer with the symbolic stride replaced with constant one, assuming the SCEV predicate associated with PSE is true.
replace_copy Provide wrappers to std::replace_copy which take ranges instead of having to pass begin/end explicitly.
replace_copy_if Provide wrappers to std::replace_copy_if which take ranges instead of having to pass begin/end explicitly.
reportAndResetTimings If -time-passes has been specified, report the timings immediately and then reset the timers to zero. By default it uses the stream created by CreateInfoOutputFile().
reportChangedIR
reportFatalInternalError [noreturn]reportFatalInternalError overloads
reportFatalUsageError [noreturn]reportFatalUsageError overloads
reportGISelFailure Report an ISel error as a missed optimization remark to the LLVMContext's diagnostic stream. Set the FailedISel MachineFunction property.
reportGISelWarning Report an ISel warning as a missed optimization remark to the LLVMContext's diagnostic stream.
report_bad_alloc_error [noreturn]Reports a bad alloc error, calling any user defined bad alloc error handler. In contrast to the generic 'report_fatal_error' functions, this function might not terminate, e.g. the user defined error handler throws an exception, but it won't return.
report_fatal_error [noreturn]
resolveTypes Find a common type that T1 and T2 convert to. Return 0 if no such type exists.
restoreStdHandleAutoConversion
returnTypeIsEligibleForTailCall Test if given that the input instruction is in the tail call position if the return type or any attributes of the function will inhibit tail call optimization.
reverse Return a reverse view over C without mutating it.
reverseBits Reverse the bits in Val.
reverse_conditionally Return a range that conditionally reverses C. The collection is iterated in reverse if ShouldReverse is true (otherwise, it is iterated forwards).
rewriteLoopExitValues If the final value of any expressions that are recurrent in the loop can be computed, substitute the exit values from the loop into any instructions outside of the loop that use the final values of the current expressions. Return the number of loop exit values that have been replaced, and the corresponding phi node will be added to DeadInsts.
right_justify right_justify - add spaces before string so total output is Width characters. If Str is larger that Width, full string is written with no padding.
rotl Rotate V left by R bit positions.
rotr Rotate V right by R bit positions.
runFuzzerOnInputs Runs a fuzz target on the inputs specified on the command line.
runOnNewStack Runs Fn on a new stack of at least the given size.
runWholeProgramDevirtOnIndex Perform index-based whole program devirtualization on the Summary index. Any devirtualized targets used by a type test in another module are added to the ExportedGUIDs set. For any local devirtualized targets only used within the defining module, the information necessary for locating the corresponding WPD resolution is recorded for the ValueInfo in case it is exported by cross module importing (in which case the devirtualized target name will need adjustment).
rustDemangle
safe_calloc Allocate and zero Count elements of Sz bytes, aborting on failure.
safe_malloc Allocate Sz bytes with malloc, aborting on failure.
safe_realloc Reallocate Ptr to Sz bytes, aborting on failure.
salvageDebugInfo salvageDebugInfo overloads
salvageDebugInfoForDbgValue Assuming the instruction MI is going to be deleted, attempt to salvage debug users of MI by writing the effect of MI in a DIExpression.
salvageDebugInfoForDbgValues Salvage only the records in DbgRecords instead of finding every debug user of I. Every record must be a debug user of the instruction.
salvageDebugInfoImpl Given an instruction I and DIExpression DIExpr operating on it, append the effects of I to the DIExpression operand list Ops, or return nullptr if it cannot be salvaged. CurrentLocOps is the number of SSA values referenced by the incoming Ops.
salvageKnowledge Calls BuildAssumeFromInst and if the resulting llvm.assume is valid insert if before I. This is usually what need to be done to salvage the knowledge contained in the instruction I. The AssumptionCache must be provided if it is available or the cache may become silently be invalid. The DominatorTree can optionally be provided to enable cross-block reasoning. This returns if a change was made.
sampleprof_category
saveUsesAndErase
scalbn Returns: X * 2^Exp for integral exponents.
scaleBranchCount Scale an individual branch count.
scaleProfData Scaling the profile data attached to 'I' using the ratio of S/T.
scaleShuffleMaskElts Attempt to narrow/widen the Mask shuffle mask to the NumDstElts target width. Internally this will call narrowShuffleMaskElts/widenShuffleMaskElts. This will assert unless NumDstElts is a multiple of Mask.size (or vice-versa). Returns false on failure, and ScaledMask will be in an undefined state.
scavengeFrameVirtualRegs Replaces all frame index virtual registers with physical registers. Uses the register scavenger to find an appropriate register to use.
scc_begin Construct the begin iterator for a deduced graph type T.
scc_end Construct the end iterator for a deduced graph type T.
search search overloads
seq seq overloads
seq_inclusive Iterate over an integral type from Begin to End inclusive. Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1] for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1]for reverse iteration).
serializeSectionKind Convert the internal value for a section kind to an on-disk value.
setAtomicSyncScopeID A helper function that sets an atomic operation's sync scope.
setBranchProbability Set branch weight metadata for B to indicate that P and 1 - P are the probabilities of control flowing to its first and second target labels, respectively, or vice-versa if ForFirstTarget is false.
setBranchWeights Create a new branch_weights metadata node and add or overwrite a prof metadata reference to instruction I.
setBugReportMsg Replaces the generic bug report message that is output upon a crash.
setCurrentDebugType setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified. Note that DebugFlag also needs to be set to true for debug output to be produced. The debug type format is "type[:level]", where the level is an optional integer. If a level is provided, the debug output is enabled only if the user specified a level at least as high as the provided level. 0 is a special level that acts as an opt-out for this specific debug type without affecting the other debug output.
setCurrentDebugTypes setCurrentDebugTypes - Set the current debug type, as if the -debug-only=X,Y,Z option were specified. Note that DebugFlag also needs to be set to true for debug output to be produced.
setDefaultDebuginfodUrls Sets the list of debuginfod server URLs to query. This overrides the environment variable DEBUGINFOD_URLS.
setExplicitlyUnknownBranchWeights Specify that the branch weights for this terminator cannot be known at compile time. This should only be called by passes, and never as a default behavior in e.g. MDBuilder. The goal is to use this info to validate passes do not accidentally drop profile info, and this API is called in cases where the pass explicitly cannot provide that info. Defaulting it in would hide bugs where the pass forgets to transfer over or otherwise specify profile info. Use PassName to capture the pass name (i.e. DEBUG_TYPE) for debuggability.
setExplicitlyUnknownBranchWeightsIfProfiled Like setExplicitlyUnknownBranchWeights(...), but only sets unknown branch weights in the new instruction if the parent function of the original instruction has an entry count. This is to not confuse users by injecting profile data into non-profiled functions. If F is nullptr, we will fetch the function from I.
setExplicitlyUnknownFunctionEntryCount Analogous to setExplicitlyUnknownBranchWeights, but for functions and their entry counts.
setFileTag
setFittedBranchWeights Variant of setBranchWeights where the Weights will be fit first to uint32_t by shifting right.
setGlobalVariableLargeSection
setInlineRemark Set the inline-remark attribute.
setIrrLoopHeaderMetadata
setKCFIType Sets the KCFI type for the function. Used for compiler-generated functions that are indirectly called in instrumented code.
setLoadStoreAlignment A helper function that set the alignment of load or store instruction.
setLoopEstimatedTripCount Set llvm.loop.estimated_trip_count with the value EstimatedTripCount in the loop metadata of L. Return false if the implementation is unable to handle the loop form of L (e.g., L must have a latch block that controls the loop exit). Otherwise, return true.
setLoopProbability Set branch weight metadata for the latch of L to indicate that, at the end of any iteration, P and 1 - P are the probabilities of starting another iteration and exiting the loop, respectively. Return false if the implementation is unable to handle the loop form of L (e.g., L must have a latch block that controls the loop exit). Otherwise, return true.
setProbeDistributionFactor
setProfMetadata
setUnwindEdgeTo Sets the unwind edge of an instruction to a particular successor.
setWidenableBranchCond Given a branch we know is widenable (defined per Analysis/GuardUtils.h), set it's condition such that (only) 'Cond' is known to hold on the taken path and that the branch remains widenable after transform.
set_difference set_difference(A, B) - Return A - B
set_intersect set_intersect(A, B) - Compute A := A ^ B Identical to set_intersection, except that it works on set<>'s and is nicer to use. Functionally, this iterates through S1, removing elements that are not contained in S2.
set_intersection set_intersection(A, B) - Return A ^ B
set_intersection_impl Build a new set containing the elements present in both S1 and S2.
set_intersects set_intersects(A, B) - Return true iff A ^ B is non empty
set_is_subset set_is_subset(A, B) - Return true iff A in B
set_subtract set_subtract overloads
set_thread_name Set the name of the current thread. Setting a thread's name can be helpful for enabling useful diagnostics under a debugger or when logging. The level of support for setting a thread's name varies wildly across operating systems, and we only make a best effort to perform the operation on supported platforms. No indication of success or failure is returned.
set_thread_priority Set the calling thread's priority to Priority.
set_union set_union(A, B) - Compute A := A u B, return whether A changed.
setupLLVMOptimizationRemarks setupLLVMOptimizationRemarks overloads
setupMachineFunctionAsmPrinter
setupModuleAsmPrinter
shouldFuncOptimizeForSizeImpl
shouldInline Return the cost only if the inliner should attempt to inline at the given CallSite. If we return the cost, we will emit an optimisation remark later using that cost, so we won't do so from this function. Return std::nullopt if inlining should not be attempted.
shouldOptimizeForSize shouldOptimizeForSize overloads
shouldOptimizeForSizeImpl
shouldPrintAfterAll
shouldPrintAfterPass
shouldPrintAfterSomePass
shouldPrintBeforeAll
shouldPrintBeforePass
shouldPrintBeforeSomePass
shouldReverseIterate Return true if containers of T should iterate in reverse order.
shuffle Randomly shuffle the elements in []first, last) using generator g.
simplifyAShrInst Given operands for a AShr, fold the result or return nulll.
simplifyAddInst Given operands for an Add, fold the result or return null.
simplifyAndInst Given operands for an And, fold the result or return null.
simplifyBinOp simplifyBinOp overloads
simplifyCFG
simplifyCall Given a callsite, callee, and arguments, fold the result or return null.
simplifyCastInst Given operands for a CastInst, fold the result or return null.
simplifyCmpInst Given operands for a CmpInst, fold the result or return null.
simplifyConstrainedFPCall Given a constrained FP intrinsic call, tries to compute its simplified version. Returns a simplified result or null.
simplifyExtractElementInst Given operands for an ExtractElementInst, fold the result or return null.
simplifyExtractValueInst Given operands for an ExtractValueInst, fold the result or return null.
simplifyFAddInst Given operands for an FAdd, fold the result or return null.
simplifyFCmpInst Given operands for an FCmpInst, fold the result or return null.
simplifyFDivInst Given operands for an FDiv, fold the result or return null.
simplifyFMAFMul Given operands for the multiplication of a FMA, fold the result or return null. In contrast to simplifyFMulInst, this function will not perform simplifications whose unrounded results differ when rounded to the argument type.
simplifyFMulInst Given operands for an FMul, fold the result or return null.
simplifyFNegInst Given operand for an FNeg, fold the result or return null.
simplifyFRemInst Given operands for an FRem, fold the result or return null.
simplifyFSubInst Given operands for an FSub, fold the result or return null.
simplifyFreezeInst Given an operand for a Freeze, see if we can fold the result. If not, this returns null.
simplifyGEPInst Given operands for a GetElementPtrInst, fold the result or return null.
simplifyICmpInst Given operands for an ICmpInst, fold the result or return null.
simplifyInsertElementInst Given operands for an InsertElement, fold the result or return null.
simplifyInsertValueInst Given operands for an InsertValueInst, fold the result or return null.
simplifyInstruction See if we can compute a simplified version of this instruction. If not, return null.
simplifyInstructionWithOperands Like simplifyInstruction but the operands of I are replaced with NewOps. Returns a simplified value, or null if none was found.
simplifyIntrinsic Given operands for an intrinsic, fold the result or return null. Context Function is passed as CxtF. ExBehavior and Rounding only apply to constrained FP intrinsics.
simplifyLShrInst Given operands for a LShr, fold the result or return null.
simplifyLoadInst Given a load instruction and its pointer operand, fold the result or return null.
simplifyLoop Simplify each loop in a loop nest recursively.
simplifyLoopAfterUnroll
simplifyLoopIVs SimplifyLoopIVs - Simplify users of induction variables within this loop. This does not actually change or add IVs.
simplifyMulInst Given operands for a Mul, fold the result or return null.
simplifyOrInst Given operands for an Or, fold the result or return null.
simplifySDivInst Given operands for an SDiv, fold the result or return null.
simplifySRemInst Given operands for an SRem, fold the result or return null.
simplifySelectInst Given operands for a SelectInst, fold the result or return null.
simplifyShlInst Given operands for a Shl, fold the result or return null.
simplifyShuffleVectorInst Given operands for a ShuffleVectorInst, fold the result or return null. See class ShuffleVectorInst for a description of the mask representation.
simplifySubInst Given operands for a Sub, fold the result or return null.
simplifyUDivInst Given operands for a UDiv, fold the result or return null.
simplifyURemInst Given operands for a URem, fold the result or return null.
simplifyUnOp simplifyUnOp overloads
simplifyUsersOfIV simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence. Returns a pair where the first entry indicates that the function makes changes and the second entry indicates that it introduced new opportunities for loop unswitching.
simplifyWithOpReplaced See if V simplifies when its operand Op is replaced with RepOp. If not, return null. AllowRefinement specifies whether the simplification can be a refinement (e.g. 0 instead of poison), or whether it needs to be strictly identical. Op and RepOp can be assumed to not be poison when determining refinement.
simplifyXorInst Given operands for an Xor, fold the result or return null.
sinkRegion Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in reverse depth first order w.r.t the DominatorTree. This allows us to visit uses before definitions, allowing us to sink a loop body in one pass without iteration. Takes DomTreeNode, AAResults, LoopInfo, DominatorTree, TargetLibraryInfo, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status. CurLoop is a loop to do sinking on. OutermostLoop is used only when this function is called by sinkRegionForLoopNest.
sinkRegionForLoopNest Call sinkRegion on loops contained within the specified loop in order from innermost to outermost.
size Get the size of a range. This is a wrapper function around std::distance which is only enabled when the operation is O(1).
skipDebugInstructionsBackward Decrement It until it points to a non-debug instruction or to Begin and return the resulting iterator. This function should only be used MachineBasicBlock::{iterator, const_iterator, instr_iterator, const_instr_iterator} and the respective reverse iterators.
skipDebugInstructionsForward Increment It until it points to a non-debug instruction or to End and return the resulting iterator. This function should only be used MachineBasicBlock::{iterator, const_iterator, instr_iterator, const_instr_iterator} and the respective reverse iterators.
skipDebugIntrinsics Advance It while it points to a debug instruction and return the result. This assumes that It is not at the end of a block.
sort sort overloads
sortBasicBlocksAndUpdateBranches
sortPtrAccesses Attempt to sort the pointers in VL and return the sorted indices in SortedIndices, if reordering is required.
spell Returns text representation of the given rounding mode.
spliceBB spliceBB overloads
split split overloads
splitBB splitBB overloads
splitBBWithSuffix Like splitBB, but reuses the current block's name for the new name.
splitBlockBefore Split the specified block at the specified instruction SplitPt. All instructions before SplitPt are moved to a new block and all instructions after SplitPt stay in the old block. The new block and the old block are joined by inserting an unconditional branch to the end of the new block. The new block with name BBName is returned.
splitModuleTransitiveFromEntryPoints Splits the given module M into parts. Each output part is passed to Callback for further possible processing. Each part corresponds to a subset of the module that is transitively reachable from some entry point group. Each entry point group is defined by EntryPointCategorizer (EPC) as follows: 1) If the function is not an entry point, then the Categorizer returns std::nullopt. Therefore, the function doesn't belong to any group. However, the function and global objects can still be associated with some output parts if they are transitively used from some entry points. 2) If the function belongs to an entry point group, then EPC returns an integer which is an identifier of the group. If two entry points belong to one group, then EPC returns the same identifier for both of them.
stableHashValue
stable_hash_combine stable_hash_combine overloads
stable_hash_name Hash Name after normalizing it with get_stable_name().
stable_sort stable_sort overloads
streamFile Sets the response to stream the file at FilePath, if available, and otherwise an HTTP 404 error response.
stringifyKCFIHashAlgorithm Convert a KCFI hash algorithm enum to its string representation.
stripDebugInfo
stripDebugifyMetadata Strip out all of the metadata and debug info inserted by debugify. If no llvm.debugify module-level named metadata is present, this is a no-op. Returns true if any change was made.
stripNonLineTableDebugInfo Downgrade the debug info in a module to contain only line table information.
stripNullTest Returns the inner value X if the expression has the form f(X) where f(X) == 0 if and only if X == 0, otherwise returns nullptr.
succ_begin
succ_empty
succ_end
succ_size
succeeded Utility function that returns true if the provided LogicalResult corresponds to a success value.
success success overloads
successors
sum_of Returns the sum of all values in Range with Init initial value. The default initial value is 0.
swap Exchange owned storage and hash state between LHS and RHS.
tensorValueToString For debugging.
thinLTOFinalizeInModule Based on the information recorded in the summaries during global summary-based analysis: 1. Resolve prevailing symbol linkages and constrain visibility (CanAutoHide and consider visibility from other definitions for ELF) in TheModule 2. (optional) Apply propagated function attributes to TheModule if PropagateAttrs is true
thinLTOInternalizeAndPromoteInIndex Update the linkages in the given Index to mark exported values as external and non-exported values as internal. The ThinLTO backends must apply the changes to the Module via thinLTOInternalizeModule.
thinLTOInternalizeModule Internalize TheModule based on the information recorded in the summaries during global summary-based analysis.
thinLTOPropagateFunctionAttrs Propagate function attributes for function summaries along the index's callgraph during thinlink
thinLTOResolvePrevailingInIndex Resolve linkage for prevailing symbols in the Index. Linkage changes recorded in the index and the ThinLTO backends must apply the changes to the module via thinLTOFinalizeInModule.
timeTraceAddInstantEvent
timeTraceAsyncProfilerBegin Manually begin a time section, with the given Name and Detail. This starts Async Events having Name as a category which is shown separately from other traces. See https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.jh64i9l3vwa1 for more details.
timeTraceProfilerBegin Manually begin a time section, with the given Name and Detail. Profiler copies the string data, so the pointers can be given into temporaries. Time sections can be hierarchical; every Begin must have a matching End pair but they can nest.
timeTraceProfilerCleanup Cleanup the time trace profiler, if it was initialized.
timeTraceProfilerEnabled Is the time trace profiler enabled, i.e. initialized?
timeTraceProfilerEnd Manually end the last time section.
timeTraceProfilerFinishThread Finish a time trace profiler running on a worker thread.
timeTraceProfilerInitialize Initialize the time trace profiler. This sets up the global TimeTraceProfilerInstance variable to be the profiler instance.
timeTraceProfilerWrite timeTraceProfilerWrite overloads
toCABI
toHex toHex overloads
toIRString String used by LLVM IR to represent atomic ordering.
toLower Returns the corresponding lowercase character if x is uppercase.
toScalarizedStructTy A helper for converting structs of vector types to structs of scalar types. Note: Only unpacked literal struct types are supported.
toScalarizedTy A helper for converting vectorized types to scalarized (non-vector) types. For vector types, this is equivalent to calling .getScalarType(). For struct types, this returns a new struct where each element type has been converted to a scalar type. Note: Only unpacked literal struct types are supported.
toString toString overloads
toStringRef toStringRef overloads
toStringRefArray Given an array of c-style strings terminated by a null pointer, construct a vector of StringRefs representing the same strings without the terminating null string.
toStringWithoutConsuming Like toString(), but does not consume the error. This can be used to print a warning while retaining the original error object.
toUpper Returns the corresponding uppercase character if x is lowercase.
toVectorTy A helper function for converting Scalar types to vector types. If the incoming type is void, we return void. If the EC represents a scalar, we return the scalar type.
toVectorizedStructTy A helper for converting structs of scalar types to structs of vector types. Note: - If EC is scalar, StructTy is returned unchanged - Only unpacked literal struct types are supported
toVectorizedTy A helper for converting to vectorized types. For scalar types, this is equivalent to calling toVectorTy. For struct types, this returns a new struct where each element type has been widened to a vector type. Note: - If the incoming type is void, we return void - If EC is scalar, Ty is returned unchanged - Only unpacked literal struct types are supported
to_address to_address overloads
to_float to_float overloads
to_integer Convert the string S to an integer of the specified type using the radix Base. If Base is 0, auto-detects the radix. Returns true if the number was successfully converted, false otherwise.
to_string
to_underlying Returns underlying integer value of an enum. Backport of C++23 std::to_underlying.
to_vector to_vector overloads
to_vector_of to_vector_of overloads
transform Wrapper function around std::transform to apply a function to a range and store the result elsewhere.
transformGlobalCtors
transformGlobalDtors
transformOptional Apply F to the contained value of O if present.
tryBiasPhysRegs
tryEnforceAlignment If the specified pointer points to an object that we control, try to modify the object's alignment to PrefAlign. Returns a minimum known alignment of the value after the operation, which may be lower than PrefAlign.
tryGetFromHex Convert hexadecimal string Input to its binary representation and store the result in Output. Returns true if the binary representation could be converted from the hexadecimal string. Returns false if Input contains non-hexadecimal digits. The output string is half the size of Input.
tryGetHexFromNibbles Store the binary representation of the two provided values, MSB and LSB, that make up the nibbles of a hexadecimal digit. If MSB or LSB do not correspond to proper nibbles of a hexadecimal digit, this method returns false. Otherwise, returns true.
tryGreater
tryLatency
tryLess
tryPressure
tryPromoteCall Try to promote (devirtualize) a virtual call on an Alloca. Return true on success.
uniform uniform overloads
uninitialized_copy Copy range Src into uninitialized memory at Dst.
unique unique overloads
unique_dyn_cast unique_dyn_cast overloads
unique_dyn_cast_or_null unique_dyn_cast_or_null overloads
uniteAccessGroups Compute the union of two access-group lists.
unknown_sign Return the test mask which returns true if the value could have the same set of classes, but with a different sign.
unwrap Conversion from LLVMErrorRef to Error for C error bindings.
updateCGAndAnalysisManagerForCGSCCPass Helper to update the call graph after running a CGSCC pass.
updateCGAndAnalysisManagerForFunctionPass Helper to update the call graph after running a function pass.
updateCompilerUsed Find all globals in TheModule that are referenced in AsmUndefinedRefs, as well as the user-supplied functions definitions that are also libcalls, and create or update the magic "llvm.compiler_used" global in TheModule.
updateDbgValueForSpill Update a DBG_VALUE whose value has been spilled to FrameIndex. Useful when modifying an instruction in place while iterating over a basic block.
updateIndexWPDForExports Call after cross-module importing to update the recorded single impl devirt target names for any locals that were exported.
updateIndirectCalls Update call edges for indirect calls to local functions added from SamplePGO when needed. Normally this is done during computeDeadSymbolsAndUpdateIndirectCalls, but can be called standalone when that is not called (e.g. during testing).
updateLoopMetadataDebugLocations Update the debug locations contained within the MD_loop metadata attached to the instruction I, if one exists. Updater is applied to Metadata operand in the MD_loop metadata: the returned value is included in the updated loop metadata node if it is non-null.
updatePhiNodes Replaces all uses of OldPred with the NewPred block in all PHINodes in a block.
updateProfileCallee Updates profile information by adjusting the entry count by adding EntryDelta then scaling callsite information by the new count divided by the old count. VMap is used during inlinng to also update the new clone
updatePublicTypeTestCalls
updateVCallVisibilityInIndex
updateVCallVisibilityInModule
upgradeInstructionLoopAttachment Upgrade the loop attachment metadata node.
upper_bound upper_bound overloads
upward_defs
upward_defs_begin
upward_defs_end
utohexstr Convert X to a hexadecimal string.
utostr Convert an unsigned integer to a decimal string.
validateDelinearizationResult Check that each subscript in Subscripts is within the corresponding size in Sizes. For the outermost dimension, the subscript being negative is allowed.
verifyFunction Check a function for errors, useful for use when debugging a pass.
verifyMachineFunction
verifyModule Check a module for errors.
verifySafepointIR Run the safepoint verifier over a single function. Crashes on failure.
versionCallSite Predicate and clone the given call site.
viewGraphForFunction
viewRegion viewRegion overloads
viewRegionOnly viewRegionOnly overloads
visitAll Use SCEVTraversal to visit all nodes in the given expression tree.
visitErrors Visit all the ErrorInfo(s) contained in E by passing them to the respective handler, without consuming the error.
warnToStderr
widenShuffleMaskElts widenShuffleMaskElts overloads
widenWidenableBranch Given a branch we know is widenable (defined per Analysis/GuardUtils.h), widen it such that condition 'NewCond' is also known to hold on the taken path. Branch remains widenable after transform.
willNotFreeBetween Returns true, if no instruction between Assume and CtxI may free (including through synchronization).
wouldInstructionBeTriviallyDead Return true if the result produced by the instruction would have no side effects if it was not used. This is equivalent to checking whether isInstructionTriviallyDead would be true if the use count was 0.
wrap Conversion from Error to LLVMErrorRef for C error bindings.
write
writeArchive
writeArchiveToBuffer
writeArchiveToStream
writeIndexToFile Write the specified module summary index to the given raw output stream, where it will be written in a new bitcode block. This is used when writing the combined index file for ThinLTO. When writing a subset of the index for a distributed backend, provide the ModuleToSummariesForIndex map. DecSummaries specifies the set of summaries for which the corresponding value should be imported as a declaration (prototype).
writeMemProf
writeModule Fuzzer friendly interface for the llvm bitcode printer.
writeThinLinkBitcodeToFile Write the specified thin link bitcode file (i.e., the minimized bitcode file) to the given raw output stream, where it will be written in a new bitcode block. The thin link bitcode file is used for thin link, and it only contains the necessary information for thin link.
writeToOutput This helper creates an output stream and then passes it to Write. The stream created is based on the specified OutputFileName llvm::outs for "-", raw_null_ostream for "/dev/null", and raw_fd_ostream for other names. For raw_fd_ostream instances, the stream writes to a temporary file. The final output file is atomically replaced with the temporary file after the Write function is finished.
write_double Write floating-point D to S using Style and optional Precision.
write_hex Write hex value N to S using Style and optional field Width.
write_integer write_integer overloads
xxh3_128bits xxh3_128bits overloads
xxh3_64bits xxh3_64bits overloads
zip zip iterator for two or more iteratable types. Iteration continues until the end of the shortest iteratee is reached.
zip_equal zip iterator that assumes that all iteratees have the same length. In builds with assertions on, this assumption is checked before the iteration starts.
zip_first zip iterator that, for the sake of efficiency, assumes the first iteratee to be the shortest. Iteration continues until the end of the first iteratee is reached. In builds with assertions on, we check that the assumption about the first iteratee being the shortest holds.
zip_longest Iterate over two or more iterators at the same time. Iteration continues until all iterators reach the end. The std::optional only contains a value if the iterator has not reached the end.
operator<< Left shift operators
operator== Equality operators
operator!= Inequality operators
operator< Less-than operators
operator<= Less-than-or-equal operators
operator> Greater-than operators
operator>= Greater-than-or-equal operators

Variables

NameDescription
AsmRewritePrecedence
AssumptionAttrKey The key we use for assumption attributes.
AtomicExpandID AtomicExpandID -- Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops.
BBSectionsColdTextPrefix
BitWidth Number of bits needed to represent the largest enumerator of bitmask enum E.
BranchFolderPassID BranchFolding - This pass performs machine code CFG based optimizations to delete branches to branches, eliminate branches to successor blocks (creating fall throughs), and eliminating branches over branches.
BranchRelaxationPassID BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction.
BreakCriticalEdgesID
CastIfPresentTo Function object that applies cast_if_present<To> in generic algorithms.
CastTo Function object that applies cast<To> in generic algorithms.
CheckBFIUnknownBlockQueries
DeadMachineInstructionElimID DeadMachineInstructionElim - This pass removes dead machine instructions.
DebugFlag This boolean is set to true if the '-debug' command line option is specified. This should probably not be referenced directly, instead, use the DEBUG macro below.
DecisionName
DefMaxInstsToScan The default number of maximum instructions to scan in the block, used by FindAvailableLoadedValue().
DefaultAllocTokenMode The default allocation token mode.
DefaultDecisionName
DefaultDecisionSpec
DetectDeadLanesID This pass adds dead/undef flags after analyzing subregister lanes.
DisableGISelLegalityCheck
DoInstrProfNameCompression
DynCastIfPresentTo Function object that applies dyn_cast_if_present<To> in generic algorithms.
DynCastTo Function object that applies dyn_cast<To> in generic algorithms.
EarlyIfConverterLegacyID EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions.
EarlyIfPredicatorID EarlyIfPredicator - This pass performs if-conversion on SSA form by predicating if/else block and insert select at the join point.
EarlyMachineLICMID This pass performs loop invariant code motion on machine instructions. This variant works before register allocation.
EarlyTailDuplicateLegacyID Duplicate blocks with unconditional branches into tails of their predecessors. Variant that works before register allocation.
EdgeBundlesWrapperLegacyID EdgeBundles analysis - Bundle machine CFG edges.
EmitLongStrLiterals Controls emitting large character arrays as strings or character arrays. Typically set to false when building with MSVC.
EnableDebugBuffering EnableDebugBuffering - This defaults to false. If true, the debug stream will install signal handlers to dump any buffered debug output. It allows clients to selectively allow the debug stream to install signal handlers if they are certain there will be no conflict.
EnableFSDiscriminator
EnableKnowledgeRetention
EnableLTOInternalization Enable global value internalization in LTO.
EnableLoopInterleaving
EnableLoopVectorization
EnablePGSO
ErrorsPrinted
ExpandPostRAPseudosID ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation.
FEntryInserterID This pass inserts FEntry calls
FinalizeISelID This pass expands pseudo-instructions, reserves registers and adjusts machine frame information.
FixupStatepointCallerSavedID The pass fixups statepoint machine instruction to replace usage of caller saved registers with stack slots.
ForcePGSO
ForgetSCEVInLoopUnroll
FuncletLayoutID This pass lays out funclets contiguously.
GCLoweringID GCLowering Pass - Used by gc.root to perform its default lowering operations.
GCMachineCodeAnalysisID GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code. Must be added very late during code generation, just prior to output, and importantly after all CFG transformations (such as branch folding).
GlobalIdentifierDelimiter
GraphHasNodeNumbers Indicate whether a GraphTraits<NodeT>::getNumber() is supported.
HybridPatchableTargetSuffix
HybridPatchableTargetSuffixArr
IfConverterID IfConverter - This pass performs machine code if conversion.
IgnoreBundleTag Tag in operand bundle indicating that this bundle should be ignored.
ImplicitNullChecksID ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations.
ImprovedFSDiscriminator
IndexedCodeGenDataLazyLoading
InferAddressSpacesID
InitUndefID
InlineDecisionSpec
InvalidClusterId
IsNullable True if T is a pointer or constructible from nullptr.
IsaAndPresentPred Function object wrapper for the llvm::isa_and_present type check. The function call operator returns true when the value can be cast to any type in Types, or if the value is not present (e.g., nullptr). Example: ` SmallVector<Type> myTypes = ...; if (llvm::all_of(myTypes, llvm::IsaAndPresentPred<VectorType>)) ... `
IsaPred Function object wrapper for the llvm::isa type check. The function call operator returns true when the value can be cast to any type in Types. Example: ` SmallVector<Type> myTypes = ...; if (llvm::all_of(myTypes, llvm::IsaPred<VectorType>)) ... `
IterativeBFIMaxIterationsPerBlock
IterativeBFIPrecision
LCSSAID
LLVMLoopEstimatedTripCount Profile-based loop metadata that should be accessed only by using llvm::getLoopEstimatedTripCount and llvm::setLoopEstimatedTripCount.
LLVMLoopUnrollFollowupAll @{ Metadata attribute names
LLVMLoopUnrollFollowupRemainder
LLVMLoopUnrollFollowupUnrolled
LiveDebugValuesID LiveDebugValues pass
LiveIntervalsID LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers.
LiveRangeShrinkID LiveRangeShrink pass. Move instruction close to its definition to shrink the definition's live range.
LiveStacksID LiveStacks pass. An analysis keeping track of the liveness of stack slots.
LiveVariablesID LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags.
LocalStackSlotAllocationID LocalStackSlotAllocation - This pass assigns local frame indices to stack slots relative to one another and allocates base registers to access them when it is estimated by the target to be out of range of normal frame pointer or stack pointer index addressing.
LoopSimplifyID
LowerInvokePassID
LowerSwitchID
MAX_SUBTARGET_FEATURES
MAX_SUBTARGET_WORDS
MCScheduleOptions
MIRAddFSDiscriminatorsID This pass adds flow sensitive discriminators.
MIRCanonicalizerID MIRCanonicalizer - This pass canonicalizes MIR by renaming vregs according to the semantics of the instruction as well as hoists code.
MIRPrintingPassID MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format.
MIRProfileLoaderPassID This pass reads flow sensitive profile.
MachineBlockPlacementID MachineBlockPlacement - This pass places basic blocks based on branch probabilities.
MachineBlockPlacementStatsID MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information.
MachineCFGPrinterID MachineCFGPrinter pass.
MachineCSELegacyID MachineCSE - This pass performs global CSE on machine instructions.
MachineCombinerID This pass performs instruction combining using trace metrics to estimate critical-path and resource depth.
MachineCopyPropagationID MachineCopyPropagation - This pass performs copy propagation on machine instructions.
MachineDominanceFrontierID MachineDominanaceFrontier - This pass is a machine dominators analysis.
MachineDominatorsID MachineDominators - This pass is a machine dominators analysis pass.
MachineFunctionPrinterPassID MachineFunctionPrinterPass - This pass prints out MachineInstr's.
MachineLICMID This pass performs loop invariant code motion on machine instructions.
MachineLateInstrsCleanupID MachineLateInstrsCleanup - This pass removes redundant identical instructions after register allocation and rematerialization.
MachineLoopInfoID MachineLoopInfo - This pass is a loop analysis pass.
MachinePipelinerID This pass performs software pipelining on machine instructions.
MachineRegionInfoPassID MachineRegionInfo - This pass computes SESE regions for machine functions.
MachineSanitizerBinaryMetadataID
MachineSchedulerID MachineScheduler - This pass schedules machine instructions.
MachineSinkingLegacyID MachineSinking - This pass performs sinking on machine instructions.
MachineTraceMetricsID MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces.
MaxAnalysisRecursionDepth
MaxInitializationChainLength The value passed to the line option that defines the maximal initialization chain length.
MaxLookupSearchDepth The max limit of the search depth in DecomposeGEPExpression() and getUnderlyingObject().
NOMORE_ICP_MAGICNUM Magic number in the value profile metadata showing a target has been promoted for the instruction and shouldn't be promoted again.
NoKernelInfoEndLTO
NoWarnSampleUnused
OldBooleanLoopTags
OptimizePHIsLegacyID OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization.
PGSOColdCodeOnly
PGSOColdCodeOnlyForInstrPGO
PGSOColdCodeOnlyForPartialSamplePGO
PGSOColdCodeOnlyForSamplePGO
PGSOLargeWorkingSetSizeOnly
PHIEliminationID PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions. This destroys SSA information, but is the desired input for some register allocators. This pass is "required" by these register allocator like this: AU.addRequiredID(PHIEliminationID);
PartialUnrollingThreshold
PatchableFunctionID This pass implements the "patchable-function" attribute.
PeepholeOptimizerLegacyID PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations.
PgsoCutoffInstrProf
PgsoCutoffSampleProf
PoisonMaskElem
PostMachineSchedulerID PostMachineScheduler - This pass schedules machine instructions postRA.
PostRAHazardRecognizerID PostRAHazardRecognizer - This pass runs the post-ra hazard recognizer.
PostRAMachineSinkingID This pass perform post-ra machine sink for COPY instructions.
PostRASchedulerID PostRAScheduler - This pass performs post register allocation scheduling.
PreRADirection
PrintChanged
PrintDAGs
PrintPipelinePasses Common option used by multiple tools to print pipeline passes
ProcessImplicitDefsID ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.
ProfcheckDisableMetadataFixes
ProfileInlineGrowthLimit
ProfileInlineLimitMax
ProfileInlineLimitMin
ProfileSummaryColdCount
ProfileSummaryCutoffCold
ProfileSummaryCutoffHot
ProfileSummaryHotCount
ProfileSummaryHugeWorkingSetSizeThreshold
ProfileSummaryLargeWorkingSetSizeThreshold
PrologEpilogCodeInserterID PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references.
PseudoProbeDescMetadataName
RABasicID Basic register allocator.
RAGreedyLegacyID Greedy register allocator.
RegisterCoalescerID RegisterCoalescer - This pass merges live ranges to eliminate copies.
RemoveLoadsIntoFakeUsesID RemoveLoadsIntoFakeUses pass.
RemoveRedundantDebugValuesID RemoveRedundantDebugValues pass.
RenameIndependentSubregsID This pass detects subregister lanes in a virtual register that are used independently of other lanes and splits them into separate virtual registers.
RequireAndPreserveDomTree This function is used to do simplification of a CFG. For example, it adjusts branches to branches to eliminate the extra hop, it eliminates unreachable basic blocks, and does other peephole optimization of the CFG. It returns true if a modification was made, possibly deleting the basic block that was pointed to. LoopHeaders is an optional input parameter providing the set of loop headers that SimplifyCFG should not eliminate.
RewardName
SCEVCheapExpansionBudget
SSAUpdaterPhiSearchLimit
SampleColdCallSiteThreshold
SampleHotCallSiteThreshold
SampleProfileMaxPropagateIterations
SampleProfileRecordCoverage
SampleProfileSampleCoverage
SampleProfileUseProfi
SetLicmMssaNoAccForPromotionCap
SetLicmMssaOptCap
ShadowStackGCLoweringID ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC.
ShrinkWrapID ShrinkWrap pass. Look for the best place to insert save and restore
SortProfiledSCC
SpillPlacementID SpillPlacement analysis. Suggest optimal placement of spill code between basic blocks.
SrcMgr
StackColoringLegacyID StackSlotColoring - This pass performs stack coloring and merging. It merges disjoint allocas to reduce the stack size.
StackFrameLayoutAnalysisPassID StackFramePrinter - This pass prints the stack frame layout and variable mappings.
StackMapLivenessID StackMapLiveness - This pass analyses the register live-out set of stackmap/patchpoint intrinsics and attaches the calculated information to the intrinsic for later emission to the StackMap.
StackSlotColoringID StackSlotColoring - This pass performs stack slot coloring.
StaticCastTo Function objects corresponding to the Cast types defined above.
SwpEnableCopyToPhi
SwpForceIssueWidth
TailDuplicateLegacyID TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors.
TimePassesIsEnabled If the user specifies the -time-passes argument on an LLVM tool command line then the value of this boolean will be true, otherwise false. This is the storage for the -time-passes option.
TimePassesPerRun If TimePassesPerRun is true, there would be one line of report for each pass invocation. If TimePassesPerRun is false, there would be only one line of report for each pass (even there are more than one pass objects). (For new pass manager only)
TwoAddressInstructionPassID TwoAddressInstruction - This pass reduces two-address instructions to use two operands. This destroys SSA information but it is desired by register allocators.
UnpackMachineBundlesID UnpackMachineBundles - This pass unpack machine instruction bundles.
UnreachableMachineBlockElimID UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks.
UseContextLessSummary
UseIterativeBFIInference
UseSegmentSetForPhysRegs
VerifyDomInfo Enables verification of dominator trees.
VerifyLoopInfo Enable verification of loop info.
VerifyMemorySSA Enables verification of MemorySSA.
VerifySCEV
VerifyScheduling
ViewMISchedDAGs
VirtRegRewriterID VirtRegRewriter pass. Rewrite virtual registers to physical registers as assigned in VirtRegMap.
XRayInstrumentationID This pass inserts the XRay instrumentation sleds if they are supported by the target platform.
all_types_equal_v True if T and every type in Ts are the same.
force_iteration_on_noniterable_enum Tag value passed to enum_seq helpers to force iteration on unsafe enums.
from_range Tag value used to select range-based constructors.
has_equality_comparison_v Detects when type const T can be compared for equality with const U.
huge_valf Use this rather than HUGE_VALF; the latter causes warnings on MSVC.
is_incomplete_v Detects when type T is incomplete. This is true for forward declarations and false for types with a full definition.
kSanitizerBinaryMetadataAtomics
kSanitizerBinaryMetadataAtomicsBit
kSanitizerBinaryMetadataAtomicsSection
kSanitizerBinaryMetadataCoveredSection
kSanitizerBinaryMetadataUAR
kSanitizerBinaryMetadataUARBit
kSanitizerBinaryMetadataUARHasSize
kSanitizerBinaryMetadataUARHasSizeBit

Using Declarations

NameDescription
LegalizeAction
ObjectFile
PassManagerBase
SectionRef
SectionedAddress
any Bring bitmask enum any-bits-set test into this namespace for ADL.
operator! Bring bitmask enum logical-not into this namespace for ADL.
operator& Bring bitmask enum bitwise AND into this namespace for ADL.
operator&= Bring bitmask enum in-place AND into this namespace for ADL.
operator<< Bring bitmask enum left-shift into this namespace for ADL.
operator<<= Bring bitmask enum in-place left-shift into this namespace for ADL.
operator>> Bring bitmask enum right-shift into this namespace for ADL.
operator>>= Bring bitmask enum in-place right-shift into this namespace for ADL.
operator^ Bring bitmask enum bitwise XOR into this namespace for ADL.
operator^= Bring bitmask enum in-place XOR into this namespace for ADL.
operator| Bring bitmask enum bitwise OR into this namespace for ADL.
operator|= Bring bitmask enum in-place OR into this namespace for ADL.
operator~ Bring bitmask enum bitwise NOT into this namespace for ADL.

Using Namespace Directives

Name
sampleprof
sampleprofutil