Re-apply [lldb] Do not use LC_FUNCTION_STARTS data to determine symbol size as symbol...
[llvm-project.git] / llvm / docs / Reference.rst
blobdf61628b06c7db5c63f26a7979a9947c6ec60e62
1 Reference
2 =========
4 LLVM and API reference documentation.
6 .. contents::
7    :local:
9 .. toctree::
10    :hidden:
12    Atomics
13    BitCodeFormat
14    BlockFrequencyTerminology
15    BranchWeightMetadata
16    Bugpoint
17    CommandGuide/index
18    ConvergenceAndUniformity
19    ConvergentOperations
20    Coroutines
21    DependenceGraphs/index
22    ExceptionHandling
23    Extensions
24    FaultMaps
25    FuzzingLLVM
26    GarbageCollection
27    GetElementPtr
28    GlobalISel/index
29    GwpAsan
30    HowToSetUpLLVMStyleRTTI
31    HowToUseAttributes
32    InAlloca
33    LangRef
34    LibFuzzer
35    MarkedUpDisassembly
36    MIRLangRef
37    OptBisect
38    PCSectionsMetadata
39    PDB/index
40    PointerAuth
41    ScudoHardenedAllocator
42    MemoryModelRelaxationAnnotations
43    MemTagSanitizer
44    Security
45    SecurityTransparencyReports
46    SegmentedStacks
47    StackMaps
48    SpeculativeLoadHardening
49    Statepoints
50    SymbolizerMarkupFormat
51    SystemLibrary
52    TestingGuide
53    TransformMetadata
54    TypeMetadata
55    XRay
56    XRayExample
57    XRayFDRFormat
58    YamlIO
60 API Reference
61 -------------
63 `Doxygen generated documentation <https://llvm.org/doxygen/>`_
64   (`classes <https://llvm.org/doxygen/inherits.html>`_)
66 :doc:`HowToUseAttributes`
67   Answers some questions about the new Attributes infrastructure.
69 LLVM Reference
70 --------------
72 ======================
73 Command Line Utilities
74 ======================
76 :doc:`LLVM Command Guide <CommandGuide/index>`
77    A reference manual for the LLVM command line utilities ("man" pages for LLVM
78    tools).
80 :doc:`Bugpoint`
81    Automatic bug finder and test-case reducer description and usage
82    information.
84 :doc:`OptBisect`
85   A command line option for debugging optimization-induced failures.
87 :doc:`SymbolizerMarkupFormat`
88   A reference for the log symbolizer markup accepted by ``llvm-symbolizer``.
90 :doc:`The Microsoft PDB File Format <PDB/index>`
91   A detailed description of the Microsoft PDB (Program Database) file format.
93 ==================
94 Garbage Collection
95 ==================
97 :doc:`GarbageCollection`
98    The interfaces source-language compilers should use for compiling GC'd
99    programs.
101 :doc:`Statepoints`
102   This describes a set of experimental extensions for garbage
103   collection support.
105 =========
106 LibFuzzer
107 =========
109 :doc:`LibFuzzer`
110   A library for writing in-process guided fuzzers.
112 :doc:`FuzzingLLVM`
113   Information on writing and using Fuzzers to find bugs in LLVM.
115 ========
116 LLVM IR
117 ========
119 :doc:`LLVM Language Reference Manual <LangRef>`
120   Defines the LLVM intermediate representation and the assembly form of the
121   different nodes.
123 :doc:`InAlloca`
124   Description of the ``inalloca`` argument attribute.
126 :doc:`BitCodeFormat`
127    This describes the file format and encoding used for LLVM "bc" files.
129 :doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`
130    A reference manual for the MIR serialization format, which is used to test
131    LLVM's code generation passes.
133 :doc:`GlobalISel/index`
134   This describes the prototype instruction selection replacement, GlobalISel.
136 :doc:`ConvergentOperations`
137   Description of ``convergent`` operation semantics and related intrinsics.
139 =====================
140 Testing and Debugging
141 =====================
143 :doc:`LLVM Testing Infrastructure Guide <TestingGuide>`
144    A reference manual for using the LLVM testing infrastructure.
146 :doc:`TestSuiteGuide`
147   Describes how to compile and run the test-suite benchmarks.
150 :doc:`GwpAsan`
151   A sampled heap memory error detection toolkit designed for production use.
153 ====
154 XRay
155 ====
157 :doc:`XRay`
158   High-level documentation of how to use XRay in LLVM.
160 :doc:`XRayExample`
161   An example of how to debug an application with XRay.
163 =================
164 Additional Topics
165 =================
167 :doc:`FaultMaps`
168   LLVM support for folding control flow into faulting machine instructions.
170 :doc:`Atomics`
171   Information about LLVM's concurrency model.
173 :doc:`ExceptionHandling`
174    This document describes the design and implementation of exception handling
175    in LLVM.
177 :doc:`Extensions`
178   LLVM-specific extensions to tools and formats LLVM seeks compatibility with.
180 :doc:`HowToSetUpLLVMStyleRTTI`
181   How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
182   class hierarchy.
184 :doc:`BlockFrequencyTerminology`
185    Provides information about terminology used in the ``BlockFrequencyInfo``
186    analysis pass.
188 :doc:`BranchWeightMetadata`
189    Provides information about Branch Prediction Information.
191 :doc:`GetElementPtr`
192   Answers to some very frequent questions about LLVM's most frequently
193   misunderstood instruction.
195 :doc:`ScudoHardenedAllocator`
196   A library that implements a security-hardened `malloc()`.
198 :doc:`MemoryModelRelaxationAnnotations`
199   Target-defined relaxation to LLVM's concurrency model.
201 :doc:`MemTagSanitizer`
202   Security hardening for production code aiming to mitigate memory
203   related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.
205 :doc:`Dependence Graphs <DependenceGraphs/index>`
206   A description of the design of the various dependence graphs such as
207   the DDG (Data Dependence Graph).
209 :doc:`SpeculativeLoadHardening`
210   A description of the Speculative Load Hardening mitigation for Spectre v1.
212 :doc:`SegmentedStacks`
213    This document describes segmented stacks and how they are used in LLVM.
215 :doc:`MarkedUpDisassembly`
216    This document describes the optional rich disassembly output syntax.
218 :doc:`StackMaps`
219   LLVM support for mapping instruction addresses to the location of
220   values and allowing code to be patched.
222 :doc:`Coroutines`
223   LLVM support for coroutines.
225 :doc:`PointerAuth`
226   A description of pointer authentication, its LLVM IR representation, and its
227   support in the backend.
229 :doc:`YamlIO`
230    A reference guide for using LLVM's YAML I/O library.
232 :doc:`ConvergenceAndUniformity`
233    A description of uniformity analysis in the presence of irreducible
234    control flow, and its implementation.