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