2019-09-25 08:49:02 +08:00
|
|
|
Reference
|
|
|
|
=========
|
|
|
|
|
|
|
|
LLVM and API reference documentation.
|
|
|
|
|
2019-10-06 23:36:37 +08:00
|
|
|
.. contents::
|
|
|
|
:local:
|
|
|
|
|
2019-09-25 08:49:02 +08:00
|
|
|
.. toctree::
|
|
|
|
:hidden:
|
|
|
|
|
2019-10-07 00:10:11 +08:00
|
|
|
Atomics
|
2019-10-07 06:49:22 +08:00
|
|
|
BitCodeFormat
|
|
|
|
BlockFrequencyTerminology
|
|
|
|
BranchWeightMetadata
|
2019-10-06 23:36:37 +08:00
|
|
|
Bugpoint
|
|
|
|
CommandGuide/index
|
2019-10-07 06:49:22 +08:00
|
|
|
Coroutines
|
|
|
|
DependenceGraphs/index
|
|
|
|
ExceptionHandling
|
2019-10-07 00:10:11 +08:00
|
|
|
Extensions
|
2019-10-07 06:49:22 +08:00
|
|
|
FaultMaps
|
2019-10-06 23:36:37 +08:00
|
|
|
FuzzingLLVM
|
|
|
|
GarbageCollection
|
|
|
|
GetElementPtr
|
2019-10-26 06:50:36 +08:00
|
|
|
GlobalISel/index
|
2019-10-07 00:10:11 +08:00
|
|
|
GwpAsan
|
|
|
|
HowToSetUpLLVMStyleRTTI
|
2019-10-07 06:49:22 +08:00
|
|
|
HowToUseAttributes
|
|
|
|
InAlloca
|
2019-10-06 23:36:37 +08:00
|
|
|
LangRef
|
|
|
|
LibFuzzer
|
2019-10-07 06:49:22 +08:00
|
|
|
MarkedUpDisassembly
|
2019-09-25 08:49:02 +08:00
|
|
|
MIRLangRef
|
2019-10-07 00:10:11 +08:00
|
|
|
OptBisect
|
2019-10-07 06:49:22 +08:00
|
|
|
ORCv2
|
2019-10-06 23:36:37 +08:00
|
|
|
PDB/index
|
2019-10-07 00:10:11 +08:00
|
|
|
ScudoHardenedAllocator
|
2019-10-19 03:32:21 +08:00
|
|
|
MemTagSanitizer
|
2019-11-16 02:54:39 +08:00
|
|
|
Security
|
2019-10-07 06:49:22 +08:00
|
|
|
SegmentedStacks
|
|
|
|
StackMaps
|
|
|
|
SpeculativeLoadHardening
|
2019-10-06 23:36:37 +08:00
|
|
|
Statepoints
|
2019-10-07 06:49:22 +08:00
|
|
|
SystemLibrary
|
2019-10-06 23:36:37 +08:00
|
|
|
TestingGuide
|
2019-10-07 06:49:22 +08:00
|
|
|
TransformMetadata
|
|
|
|
TypeMetadata
|
|
|
|
XRay
|
|
|
|
XRayExample
|
|
|
|
XRayFDRFormat
|
2019-10-06 23:36:37 +08:00
|
|
|
YamlIO
|
|
|
|
|
|
|
|
API Reference
|
|
|
|
-------------
|
|
|
|
|
2020-03-23 05:42:03 +08:00
|
|
|
`Doxygen generated documentation <https://llvm.org/doxygen/>`_
|
|
|
|
(`classes <https://llvm.org/doxygen/inherits.html>`_)
|
2019-10-06 23:36:37 +08:00
|
|
|
|
2019-10-10 05:09:09 +08:00
|
|
|
:doc:`HowToUseAttributes`
|
|
|
|
Answers some questions about the new Attributes infrastructure.
|
|
|
|
|
2019-10-06 23:36:37 +08:00
|
|
|
`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_
|
2019-09-29 23:31:52 +08:00
|
|
|
|
2019-10-07 06:49:22 +08:00
|
|
|
: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.
|
|
|
|
|
2019-09-29 23:31:52 +08:00
|
|
|
LLVM Reference
|
2019-10-06 23:36:37 +08:00
|
|
|
--------------
|
2019-09-25 08:49:02 +08:00
|
|
|
|
2019-10-06 23:36:37 +08:00
|
|
|
======================
|
|
|
|
Command Line Utilities
|
|
|
|
======================
|
2019-09-29 23:31:52 +08:00
|
|
|
|
2019-10-06 23:36:37 +08:00
|
|
|
:doc:`LLVM Command Guide <CommandGuide/index>`
|
|
|
|
A reference manual for the LLVM command line utilities ("man" pages for LLVM
|
|
|
|
tools).
|
2019-09-25 08:49:02 +08:00
|
|
|
|
2019-10-06 23:36:37 +08:00
|
|
|
:doc:`Bugpoint`
|
|
|
|
Automatic bug finder and test-case reducer description and usage
|
|
|
|
information.
|
|
|
|
|
2019-10-07 00:10:11 +08:00
|
|
|
:doc:`OptBisect`
|
|
|
|
A command line option for debugging optimization-induced failures.
|
|
|
|
|
2019-10-06 23:36:37 +08:00
|
|
|
: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.
|
|
|
|
|
2019-10-10 04:26:13 +08:00
|
|
|
========
|
|
|
|
LLVM IR
|
|
|
|
========
|
|
|
|
|
|
|
|
:doc:`LLVM Language Reference Manual <LangRef>`
|
|
|
|
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 <MIRLangRef>`
|
|
|
|
A reference manual for the MIR serialization format, which is used to test
|
|
|
|
LLVM's code generation passes.
|
|
|
|
|
2019-10-26 06:50:36 +08:00
|
|
|
:doc:`GlobalISel/index`
|
2019-10-10 04:26:13 +08:00
|
|
|
This describes the prototype instruction selection replacement, GlobalISel.
|
|
|
|
|
2019-10-14 04:05:22 +08:00
|
|
|
=====================
|
|
|
|
Testing and Debugging
|
|
|
|
=====================
|
2019-10-06 23:36:37 +08:00
|
|
|
|
|
|
|
:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`
|
|
|
|
A reference manual for using the LLVM testing infrastructure.
|
|
|
|
|
|
|
|
:doc:`TestSuiteGuide`
|
2019-10-07 06:49:22 +08:00
|
|
|
Describes how to compile and run the test-suite benchmarks.
|
|
|
|
|
2019-10-14 04:05:22 +08:00
|
|
|
|
|
|
|
:doc:`GwpAsan`
|
|
|
|
A sampled heap memory error detection toolkit designed for production use.
|
|
|
|
|
2019-10-07 06:49:22 +08:00
|
|
|
====
|
|
|
|
XRay
|
|
|
|
====
|
|
|
|
|
|
|
|
:doc:`XRay`
|
|
|
|
High-level documentation of how to use XRay in LLVM.
|
|
|
|
|
|
|
|
:doc:`XRayExample`
|
2019-10-10 05:09:09 +08:00
|
|
|
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()`.
|
|
|
|
|
2019-10-19 03:32:21 +08:00
|
|
|
:doc:`MemTagSanitizer`
|
|
|
|
Security hardening for production code aiming to mitigate memory
|
2020-03-06 00:27:25 +08:00
|
|
|
related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.
|
2019-10-19 03:32:21 +08:00
|
|
|
|
2019-10-10 05:09:09 +08:00
|
|
|
: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:`YamlIO`
|
2019-10-26 06:50:36 +08:00
|
|
|
A reference guide for using LLVM's YAML I/O library.
|