Clang] Fix expansion of response files in -Wp after integrated-cc1 change
[llvm-project.git] / llvm / docs / Reference.rst
blob8aef4eec587d7d0a3c4e3617e97407f66ae1c212
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    ORCv2\r
37    PDB/index\r
38    ScudoHardenedAllocator\r
39    MemTagSanitizer\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 <http://llvm.org/doxygen/>`_\r
57   (`classes <http://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 :doc:`ORCv2`\r
65    Describes the design and implementation of the ORC APIs, including some\r
66    usage examples, and a guide for users transitioning from ORCv1 to ORCv2.\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:`The Microsoft PDB File Format <PDB/index>`\r
87   A detailed description of the Microsoft PDB (Program Database) file format.\r
89 ==================\r
90 Garbage Collection\r
91 ==================\r
93 :doc:`GarbageCollection`\r
94    The interfaces source-language compilers should use for compiling GC'd\r
95    programs.\r
97 :doc:`Statepoints`\r
98   This describes a set of experimental extensions for garbage\r
99   collection support.\r
101 =========\r
102 LibFuzzer\r
103 =========\r
105 :doc:`LibFuzzer`\r
106   A library for writing in-process guided fuzzers.\r
108 :doc:`FuzzingLLVM`\r
109   Information on writing and using Fuzzers to find bugs in LLVM.\r
111 ========\r
112 LLVM IR\r
113 ========\r
115 :doc:`LLVM Language Reference Manual <LangRef>`\r
116   Defines the LLVM intermediate representation and the assembly form of the\r
117   different nodes.\r
119 :doc:`InAlloca`\r
120   Description of the ``inalloca`` argument attribute.\r
122 :doc:`BitCodeFormat`\r
123    This describes the file format and encoding used for LLVM "bc" files.\r
125 :doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`\r
126    A reference manual for the MIR serialization format, which is used to test\r
127    LLVM's code generation passes.\r
129 :doc:`GlobalISel/index`\r
130   This describes the prototype instruction selection replacement, GlobalISel.\r
132 =====================\r
133 Testing and Debugging\r
134 =====================\r
136 :doc:`LLVM Testing Infrastructure Guide <TestingGuide>`\r
137    A reference manual for using the LLVM testing infrastructure.\r
139 :doc:`TestSuiteGuide`\r
140   Describes how to compile and run the test-suite benchmarks.\r
143 :doc:`GwpAsan`\r
144   A sampled heap memory error detection toolkit designed for production use.\r
146 ====\r
147 XRay\r
148 ====\r
150 :doc:`XRay`\r
151   High-level documentation of how to use XRay in LLVM.\r
153 :doc:`XRayExample`\r
154   An example of how to debug an application with XRay.\r
156 =================\r
157 Additional Topics\r
158 =================\r
160 :doc:`FaultMaps`\r
161   LLVM support for folding control flow into faulting machine instructions.\r
163 :doc:`Atomics`\r
164   Information about LLVM's concurrency model.\r
166 :doc:`ExceptionHandling`\r
167    This document describes the design and implementation of exception handling\r
168    in LLVM.\r
170 :doc:`Extensions`\r
171   LLVM-specific extensions to tools and formats LLVM seeks compatibility with.\r
173 :doc:`HowToSetUpLLVMStyleRTTI`\r
174   How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your\r
175   class hierarchy.\r
177 :doc:`BlockFrequencyTerminology`\r
178    Provides information about terminology used in the ``BlockFrequencyInfo``\r
179    analysis pass.\r
181 :doc:`BranchWeightMetadata`\r
182    Provides information about Branch Prediction Information.\r
184 :doc:`GetElementPtr`\r
185   Answers to some very frequent questions about LLVM's most frequently\r
186   misunderstood instruction.\r
188 :doc:`ScudoHardenedAllocator`\r
189   A library that implements a security-hardened `malloc()`.\r
191 :doc:`MemTagSanitizer`\r
192   Security hardening for production code aiming to mitigate memory\r
193   related vulnerabilities. Based on ARMv9 Memory Tagging Extension.\r
195 :doc:`Dependence Graphs <DependenceGraphs/index>`\r
196   A description of the design of the various dependence graphs such as\r
197   the DDG (Data Dependence Graph).\r
199 :doc:`SpeculativeLoadHardening`\r
200   A description of the Speculative Load Hardening mitigation for Spectre v1.\r
202 :doc:`SegmentedStacks`\r
203    This document describes segmented stacks and how they are used in LLVM.\r
205 :doc:`MarkedUpDisassembly`\r
206    This document describes the optional rich disassembly output syntax.\r
208 :doc:`StackMaps`\r
209   LLVM support for mapping instruction addresses to the location of\r
210   values and allowing code to be patched.\r
212 :doc:`Coroutines`\r
213   LLVM support for coroutines.\r
215 :doc:`YamlIO`\r
216    A reference guide for using LLVM's YAML I/O library.\r