[sanitizer] Improve FreeBSD ASLR detection
[llvm-project.git] / llvm / docs / Reference.rst
blobd10fc8f23f73529025cae21f2aeae403c186c03f
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    PointerAuth\r
38    ScudoHardenedAllocator\r
39    MemTagSanitizer\r
40    Security\r
41    SegmentedStacks\r
42    StackMaps\r
43    SpeculativeLoadHardening\r
44    Statepoints\r
45    SystemLibrary\r
46    TestingGuide\r
47    TransformMetadata\r
48    TypeMetadata\r
49    XRay\r
50    XRayExample\r
51    XRayFDRFormat\r
52    YamlIO\r
54 API Reference\r
55 -------------\r
57 `Doxygen generated documentation <https://llvm.org/doxygen/>`_\r
58   (`classes <https://llvm.org/doxygen/inherits.html>`_)\r
60 :doc:`HowToUseAttributes`\r
61   Answers some questions about the new Attributes infrastructure.\r
63 `Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_\r
65 LLVM Reference\r
66 --------------\r
68 ======================\r
69 Command Line Utilities\r
70 ======================\r
72 :doc:`LLVM Command Guide <CommandGuide/index>`\r
73    A reference manual for the LLVM command line utilities ("man" pages for LLVM\r
74    tools).\r
76 :doc:`Bugpoint`\r
77    Automatic bug finder and test-case reducer description and usage\r
78    information.\r
80 :doc:`OptBisect`\r
81   A command line option for debugging optimization-induced failures.\r
83 :doc:`The Microsoft PDB File Format <PDB/index>`\r
84   A detailed description of the Microsoft PDB (Program Database) file format.\r
86 ==================\r
87 Garbage Collection\r
88 ==================\r
90 :doc:`GarbageCollection`\r
91    The interfaces source-language compilers should use for compiling GC'd\r
92    programs.\r
94 :doc:`Statepoints`\r
95   This describes a set of experimental extensions for garbage\r
96   collection support.\r
98 =========\r
99 LibFuzzer\r
100 =========\r
102 :doc:`LibFuzzer`\r
103   A library for writing in-process guided fuzzers.\r
105 :doc:`FuzzingLLVM`\r
106   Information on writing and using Fuzzers to find bugs in LLVM.\r
108 ========\r
109 LLVM IR\r
110 ========\r
112 :doc:`LLVM Language Reference Manual <LangRef>`\r
113   Defines the LLVM intermediate representation and the assembly form of the\r
114   different nodes.\r
116 :doc:`InAlloca`\r
117   Description of the ``inalloca`` argument attribute.\r
119 :doc:`BitCodeFormat`\r
120    This describes the file format and encoding used for LLVM "bc" files.\r
122 :doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`\r
123    A reference manual for the MIR serialization format, which is used to test\r
124    LLVM's code generation passes.\r
126 :doc:`GlobalISel/index`\r
127   This describes the prototype instruction selection replacement, GlobalISel.\r
129 =====================\r
130 Testing and Debugging\r
131 =====================\r
133 :doc:`LLVM Testing Infrastructure Guide <TestingGuide>`\r
134    A reference manual for using the LLVM testing infrastructure.\r
136 :doc:`TestSuiteGuide`\r
137   Describes how to compile and run the test-suite benchmarks.\r
140 :doc:`GwpAsan`\r
141   A sampled heap memory error detection toolkit designed for production use.\r
143 ====\r
144 XRay\r
145 ====\r
147 :doc:`XRay`\r
148   High-level documentation of how to use XRay in LLVM.\r
150 :doc:`XRayExample`\r
151   An example of how to debug an application with XRay.\r
153 =================\r
154 Additional Topics\r
155 =================\r
157 :doc:`FaultMaps`\r
158   LLVM support for folding control flow into faulting machine instructions.\r
160 :doc:`Atomics`\r
161   Information about LLVM's concurrency model.\r
163 :doc:`ExceptionHandling`\r
164    This document describes the design and implementation of exception handling\r
165    in LLVM.\r
167 :doc:`Extensions`\r
168   LLVM-specific extensions to tools and formats LLVM seeks compatibility with.\r
170 :doc:`HowToSetUpLLVMStyleRTTI`\r
171   How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your\r
172   class hierarchy.\r
174 :doc:`BlockFrequencyTerminology`\r
175    Provides information about terminology used in the ``BlockFrequencyInfo``\r
176    analysis pass.\r
178 :doc:`BranchWeightMetadata`\r
179    Provides information about Branch Prediction Information.\r
181 :doc:`GetElementPtr`\r
182   Answers to some very frequent questions about LLVM's most frequently\r
183   misunderstood instruction.\r
185 :doc:`ScudoHardenedAllocator`\r
186   A library that implements a security-hardened `malloc()`.\r
188 :doc:`MemTagSanitizer`\r
189   Security hardening for production code aiming to mitigate memory\r
190   related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.\r
192 :doc:`Dependence Graphs <DependenceGraphs/index>`\r
193   A description of the design of the various dependence graphs such as\r
194   the DDG (Data Dependence Graph).\r
196 :doc:`SpeculativeLoadHardening`\r
197   A description of the Speculative Load Hardening mitigation for Spectre v1.\r
199 :doc:`SegmentedStacks`\r
200    This document describes segmented stacks and how they are used in LLVM.\r
202 :doc:`MarkedUpDisassembly`\r
203    This document describes the optional rich disassembly output syntax.\r
205 :doc:`StackMaps`\r
206   LLVM support for mapping instruction addresses to the location of\r
207   values and allowing code to be patched.\r
209 :doc:`Coroutines`\r
210   LLVM support for coroutines.\r
212 :doc:`PointerAuth`\r
213   A description of pointer authentication, its LLVM IR representation, and its\r
214   support in the backend.\r
216 :doc:`YamlIO`\r
217    A reference guide for using LLVM's YAML I/O library.\r