Reference
=========
LLVM and API reference documentation.
.. contents::
:local:
.. toctree::
:hidden:
Atomics
BitCodeFormat
BlockFrequencyTerminology
BranchWeightMetadata
Bugpoint
CommandGuide/index
Coroutines
DependenceGraphs/index
ExceptionHandling
Extensions
FaultMaps
FuzzingLLVM
GarbageCollection
GetElementPtr
GlobalISel/index
GwpAsan
HowToSetUpLLVMStyleRTTI
HowToUseAttributes
InAlloca
LangRef
LibFuzzer
MarkedUpDisassembly
MIRLangRef
OptBisect
ORCv2
PDB/index
ScudoHardenedAllocator
MemTagSanitizer
SegmentedStacks
StackMaps
SpeculativeLoadHardening
Statepoints
SystemLibrary
TestingGuide
TransformMetadata
TypeMetadata
XRay
XRayExample
XRayFDRFormat
YamlIO
API Reference
-------------
`Doxygen generated documentation `_
(`classes `_)
:doc:`HowToUseAttributes`
Answers some questions about the new Attributes infrastructure.
`Documentation for Go bindings `_
:doc:`ORCv2`
Describes the design and implementation of the ORC APIs, including some
usage examples, and a guide for users transitioning from ORCv1 to ORCv2.
LLVM Reference
--------------
======================
Command Line Utilities
======================
:doc:`LLVM Command Guide `
A reference manual for the LLVM command line utilities ("man" pages for LLVM
tools).
:doc:`Bugpoint`
Automatic bug finder and test-case reducer description and usage
information.
:doc:`OptBisect`
A command line option for debugging optimization-induced failures.
:doc:`The Microsoft PDB File Format `
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 `
Defines the LLVM intermediate representation and the assembly form of the
different nodes.
: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 `
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.
=====================
Testing and Debugging
=====================
:doc:`LLVM Testing Infrastructure Guide `
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:`MemTagSanitizer`
Security hardening for production code aiming to mitigate memory
related vulnerabilities. Based on ARMv9 Memory Tagging Extension.
:doc:`Dependence Graphs `
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:`YamlIO`
A reference guide for using LLVM's YAML I/O library.