[Hexagon] Handle all compares of i1 and vNi1
[llvm-project.git] / llvm / docs / Reference.rst
blob15dabdc4a91c07d9d24425ef852defbb7983765a
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    Coroutines\r
20    DependenceGraphs/index\r
21    ExceptionHandling\r
22    Extensions\r
23    FaultMaps\r
24    FuzzingLLVM\r
25    GarbageCollection\r
26    GetElementPtr\r
27    GlobalISel/index\r
28    GwpAsan\r
29    HowToSetUpLLVMStyleRTTI\r
30    HowToUseAttributes\r
31    InAlloca\r
32    LangRef\r
33    LibFuzzer\r
34    MarkedUpDisassembly\r
35    MIRLangRef\r
36    OptBisect\r
37    PCSectionsMetadata\r
38    PDB/index\r
39    PointerAuth\r
40    ScudoHardenedAllocator\r
41    MemTagSanitizer\r
42    Security\r
43    SecurityTransparencyReports\r
44    SegmentedStacks\r
45    StackMaps\r
46    SpeculativeLoadHardening\r
47    Statepoints\r
48    SymbolizerMarkupFormat\r
49    SystemLibrary\r
50    TestingGuide\r
51    TransformMetadata\r
52    TypeMetadata\r
53    XRay\r
54    XRayExample\r
55    XRayFDRFormat\r
56    YamlIO\r
58 API Reference\r
59 -------------\r
61 `Doxygen generated documentation <https://llvm.org/doxygen/>`_\r
62   (`classes <https://llvm.org/doxygen/inherits.html>`_)\r
64 :doc:`HowToUseAttributes`\r
65   Answers some questions about the new Attributes infrastructure.\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:`SymbolizerMarkupFormat`\r
86   A reference for the log symbolizer markup accepted by ``llvm-symbolizer``.\r
88 :doc:`The Microsoft PDB File Format <PDB/index>`\r
89   A detailed description of the Microsoft PDB (Program Database) file format.\r
91 ==================\r
92 Garbage Collection\r
93 ==================\r
95 :doc:`GarbageCollection`\r
96    The interfaces source-language compilers should use for compiling GC'd\r
97    programs.\r
99 :doc:`Statepoints`\r
100   This describes a set of experimental extensions for garbage\r
101   collection support.\r
103 =========\r
104 LibFuzzer\r
105 =========\r
107 :doc:`LibFuzzer`\r
108   A library for writing in-process guided fuzzers.\r
110 :doc:`FuzzingLLVM`\r
111   Information on writing and using Fuzzers to find bugs in LLVM.\r
113 ========\r
114 LLVM IR\r
115 ========\r
117 :doc:`LLVM Language Reference Manual <LangRef>`\r
118   Defines the LLVM intermediate representation and the assembly form of the\r
119   different nodes.\r
121 :doc:`InAlloca`\r
122   Description of the ``inalloca`` argument attribute.\r
124 :doc:`BitCodeFormat`\r
125    This describes the file format and encoding used for LLVM "bc" files.\r
127 :doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`\r
128    A reference manual for the MIR serialization format, which is used to test\r
129    LLVM's code generation passes.\r
131 :doc:`GlobalISel/index`\r
132   This describes the prototype instruction selection replacement, GlobalISel.\r
134 =====================\r
135 Testing and Debugging\r
136 =====================\r
138 :doc:`LLVM Testing Infrastructure Guide <TestingGuide>`\r
139    A reference manual for using the LLVM testing infrastructure.\r
141 :doc:`TestSuiteGuide`\r
142   Describes how to compile and run the test-suite benchmarks.\r
145 :doc:`GwpAsan`\r
146   A sampled heap memory error detection toolkit designed for production use.\r
148 ====\r
149 XRay\r
150 ====\r
152 :doc:`XRay`\r
153   High-level documentation of how to use XRay in LLVM.\r
155 :doc:`XRayExample`\r
156   An example of how to debug an application with XRay.\r
158 =================\r
159 Additional Topics\r
160 =================\r
162 :doc:`FaultMaps`\r
163   LLVM support for folding control flow into faulting machine instructions.\r
165 :doc:`Atomics`\r
166   Information about LLVM's concurrency model.\r
168 :doc:`ExceptionHandling`\r
169    This document describes the design and implementation of exception handling\r
170    in LLVM.\r
172 :doc:`Extensions`\r
173   LLVM-specific extensions to tools and formats LLVM seeks compatibility with.\r
175 :doc:`HowToSetUpLLVMStyleRTTI`\r
176   How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your\r
177   class hierarchy.\r
179 :doc:`BlockFrequencyTerminology`\r
180    Provides information about terminology used in the ``BlockFrequencyInfo``\r
181    analysis pass.\r
183 :doc:`BranchWeightMetadata`\r
184    Provides information about Branch Prediction Information.\r
186 :doc:`GetElementPtr`\r
187   Answers to some very frequent questions about LLVM's most frequently\r
188   misunderstood instruction.\r
190 :doc:`ScudoHardenedAllocator`\r
191   A library that implements a security-hardened `malloc()`.\r
193 :doc:`MemTagSanitizer`\r
194   Security hardening for production code aiming to mitigate memory\r
195   related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.\r
197 :doc:`Dependence Graphs <DependenceGraphs/index>`\r
198   A description of the design of the various dependence graphs such as\r
199   the DDG (Data Dependence Graph).\r
201 :doc:`SpeculativeLoadHardening`\r
202   A description of the Speculative Load Hardening mitigation for Spectre v1.\r
204 :doc:`SegmentedStacks`\r
205    This document describes segmented stacks and how they are used in LLVM.\r
207 :doc:`MarkedUpDisassembly`\r
208    This document describes the optional rich disassembly output syntax.\r
210 :doc:`StackMaps`\r
211   LLVM support for mapping instruction addresses to the location of\r
212   values and allowing code to be patched.\r
214 :doc:`Coroutines`\r
215   LLVM support for coroutines.\r
217 :doc:`PointerAuth`\r
218   A description of pointer authentication, its LLVM IR representation, and its\r
219   support in the backend.\r
221 :doc:`YamlIO`\r
222    A reference guide for using LLVM's YAML I/O library.\r
224 :doc:`ConvergenceAndUniformity`\r
225    A description of uniformity analysis in the presence of irreducible\r
226    control flow, and its implementation.\r