[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / docs / Reference.rst
blob662f1ec650fcf59328cd88c1d2b59d367d1dbc1e
1 Reference\r
2 =========\r
3 \r
4 LLVM and API reference documentation.\r
5 \r
6 .. contents::\r
7    :local:\r
8 \r
9 .. toctree::\r
10    :hidden:\r
12    Atomics\r
13    BitCodeFormat\r
14    BlockFrequencyTerminology\r
15    BranchWeightMetadata\r
16    Bugpoint\r
17    CommandGuide/index\r
18    Coroutines\r
19    DependenceGraphs/index\r
20    ExceptionHandling\r
21    Extensions\r
22    FaultMaps\r
23    FuzzingLLVM\r
24    GarbageCollection\r
25    GetElementPtr\r
26    GlobalISel/index\r
27    GwpAsan\r
28    HowToSetUpLLVMStyleRTTI\r
29    HowToUseAttributes\r
30    InAlloca\r
31    LangRef\r
32    LibFuzzer\r
33    MarkedUpDisassembly\r
34    MIRLangRef\r
35    OptBisect\r
36    PDB/index\r
37    ScudoHardenedAllocator\r
38    MemTagSanitizer\r
39    Security\r
40    SegmentedStacks\r
41    StackMaps\r
42    SpeculativeLoadHardening\r
43    Statepoints\r
44    SystemLibrary\r
45    TestingGuide\r
46    TransformMetadata\r
47    TypeMetadata\r
48    XRay\r
49    XRayExample\r
50    XRayFDRFormat\r
51    YamlIO\r
53 API Reference\r
54 -------------\r
56 `Doxygen generated documentation <https://llvm.org/doxygen/>`_\r
57   (`classes <https://llvm.org/doxygen/inherits.html>`_)\r
59 :doc:`HowToUseAttributes`\r
60   Answers some questions about the new Attributes infrastructure.\r
62 `Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_\r
64 LLVM Reference\r
65 --------------\r
67 ======================\r
68 Command Line Utilities\r
69 ======================\r
71 :doc:`LLVM Command Guide <CommandGuide/index>`\r
72    A reference manual for the LLVM command line utilities ("man" pages for LLVM\r
73    tools).\r
75 :doc:`Bugpoint`\r
76    Automatic bug finder and test-case reducer description and usage\r
77    information.\r
79 :doc:`OptBisect`\r
80   A command line option for debugging optimization-induced failures.\r
82 :doc:`The Microsoft PDB File Format <PDB/index>`\r
83   A detailed description of the Microsoft PDB (Program Database) file format.\r
85 ==================\r
86 Garbage Collection\r
87 ==================\r
89 :doc:`GarbageCollection`\r
90    The interfaces source-language compilers should use for compiling GC'd\r
91    programs.\r
93 :doc:`Statepoints`\r
94   This describes a set of experimental extensions for garbage\r
95   collection support.\r
97 =========\r
98 LibFuzzer\r
99 =========\r
101 :doc:`LibFuzzer`\r
102   A library for writing in-process guided fuzzers.\r
104 :doc:`FuzzingLLVM`\r
105   Information on writing and using Fuzzers to find bugs in LLVM.\r
107 ========\r
108 LLVM IR\r
109 ========\r
111 :doc:`LLVM Language Reference Manual <LangRef>`\r
112   Defines the LLVM intermediate representation and the assembly form of the\r
113   different nodes.\r
115 :doc:`InAlloca`\r
116   Description of the ``inalloca`` argument attribute.\r
118 :doc:`BitCodeFormat`\r
119    This describes the file format and encoding used for LLVM "bc" files.\r
121 :doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`\r
122    A reference manual for the MIR serialization format, which is used to test\r
123    LLVM's code generation passes.\r
125 :doc:`GlobalISel/index`\r
126   This describes the prototype instruction selection replacement, GlobalISel.\r
128 =====================\r
129 Testing and Debugging\r
130 =====================\r
132 :doc:`LLVM Testing Infrastructure Guide <TestingGuide>`\r
133    A reference manual for using the LLVM testing infrastructure.\r
135 :doc:`TestSuiteGuide`\r
136   Describes how to compile and run the test-suite benchmarks.\r
139 :doc:`GwpAsan`\r
140   A sampled heap memory error detection toolkit designed for production use.\r
142 ====\r
143 XRay\r
144 ====\r
146 :doc:`XRay`\r
147   High-level documentation of how to use XRay in LLVM.\r
149 :doc:`XRayExample`\r
150   An example of how to debug an application with XRay.\r
152 =================\r
153 Additional Topics\r
154 =================\r
156 :doc:`FaultMaps`\r
157   LLVM support for folding control flow into faulting machine instructions.\r
159 :doc:`Atomics`\r
160   Information about LLVM's concurrency model.\r
162 :doc:`ExceptionHandling`\r
163    This document describes the design and implementation of exception handling\r
164    in LLVM.\r
166 :doc:`Extensions`\r
167   LLVM-specific extensions to tools and formats LLVM seeks compatibility with.\r
169 :doc:`HowToSetUpLLVMStyleRTTI`\r
170   How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your\r
171   class hierarchy.\r
173 :doc:`BlockFrequencyTerminology`\r
174    Provides information about terminology used in the ``BlockFrequencyInfo``\r
175    analysis pass.\r
177 :doc:`BranchWeightMetadata`\r
178    Provides information about Branch Prediction Information.\r
180 :doc:`GetElementPtr`\r
181   Answers to some very frequent questions about LLVM's most frequently\r
182   misunderstood instruction.\r
184 :doc:`ScudoHardenedAllocator`\r
185   A library that implements a security-hardened `malloc()`.\r
187 :doc:`MemTagSanitizer`\r
188   Security hardening for production code aiming to mitigate memory\r
189   related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.\r
191 :doc:`Dependence Graphs <DependenceGraphs/index>`\r
192   A description of the design of the various dependence graphs such as\r
193   the DDG (Data Dependence Graph).\r
195 :doc:`SpeculativeLoadHardening`\r
196   A description of the Speculative Load Hardening mitigation for Spectre v1.\r
198 :doc:`SegmentedStacks`\r
199    This document describes segmented stacks and how they are used in LLVM.\r
201 :doc:`MarkedUpDisassembly`\r
202    This document describes the optional rich disassembly output syntax.\r
204 :doc:`StackMaps`\r
205   LLVM support for mapping instruction addresses to the location of\r
206   values and allowing code to be patched.\r
208 :doc:`Coroutines`\r
209   LLVM support for coroutines.\r
211 :doc:`YamlIO`\r
212    A reference guide for using LLVM's YAML I/O library.\r