blob: 9d747b8498faf1469ec5524ee6e311f184896afc [file] [log] [blame]
DeForest Richardsccf60302019-09-25 00:49:02 +00001Reference
2=========
3
4LLVM and API reference documentation.
5
DeForest Richards6d196512019-10-06 15:36:37 +00006.. contents::
7 :local:
8
DeForest Richardsccf60302019-09-25 00:49:02 +00009.. toctree::
10 :hidden:
11
DeForest Richardsde0e3aa2019-10-06 16:10:11 +000012 Atomics
DeForest Richards38d16c12019-10-06 22:49:22 +000013 BitCodeFormat
14 BlockFrequencyTerminology
15 BranchWeightMetadata
DeForest Richards6d196512019-10-06 15:36:37 +000016 Bugpoint
17 CommandGuide/index
DeForest Richards38d16c12019-10-06 22:49:22 +000018 Coroutines
19 DependenceGraphs/index
20 ExceptionHandling
DeForest Richardsde0e3aa2019-10-06 16:10:11 +000021 Extensions
DeForest Richards38d16c12019-10-06 22:49:22 +000022 FaultMaps
DeForest Richards6d196512019-10-06 15:36:37 +000023 FuzzingLLVM
24 GarbageCollection
25 GetElementPtr
Daniel Sandersfeab0332019-10-25 15:50:36 -070026 GlobalISel/index
DeForest Richardsde0e3aa2019-10-06 16:10:11 +000027 GwpAsan
28 HowToSetUpLLVMStyleRTTI
DeForest Richards38d16c12019-10-06 22:49:22 +000029 HowToUseAttributes
30 InAlloca
DeForest Richards6d196512019-10-06 15:36:37 +000031 LangRef
32 LibFuzzer
DeForest Richards38d16c12019-10-06 22:49:22 +000033 MarkedUpDisassembly
DeForest Richardsccf60302019-09-25 00:49:02 +000034 MIRLangRef
DeForest Richardsde0e3aa2019-10-06 16:10:11 +000035 OptBisect
DeForest Richards38d16c12019-10-06 22:49:22 +000036 ORCv2
DeForest Richards6d196512019-10-06 15:36:37 +000037 PDB/index
DeForest Richardsde0e3aa2019-10-06 16:10:11 +000038 ScudoHardenedAllocator
Evgenii Stepanov27c9aba2019-10-18 12:32:21 -070039 MemTagSanitizer
DeForest Richards38d16c12019-10-06 22:49:22 +000040 SegmentedStacks
41 StackMaps
42 SpeculativeLoadHardening
DeForest Richards6d196512019-10-06 15:36:37 +000043 Statepoints
DeForest Richards38d16c12019-10-06 22:49:22 +000044 SystemLibrary
DeForest Richards6d196512019-10-06 15:36:37 +000045 TestingGuide
DeForest Richards38d16c12019-10-06 22:49:22 +000046 TransformMetadata
47 TypeMetadata
48 XRay
49 XRayExample
50 XRayFDRFormat
DeForest Richards6d196512019-10-06 15:36:37 +000051 YamlIO
DeForest Richardseb78dea2019-09-29 15:31:52 +000052
DeForest Richards6d196512019-10-06 15:36:37 +000053API Reference
54-------------
55
56`Doxygen generated documentation <http://llvm.org/doxygen/>`_
57 (`classes <http://llvm.org/doxygen/inherits.html>`_)
58
DeForest Richardsedbb8952019-10-09 21:09:09 +000059:doc:`HowToUseAttributes`
60 Answers some questions about the new Attributes infrastructure.
61
DeForest Richards6d196512019-10-06 15:36:37 +000062`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_
63
DeForest Richards38d16c12019-10-06 22:49:22 +000064:doc:`ORCv2`
65 Describes the design and implementation of the ORC APIs, including some
66 usage examples, and a guide for users transitioning from ORCv1 to ORCv2.
67
DeForest Richardseb78dea2019-09-29 15:31:52 +000068LLVM Reference
DeForest Richards6d196512019-10-06 15:36:37 +000069--------------
DeForest Richardsccf60302019-09-25 00:49:02 +000070
DeForest Richards6d196512019-10-06 15:36:37 +000071======================
72Command Line Utilities
73======================
DeForest Richardseb78dea2019-09-29 15:31:52 +000074
DeForest Richards6d196512019-10-06 15:36:37 +000075:doc:`LLVM Command Guide <CommandGuide/index>`
76 A reference manual for the LLVM command line utilities ("man" pages for LLVM
77 tools).
DeForest Richardsccf60302019-09-25 00:49:02 +000078
DeForest Richards6d196512019-10-06 15:36:37 +000079:doc:`Bugpoint`
80 Automatic bug finder and test-case reducer description and usage
81 information.
82
DeForest Richardsde0e3aa2019-10-06 16:10:11 +000083:doc:`OptBisect`
84 A command line option for debugging optimization-induced failures.
85
DeForest Richards6d196512019-10-06 15:36:37 +000086:doc:`The Microsoft PDB File Format <PDB/index>`
87 A detailed description of the Microsoft PDB (Program Database) file format.
88
89==================
90Garbage Collection
91==================
92
93:doc:`GarbageCollection`
94 The interfaces source-language compilers should use for compiling GC'd
95 programs.
96
97:doc:`Statepoints`
98 This describes a set of experimental extensions for garbage
99 collection support.
100
101=========
102LibFuzzer
103=========
104
105:doc:`LibFuzzer`
106 A library for writing in-process guided fuzzers.
107
108:doc:`FuzzingLLVM`
109 Information on writing and using Fuzzers to find bugs in LLVM.
110
DeForest Richards02d264a52019-10-09 20:26:13 +0000111========
112LLVM IR
113========
114
115:doc:`LLVM Language Reference Manual <LangRef>`
116 Defines the LLVM intermediate representation and the assembly form of the
117 different nodes.
118
119:doc:`InAlloca`
120 Description of the ``inalloca`` argument attribute.
121
122:doc:`BitCodeFormat`
123 This describes the file format and encoding used for LLVM "bc" files.
124
125:doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`
126 A reference manual for the MIR serialization format, which is used to test
127 LLVM's code generation passes.
128
Daniel Sandersfeab0332019-10-25 15:50:36 -0700129:doc:`GlobalISel/index`
DeForest Richards02d264a52019-10-09 20:26:13 +0000130 This describes the prototype instruction selection replacement, GlobalISel.
131
DeForest Richards22373c52019-10-13 20:05:22 +0000132=====================
133Testing and Debugging
134=====================
DeForest Richards6d196512019-10-06 15:36:37 +0000135
136:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`
137 A reference manual for using the LLVM testing infrastructure.
138
139:doc:`TestSuiteGuide`
DeForest Richards38d16c12019-10-06 22:49:22 +0000140 Describes how to compile and run the test-suite benchmarks.
141
DeForest Richards22373c52019-10-13 20:05:22 +0000142
143:doc:`GwpAsan`
144 A sampled heap memory error detection toolkit designed for production use.
145
DeForest Richards38d16c12019-10-06 22:49:22 +0000146====
147XRay
148====
149
150:doc:`XRay`
151 High-level documentation of how to use XRay in LLVM.
152
153:doc:`XRayExample`
DeForest Richardsedbb8952019-10-09 21:09:09 +0000154 An example of how to debug an application with XRay.
155
156=================
157Additional Topics
158=================
159
160:doc:`FaultMaps`
161 LLVM support for folding control flow into faulting machine instructions.
162
163:doc:`Atomics`
164 Information about LLVM's concurrency model.
165
166:doc:`ExceptionHandling`
167 This document describes the design and implementation of exception handling
168 in LLVM.
169
170:doc:`Extensions`
171 LLVM-specific extensions to tools and formats LLVM seeks compatibility with.
172
173:doc:`HowToSetUpLLVMStyleRTTI`
174 How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
175 class hierarchy.
176
177:doc:`BlockFrequencyTerminology`
178 Provides information about terminology used in the ``BlockFrequencyInfo``
179 analysis pass.
180
181:doc:`BranchWeightMetadata`
182 Provides information about Branch Prediction Information.
183
184:doc:`GetElementPtr`
185 Answers to some very frequent questions about LLVM's most frequently
186 misunderstood instruction.
187
188:doc:`ScudoHardenedAllocator`
189 A library that implements a security-hardened `malloc()`.
190
Evgenii Stepanov27c9aba2019-10-18 12:32:21 -0700191:doc:`MemTagSanitizer`
192 Security hardening for production code aiming to mitigate memory
Pablo Barrioe440e0a2020-03-05 16:27:25 +0000193 related vulnerabilities. Based on the Armv8.5-A Memory Tagging Extension.
Evgenii Stepanov27c9aba2019-10-18 12:32:21 -0700194
DeForest Richardsedbb8952019-10-09 21:09:09 +0000195:doc:`Dependence Graphs <DependenceGraphs/index>`
196 A description of the design of the various dependence graphs such as
197 the DDG (Data Dependence Graph).
198
DeForest Richardsedbb8952019-10-09 21:09:09 +0000199:doc:`SpeculativeLoadHardening`
200 A description of the Speculative Load Hardening mitigation for Spectre v1.
201
202:doc:`SegmentedStacks`
203 This document describes segmented stacks and how they are used in LLVM.
204
205:doc:`MarkedUpDisassembly`
206 This document describes the optional rich disassembly output syntax.
207
208:doc:`StackMaps`
209 LLVM support for mapping instruction addresses to the location of
210 values and allowing code to be patched.
211
212:doc:`Coroutines`
213 LLVM support for coroutines.
214
215:doc:`YamlIO`
Daniel Sandersfeab0332019-10-25 15:50:36 -0700216 A reference guide for using LLVM's YAML I/O library.