[ThinLTO] Add code comment. NFC
[llvm-core.git] / docs / Reference.rst
blob3fbceba1181f7a61eab198a5116abbe763b1e6e4
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\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    ORCv2\r
37    PDB/index\r
38    ScudoHardenedAllocator\r
39    SegmentedStacks\r
40    StackMaps\r
41    SpeculativeLoadHardening\r
42    Statepoints\r
43    SystemLibrary\r
44    TestingGuide\r
45    TransformMetadata\r
46    TypeMetadata\r
47    XRay\r
48    XRayExample\r
49    XRayFDRFormat\r
50    YamlIO\r
52 API Reference\r
53 -------------\r
55 `Doxygen generated documentation <http://llvm.org/doxygen/>`_\r
56   (`classes <http://llvm.org/doxygen/inherits.html>`_)\r
58 :doc:`HowToUseAttributes`\r
59   Answers some questions about the new Attributes infrastructure.\r
61 `Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_\r
63 :doc:`ORCv2`\r
64    Describes the design and implementation of the ORC APIs, including some\r
65    usage examples, and a guide for users transitioning from ORCv1 to ORCv2.\r
67 LLVM Reference\r
68 --------------\r
70 ======================\r
71 Command Line Utilities\r
72 ======================\r
74 :doc:`LLVM Command Guide <CommandGuide/index>`\r
75    A reference manual for the LLVM command line utilities ("man" pages for LLVM\r
76    tools).\r
78 :doc:`Bugpoint`\r
79    Automatic bug finder and test-case reducer description and usage\r
80    information.\r
82 :doc:`OptBisect`\r
83   A command line option for debugging optimization-induced failures.\r
85 :doc:`The Microsoft PDB File Format <PDB/index>`\r
86   A detailed description of the Microsoft PDB (Program Database) file format.\r
88 ==================\r
89 Garbage Collection\r
90 ==================\r
92 :doc:`GarbageCollection`\r
93    The interfaces source-language compilers should use for compiling GC'd\r
94    programs.\r
96 :doc:`Statepoints`\r
97   This describes a set of experimental extensions for garbage\r
98   collection support.\r
100 =========\r
101 LibFuzzer\r
102 =========\r
104 :doc:`LibFuzzer`\r
105   A library for writing in-process guided fuzzers.\r
107 :doc:`FuzzingLLVM`\r
108   Information on writing and using Fuzzers to find bugs in LLVM.\r
110 ========\r
111 LLVM IR\r
112 ========\r
114 :doc:`LLVM Language Reference Manual <LangRef>`\r
115   Defines the LLVM intermediate representation and the assembly form of the\r
116   different nodes.\r
118 :doc:`InAlloca`\r
119   Description of the ``inalloca`` argument attribute.\r
121 :doc:`BitCodeFormat`\r
122    This describes the file format and encoding used for LLVM "bc" files.\r
124 :doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`\r
125    A reference manual for the MIR serialization format, which is used to test\r
126    LLVM's code generation passes.\r
128 :doc:`GlobalISel`\r
129   This describes the prototype instruction selection replacement, GlobalISel.\r
131 =====================\r
132 Testing and Debugging\r
133 =====================\r
135 :doc:`LLVM Testing Infrastructure Guide <TestingGuide>`\r
136    A reference manual for using the LLVM testing infrastructure.\r
138 :doc:`TestSuiteGuide`\r
139   Describes how to compile and run the test-suite benchmarks.\r
142 :doc:`GwpAsan`\r
143   A sampled heap memory error detection toolkit designed for production use.\r
145 ====\r
146 XRay\r
147 ====\r
149 :doc:`XRay`\r
150   High-level documentation of how to use XRay in LLVM.\r
152 :doc:`XRayExample`\r
153   An example of how to debug an application with XRay.\r
155 =================\r
156 Additional Topics\r
157 =================\r
159 :doc:`FaultMaps`\r
160   LLVM support for folding control flow into faulting machine instructions.\r
162 :doc:`Atomics`\r
163   Information about LLVM's concurrency model.\r
165 :doc:`ExceptionHandling`\r
166    This document describes the design and implementation of exception handling\r
167    in LLVM.\r
169 :doc:`Extensions`\r
170   LLVM-specific extensions to tools and formats LLVM seeks compatibility with.\r
172 :doc:`HowToSetUpLLVMStyleRTTI`\r
173   How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your\r
174   class hierarchy.\r
176 :doc:`BlockFrequencyTerminology`\r
177    Provides information about terminology used in the ``BlockFrequencyInfo``\r
178    analysis pass.\r
180 :doc:`BranchWeightMetadata`\r
181    Provides information about Branch Prediction Information.\r
183 :doc:`GetElementPtr`\r
184   Answers to some very frequent questions about LLVM's most frequently\r
185   misunderstood instruction.\r
187 :doc:`ScudoHardenedAllocator`\r
188   A library that implements a security-hardened `malloc()`.\r
190 :doc:`Dependence Graphs <DependenceGraphs/index>`\r
191   A description of the design of the various dependence graphs such as\r
192   the DDG (Data Dependence Graph).\r
194 :doc:`SpeculativeLoadHardening`\r
195   A description of the Speculative Load Hardening mitigation for Spectre v1.\r
197 :doc:`SegmentedStacks`\r
198    This document describes segmented stacks and how they are used in LLVM.\r
200 :doc:`MarkedUpDisassembly`\r
201    This document describes the optional rich disassembly output syntax.\r
203 :doc:`StackMaps`\r
204   LLVM support for mapping instruction addresses to the location of\r
205   values and allowing code to be patched.\r
207 :doc:`Coroutines`\r
208   LLVM support for coroutines.\r
210 :doc:`YamlIO`\r
211    A reference guide for using LLVM's YAML I/O library.