Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / docs / Reference.rst
blob3a1d1665be439e287460bd27547609d2671fdb08
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    ConvergenceAndUniformity\r
19    ConvergentOperations\r
20    Coroutines\r
21    DependenceGraphs/index\r
22    ExceptionHandling\r
23    Extensions\r
24    FaultMaps\r
25    FuzzingLLVM\r
26    GarbageCollection\r
27    GetElementPtr\r
28    GlobalISel/index\r
29    GwpAsan\r
30    HowToSetUpLLVMStyleRTTI\r
31    HowToUseAttributes\r
32    InAlloca\r
33    LangRef\r
34    LibFuzzer\r
35    MarkedUpDisassembly\r
36    MIRLangRef\r
37    OptBisect\r
38    PCSectionsMetadata\r
39    PDB/index\r
40    PointerAuth\r
41    ScudoHardenedAllocator\r
42    MemTagSanitizer\r
43    Security\r
44    SecurityTransparencyReports\r
45    SegmentedStacks\r
46    StackMaps\r
47    SpeculativeLoadHardening\r
48    Statepoints\r
49    SymbolizerMarkupFormat\r
50    SystemLibrary\r
51    TestingGuide\r
52    TransformMetadata\r
53    TypeMetadata\r
54    XRay\r
55    XRayExample\r
56    XRayFDRFormat\r
57    YamlIO\r
59 API Reference\r
60 -------------\r
62 `Doxygen generated documentation <https://llvm.org/doxygen/>`_\r
63   (`classes <https://llvm.org/doxygen/inherits.html>`_)\r
65 :doc:`HowToUseAttributes`\r
66   Answers some questions about the new Attributes infrastructure.\r
68 LLVM Reference\r
69 --------------\r
71 ======================\r
72 Command Line Utilities\r
73 ======================\r
75 :doc:`LLVM Command Guide <CommandGuide/index>`\r
76    A reference manual for the LLVM command line utilities ("man" pages for LLVM\r
77    tools).\r
79 :doc:`Bugpoint`\r
80    Automatic bug finder and test-case reducer description and usage\r
81    information.\r
83 :doc:`OptBisect`\r
84   A command line option for debugging optimization-induced failures.\r
86 :doc:`SymbolizerMarkupFormat`\r
87   A reference for the log symbolizer markup accepted by ``llvm-symbolizer``.\r
89 :doc:`The Microsoft PDB File Format <PDB/index>`\r
90   A detailed description of the Microsoft PDB (Program Database) file format.\r
92 ==================\r
93 Garbage Collection\r
94 ==================\r
96 :doc:`GarbageCollection`\r
97    The interfaces source-language compilers should use for compiling GC'd\r
98    programs.\r
100 :doc:`Statepoints`\r
101   This describes a set of experimental extensions for garbage\r
102   collection support.\r
104 =========\r
105 LibFuzzer\r
106 =========\r
108 :doc:`LibFuzzer`\r
109   A library for writing in-process guided fuzzers.\r
111 :doc:`FuzzingLLVM`\r
112   Information on writing and using Fuzzers to find bugs in LLVM.\r
114 ========\r
115 LLVM IR\r
116 ========\r
118 :doc:`LLVM Language Reference Manual <LangRef>`\r
119   Defines the LLVM intermediate representation and the assembly form of the\r
120   different nodes.\r
122 :doc:`InAlloca`\r
123   Description of the ``inalloca`` argument attribute.\r
125 :doc:`BitCodeFormat`\r
126    This describes the file format and encoding used for LLVM "bc" files.\r
128 :doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`\r
129    A reference manual for the MIR serialization format, which is used to test\r
130    LLVM's code generation passes.\r
132 :doc:`GlobalISel/index`\r
133   This describes the prototype instruction selection replacement, GlobalISel.\r
135 :doc:`ConvergentOperations`\r
136   Description of ``convergent`` operation semantics and related intrinsics.\r
138 =====================\r
139 Testing and Debugging\r
140 =====================\r
142 :doc:`LLVM Testing Infrastructure Guide <TestingGuide>`\r
143    A reference manual for using the LLVM testing infrastructure.\r
145 :doc:`TestSuiteGuide`\r
146   Describes how to compile and run the test-suite benchmarks.\r
149 :doc:`GwpAsan`\r
150   A sampled heap memory error detection toolkit designed for production use.\r
152 ====\r
153 XRay\r
154 ====\r
156 :doc:`XRay`\r
157   High-level documentation of how to use XRay in LLVM.\r
159 :doc:`XRayExample`\r
160   An example of how to debug an application with XRay.\r
162 =================\r
163 Additional Topics\r
164 =================\r
166 :doc:`FaultMaps`\r
167   LLVM support for folding control flow into faulting machine instructions.\r
169 :doc:`Atomics`\r
170   Information about LLVM's concurrency model.\r
172 :doc:`ExceptionHandling`\r
173    This document describes the design and implementation of exception handling\r
174    in LLVM.\r
176 :doc:`Extensions`\r
177   LLVM-specific extensions to tools and formats LLVM seeks compatibility with.\r
179 :doc:`HowToSetUpLLVMStyleRTTI`\r
180   How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your\r
181   class hierarchy.\r
183 :doc:`BlockFrequencyTerminology`\r
184    Provides information about terminology used in the ``BlockFrequencyInfo``\r
185    analysis pass.\r
187 :doc:`BranchWeightMetadata`\r
188    Provides information about Branch Prediction Information.\r
190 :doc:`GetElementPtr`\r
191   Answers to some very frequent questions about LLVM's most frequently\r
192   misunderstood instruction.\r
194 :doc:`ScudoHardenedAllocator`\r
195   A library that implements a security-hardened `malloc()`.\r
197 :doc:`MemTagSanitizer`\r
198   Security hardening for production code aiming to mitigate memory\r
199   related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.\r
201 :doc:`Dependence Graphs <DependenceGraphs/index>`\r
202   A description of the design of the various dependence graphs such as\r
203   the DDG (Data Dependence Graph).\r
205 :doc:`SpeculativeLoadHardening`\r
206   A description of the Speculative Load Hardening mitigation for Spectre v1.\r
208 :doc:`SegmentedStacks`\r
209    This document describes segmented stacks and how they are used in LLVM.\r
211 :doc:`MarkedUpDisassembly`\r
212    This document describes the optional rich disassembly output syntax.\r
214 :doc:`StackMaps`\r
215   LLVM support for mapping instruction addresses to the location of\r
216   values and allowing code to be patched.\r
218 :doc:`Coroutines`\r
219   LLVM support for coroutines.\r
221 :doc:`PointerAuth`\r
222   A description of pointer authentication, its LLVM IR representation, and its\r
223   support in the backend.\r
225 :doc:`YamlIO`\r
226    A reference guide for using LLVM's YAML I/O library.\r
228 :doc:`ConvergenceAndUniformity`\r
229    A description of uniformity analysis in the presence of irreducible\r
230    control flow, and its implementation.\r