Top‐level LLVM library namespace.

Namespaces

Name

Description

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

Name

Description

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 `ThunkInserter`s 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

Name

Description

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

Name

Description

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

Name

Description

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

Name

Description

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

Name

Description

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

Created with MrDocs