Reference

LLVM and API reference documentation.

:local:
:hidden:

HowToUseAttributes
CommandGuide/index
OptBisect
SymbolizerMarkupFormat
PDB/index
GarbageCollection
Statepoints
LibFuzzer
FuzzingLLVM
LangRef
UndefinedBehavior
InAlloca
BitCodeFormat
MIRLangRef
GlobalISel/index
ConvergentOperations
TestingGuide
GwpAsan
XRay
XRayExample
FaultMaps
Atomics
ExceptionHandling
Extensions
HowToSetUpLLVMStyleRTTI
BlockFrequencyTerminology
BranchWeightMetadata
GetElementPtr
ScudoHardenedAllocator
MemoryModelRelaxationAnnotations
MemTagSanitizer
DependenceGraphs/index
SpeculativeLoadHardening
SegmentedStacks
MarkedUpDisassembly
StackMaps
Coroutines
PointerAuth
YamlIO
ConvergenceAndUniformity
MLGO
ContentAddressableStorage
CIBestPractices
AIToolPolicy
CallGraphSection
InterfaceExportAnnotations
PCSectionsMetadata
QualGroup
Security
SecurityTransparencyReports
SystemLibrary
TransformMetadata
TypeMetadata
XRayFDRFormat

API Reference

Doxygen generated documentation : (classes)

{doc}HowToUseAttributes : Answers some questions about the new Attributes infrastructure.

LLVM Reference

Command Line Utilities

{doc}LLVM Command Guide <CommandGuide/index> : A reference manual for the LLVM command line utilities (“man” pages for LLVM tools).

{doc}llvm-reduce <CommandGuide/llvm-reduce> : Automatic bug finder and test-case reducer description and usage information.

{doc}OptBisect : A command line option for debugging optimization-induced failures.

{doc}SymbolizerMarkupFormat : A reference for the log symbolizer markup accepted by llvm-symbolizer.

{doc}The Microsoft PDB File Format <PDB/index> : A detailed description of the Microsoft PDB (Program Database) file format.

Garbage Collection

{doc}GarbageCollection : The interfaces source-language compilers should use for compiling GC'd programs.

{doc}Statepoints : This describes a set of experimental extensions for garbage collection support.

LibFuzzer

{doc}LibFuzzer : A library for writing in-process guided fuzzers.

{doc}FuzzingLLVM : Information on writing and using Fuzzers to find bugs in LLVM.

LLVM IR

{doc}LLVM Language Reference Manual <LangRef> : Defines the LLVM intermediate representation and the assembly form of the different nodes.

{doc}Undefined Behavior (UB) <UndefinedBehavior> : A guide on what UB/undef/poison are and when to use each one.

{doc}InAlloca : Description of the inalloca argument attribute.

{doc}BitCodeFormat : This describes the file format and encoding used for LLVM “bc” files.

{doc}Machine IR (MIR) Format Reference Manual <MIRLangRef> : A reference manual for the MIR serialization format, which is used to test LLVM's code generation passes.

{doc}GlobalISel/index : This describes the prototype instruction selection replacement, GlobalISel.

{doc}ConvergentOperations : Description of convergent operation semantics and related intrinsics.

Testing and Debugging

{doc}LLVM Testing Infrastructure Guide <TestingGuide> : A reference manual for using the LLVM testing infrastructure.

{doc}TestSuiteGuide : Describes how to compile and run the test-suite benchmarks.

{doc}GwpAsan : A sampled heap memory error detection toolkit designed for production use.

XRay

{doc}XRay : High-level documentation of how to use XRay in LLVM.

{doc}XRayExample : An example of how to debug an application with XRay.

Additional Topics

{doc}FaultMaps : LLVM support for folding control flow into faulting machine instructions.

{doc}Atomics : Information about LLVM's concurrency model.

{doc}ExceptionHandling : This document describes the design and implementation of exception handling in LLVM.

{doc}Extensions : LLVM-specific extensions to tools and formats LLVM seeks compatibility with.

{doc}HowToSetUpLLVMStyleRTTI : How to make isa<>, dyn_cast<>, etc. available for clients of your class hierarchy.

{doc}BlockFrequencyTerminology : Provides information about terminology used in the BlockFrequencyInfo analysis pass.

{doc}BranchWeightMetadata : Provides information about Branch Prediction Information.

{doc}GetElementPtr : Answers to some very frequent questions about LLVM's most frequently misunderstood instruction.

{doc}ScudoHardenedAllocator : A library that implements a security-hardened malloc().

{doc}MemoryModelRelaxationAnnotations : Target-defined relaxation to LLVM's concurrency model.

{doc}MemTagSanitizer : Security hardening for production code aiming to mitigate memory related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.

{doc}Dependence Graphs <DependenceGraphs/index> : A description of the design of the various dependence graphs such as the DDG (Data Dependence Graph).

{doc}SpeculativeLoadHardening : A description of the Speculative Load Hardening mitigation for Spectre v1.

{doc}SegmentedStacks : This document describes segmented stacks and how they are used in LLVM.

{doc}MarkedUpDisassembly : This document describes the optional rich disassembly output syntax.

{doc}StackMaps : LLVM support for mapping instruction addresses to the location of values and allowing code to be patched.

{doc}Coroutines : LLVM support for coroutines.

{doc}PointerAuth : A description of pointer authentication, its LLVM IR representation, and its support in the backend.

{doc}YamlIO : A reference guide for using LLVM's YAML I/O library.

{doc}ConvergenceAndUniformity : A description of uniformity analysis in the presence of irreducible control flow, and its implementation.

{doc}MLGO : Facilities for ML-Guided Optimization, such as collecting IR corpora from a build, interfacing with ML models, an exposing features for training.

{doc}ContentAddressableStorage : A reference guide for using LLVM's CAS library.

{doc}CIBestPractices : A list of guidelines and best practices to use when working on LLVM's CI systems.