xref: /aosp_15_r20/external/llvm/docs/index.rst (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard WorkerOverview
2*9880d681SAndroid Build Coastguard Worker========
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker.. warning::
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker   If you are using a released version of LLVM, see `the download page
7*9880d681SAndroid Build Coastguard Worker   <http://llvm.org/releases/>`_ to find your documentation.
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard WorkerThe LLVM compiler infrastructure supports a wide range of projects, from
10*9880d681SAndroid Build Coastguard Workerindustrial strength compilers to specialized JIT applications to small
11*9880d681SAndroid Build Coastguard Workerresearch projects.
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard WorkerSimilarly, documentation is broken down into several high-level groupings
14*9880d681SAndroid Build Coastguard Workertargeted at different audiences:
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard WorkerLLVM Design & Overview
17*9880d681SAndroid Build Coastguard Worker======================
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard WorkerSeveral introductory papers and presentations.
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker.. toctree::
22*9880d681SAndroid Build Coastguard Worker   :hidden:
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Worker   LangRef
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker:doc:`LangRef`
27*9880d681SAndroid Build Coastguard Worker  Defines the LLVM intermediate representation.
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker`Introduction to the LLVM Compiler`__
30*9880d681SAndroid Build Coastguard Worker  Presentation providing a users introduction to LLVM.
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Worker  .. __: http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Worker`Intro to LLVM`__
35*9880d681SAndroid Build Coastguard Worker  Book chapter providing a compiler hacker's introduction to LLVM.
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker  .. __: http://www.aosabook.org/en/llvm.html
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Worker`LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation`__
41*9880d681SAndroid Build Coastguard Worker  Design overview.
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Worker  .. __: http://llvm.org/pubs/2004-01-30-CGO-LLVM.html
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker`LLVM: An Infrastructure for Multi-Stage Optimization`__
46*9880d681SAndroid Build Coastguard Worker  More details (quite old now).
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Worker  .. __: http://llvm.org/pubs/2002-12-LattnerMSThesis.html
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Worker`Publications mentioning LLVM <http://llvm.org/pubs>`_
51*9880d681SAndroid Build Coastguard Worker   ..
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard WorkerUser Guides
54*9880d681SAndroid Build Coastguard Worker===========
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard WorkerFor those new to the LLVM system.
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard WorkerNOTE: If you are a user who is only interested in using LLVM-based
59*9880d681SAndroid Build Coastguard Workercompilers, you should look into `Clang <http://clang.llvm.org>`_ or
60*9880d681SAndroid Build Coastguard Worker`DragonEgg <http://dragonegg.llvm.org>`_ instead. The documentation here is
61*9880d681SAndroid Build Coastguard Workerintended for users who have a need to work with the intermediate LLVM
62*9880d681SAndroid Build Coastguard Workerrepresentation.
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Worker.. toctree::
65*9880d681SAndroid Build Coastguard Worker   :hidden:
66*9880d681SAndroid Build Coastguard Worker
67*9880d681SAndroid Build Coastguard Worker   CMake
68*9880d681SAndroid Build Coastguard Worker   CMakePrimer
69*9880d681SAndroid Build Coastguard Worker   AdvancedBuilds
70*9880d681SAndroid Build Coastguard Worker   HowToBuildOnARM
71*9880d681SAndroid Build Coastguard Worker   HowToCrossCompileLLVM
72*9880d681SAndroid Build Coastguard Worker   CommandGuide/index
73*9880d681SAndroid Build Coastguard Worker   GettingStarted
74*9880d681SAndroid Build Coastguard Worker   GettingStartedVS
75*9880d681SAndroid Build Coastguard Worker   FAQ
76*9880d681SAndroid Build Coastguard Worker   Lexicon
77*9880d681SAndroid Build Coastguard Worker   HowToAddABuilder
78*9880d681SAndroid Build Coastguard Worker   yaml2obj
79*9880d681SAndroid Build Coastguard Worker   HowToSubmitABug
80*9880d681SAndroid Build Coastguard Worker   SphinxQuickstartTemplate
81*9880d681SAndroid Build Coastguard Worker   Phabricator
82*9880d681SAndroid Build Coastguard Worker   TestingGuide
83*9880d681SAndroid Build Coastguard Worker   tutorial/index
84*9880d681SAndroid Build Coastguard Worker   ReleaseNotes
85*9880d681SAndroid Build Coastguard Worker   Passes
86*9880d681SAndroid Build Coastguard Worker   YamlIO
87*9880d681SAndroid Build Coastguard Worker   GetElementPtr
88*9880d681SAndroid Build Coastguard Worker   Frontend/PerformanceTips
89*9880d681SAndroid Build Coastguard Worker   MCJITDesignAndImplementation
90*9880d681SAndroid Build Coastguard Worker   CodeOfConduct
91*9880d681SAndroid Build Coastguard Worker   CompileCudaWithLLVM
92*9880d681SAndroid Build Coastguard Worker   ReportingGuide
93*9880d681SAndroid Build Coastguard Worker
94*9880d681SAndroid Build Coastguard Worker:doc:`GettingStarted`
95*9880d681SAndroid Build Coastguard Worker   Discusses how to get up and running quickly with the LLVM infrastructure.
96*9880d681SAndroid Build Coastguard Worker   Everything from unpacking and compilation of the distribution to execution
97*9880d681SAndroid Build Coastguard Worker   of some tools.
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Worker:doc:`CMake`
100*9880d681SAndroid Build Coastguard Worker   An addendum to the main Getting Started guide for those using the `CMake
101*9880d681SAndroid Build Coastguard Worker   build system <http://www.cmake.org>`_.
102*9880d681SAndroid Build Coastguard Worker
103*9880d681SAndroid Build Coastguard Worker:doc:`HowToBuildOnARM`
104*9880d681SAndroid Build Coastguard Worker   Notes on building and testing LLVM/Clang on ARM.
105*9880d681SAndroid Build Coastguard Worker
106*9880d681SAndroid Build Coastguard Worker:doc:`HowToCrossCompileLLVM`
107*9880d681SAndroid Build Coastguard Worker   Notes on cross-building and testing LLVM/Clang.
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Worker:doc:`GettingStartedVS`
110*9880d681SAndroid Build Coastguard Worker   An addendum to the main Getting Started guide for those using Visual Studio
111*9880d681SAndroid Build Coastguard Worker   on Windows.
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Worker:doc:`tutorial/index`
114*9880d681SAndroid Build Coastguard Worker   Tutorials about using LLVM. Includes a tutorial about making a custom
115*9880d681SAndroid Build Coastguard Worker   language with LLVM.
116*9880d681SAndroid Build Coastguard Worker
117*9880d681SAndroid Build Coastguard Worker:doc:`LLVM Command Guide <CommandGuide/index>`
118*9880d681SAndroid Build Coastguard Worker   A reference manual for the LLVM command line utilities ("man" pages for LLVM
119*9880d681SAndroid Build Coastguard Worker   tools).
120*9880d681SAndroid Build Coastguard Worker
121*9880d681SAndroid Build Coastguard Worker:doc:`Passes`
122*9880d681SAndroid Build Coastguard Worker   A list of optimizations and analyses implemented in LLVM.
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Worker:doc:`FAQ`
125*9880d681SAndroid Build Coastguard Worker   A list of common questions and problems and their solutions.
126*9880d681SAndroid Build Coastguard Worker
127*9880d681SAndroid Build Coastguard Worker:doc:`Release notes for the current release <ReleaseNotes>`
128*9880d681SAndroid Build Coastguard Worker   This describes new features, known bugs, and other limitations.
129*9880d681SAndroid Build Coastguard Worker
130*9880d681SAndroid Build Coastguard Worker:doc:`HowToSubmitABug`
131*9880d681SAndroid Build Coastguard Worker   Instructions for properly submitting information about any bugs you run into
132*9880d681SAndroid Build Coastguard Worker   in the LLVM system.
133*9880d681SAndroid Build Coastguard Worker
134*9880d681SAndroid Build Coastguard Worker:doc:`SphinxQuickstartTemplate`
135*9880d681SAndroid Build Coastguard Worker  A template + tutorial for writing new Sphinx documentation. It is meant
136*9880d681SAndroid Build Coastguard Worker  to be read in source form.
137*9880d681SAndroid Build Coastguard Worker
138*9880d681SAndroid Build Coastguard Worker:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`
139*9880d681SAndroid Build Coastguard Worker   A reference manual for using the LLVM testing infrastructure.
140*9880d681SAndroid Build Coastguard Worker
141*9880d681SAndroid Build Coastguard Worker`How to build the C, C++, ObjC, and ObjC++ front end`__
142*9880d681SAndroid Build Coastguard Worker   Instructions for building the clang front-end from source.
143*9880d681SAndroid Build Coastguard Worker
144*9880d681SAndroid Build Coastguard Worker   .. __: http://clang.llvm.org/get_started.html
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Worker:doc:`Lexicon`
147*9880d681SAndroid Build Coastguard Worker   Definition of acronyms, terms and concepts used in LLVM.
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Worker:doc:`HowToAddABuilder`
150*9880d681SAndroid Build Coastguard Worker   Instructions for adding new builder to LLVM buildbot master.
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Worker:doc:`YamlIO`
153*9880d681SAndroid Build Coastguard Worker   A reference guide for using LLVM's YAML I/O library.
154*9880d681SAndroid Build Coastguard Worker
155*9880d681SAndroid Build Coastguard Worker:doc:`GetElementPtr`
156*9880d681SAndroid Build Coastguard Worker  Answers to some very frequent questions about LLVM's most frequently
157*9880d681SAndroid Build Coastguard Worker  misunderstood instruction.
158*9880d681SAndroid Build Coastguard Worker
159*9880d681SAndroid Build Coastguard Worker:doc:`Frontend/PerformanceTips`
160*9880d681SAndroid Build Coastguard Worker   A collection of tips for frontend authors on how to generate IR
161*9880d681SAndroid Build Coastguard Worker   which LLVM is able to effectively optimize.
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard WorkerProgramming Documentation
165*9880d681SAndroid Build Coastguard Worker=========================
166*9880d681SAndroid Build Coastguard Worker
167*9880d681SAndroid Build Coastguard WorkerFor developers of applications which use LLVM as a library.
168*9880d681SAndroid Build Coastguard Worker
169*9880d681SAndroid Build Coastguard Worker.. toctree::
170*9880d681SAndroid Build Coastguard Worker   :hidden:
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Worker   Atomics
173*9880d681SAndroid Build Coastguard Worker   CodingStandards
174*9880d681SAndroid Build Coastguard Worker   CommandLine
175*9880d681SAndroid Build Coastguard Worker   CompilerWriterInfo
176*9880d681SAndroid Build Coastguard Worker   ExtendingLLVM
177*9880d681SAndroid Build Coastguard Worker   HowToSetUpLLVMStyleRTTI
178*9880d681SAndroid Build Coastguard Worker   ProgrammersManual
179*9880d681SAndroid Build Coastguard Worker   Extensions
180*9880d681SAndroid Build Coastguard Worker   LibFuzzer
181*9880d681SAndroid Build Coastguard Worker   ScudoHardenedAllocator
182*9880d681SAndroid Build Coastguard Worker
183*9880d681SAndroid Build Coastguard Worker:doc:`LLVM Language Reference Manual <LangRef>`
184*9880d681SAndroid Build Coastguard Worker  Defines the LLVM intermediate representation and the assembly form of the
185*9880d681SAndroid Build Coastguard Worker  different nodes.
186*9880d681SAndroid Build Coastguard Worker
187*9880d681SAndroid Build Coastguard Worker:doc:`Atomics`
188*9880d681SAndroid Build Coastguard Worker  Information about LLVM's concurrency model.
189*9880d681SAndroid Build Coastguard Worker
190*9880d681SAndroid Build Coastguard Worker:doc:`ProgrammersManual`
191*9880d681SAndroid Build Coastguard Worker  Introduction to the general layout of the LLVM sourcebase, important classes
192*9880d681SAndroid Build Coastguard Worker  and APIs, and some tips & tricks.
193*9880d681SAndroid Build Coastguard Worker
194*9880d681SAndroid Build Coastguard Worker:doc:`Extensions`
195*9880d681SAndroid Build Coastguard Worker  LLVM-specific extensions to tools and formats LLVM seeks compatibility with.
196*9880d681SAndroid Build Coastguard Worker
197*9880d681SAndroid Build Coastguard Worker:doc:`CommandLine`
198*9880d681SAndroid Build Coastguard Worker  Provides information on using the command line parsing library.
199*9880d681SAndroid Build Coastguard Worker
200*9880d681SAndroid Build Coastguard Worker:doc:`CodingStandards`
201*9880d681SAndroid Build Coastguard Worker  Details the LLVM coding standards and provides useful information on writing
202*9880d681SAndroid Build Coastguard Worker  efficient C++ code.
203*9880d681SAndroid Build Coastguard Worker
204*9880d681SAndroid Build Coastguard Worker:doc:`HowToSetUpLLVMStyleRTTI`
205*9880d681SAndroid Build Coastguard Worker  How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
206*9880d681SAndroid Build Coastguard Worker  class hierarchy.
207*9880d681SAndroid Build Coastguard Worker
208*9880d681SAndroid Build Coastguard Worker:doc:`ExtendingLLVM`
209*9880d681SAndroid Build Coastguard Worker  Look here to see how to add instructions and intrinsics to LLVM.
210*9880d681SAndroid Build Coastguard Worker
211*9880d681SAndroid Build Coastguard Worker`Doxygen generated documentation <http://llvm.org/doxygen/>`_
212*9880d681SAndroid Build Coastguard Worker  (`classes <http://llvm.org/doxygen/inherits.html>`_)
213*9880d681SAndroid Build Coastguard Worker  (`tarball <http://llvm.org/doxygen/doxygen.tar.gz>`_)
214*9880d681SAndroid Build Coastguard Worker
215*9880d681SAndroid Build Coastguard Worker`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Worker`ViewVC Repository Browser <http://llvm.org/viewvc/>`_
218*9880d681SAndroid Build Coastguard Worker   ..
219*9880d681SAndroid Build Coastguard Worker
220*9880d681SAndroid Build Coastguard Worker:doc:`CompilerWriterInfo`
221*9880d681SAndroid Build Coastguard Worker  A list of helpful links for compiler writers.
222*9880d681SAndroid Build Coastguard Worker
223*9880d681SAndroid Build Coastguard Worker:doc:`LibFuzzer`
224*9880d681SAndroid Build Coastguard Worker  A library for writing in-process guided fuzzers.
225*9880d681SAndroid Build Coastguard Worker
226*9880d681SAndroid Build Coastguard Worker:doc:`ScudoHardenedAllocator`
227*9880d681SAndroid Build Coastguard Worker  A library that implements a security-hardened `malloc()`.
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard WorkerSubsystem Documentation
230*9880d681SAndroid Build Coastguard Worker=======================
231*9880d681SAndroid Build Coastguard Worker
232*9880d681SAndroid Build Coastguard WorkerFor API clients and LLVM developers.
233*9880d681SAndroid Build Coastguard Worker
234*9880d681SAndroid Build Coastguard Worker.. toctree::
235*9880d681SAndroid Build Coastguard Worker   :hidden:
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Worker   AliasAnalysis
238*9880d681SAndroid Build Coastguard Worker   BitCodeFormat
239*9880d681SAndroid Build Coastguard Worker   BlockFrequencyTerminology
240*9880d681SAndroid Build Coastguard Worker   BranchWeightMetadata
241*9880d681SAndroid Build Coastguard Worker   Bugpoint
242*9880d681SAndroid Build Coastguard Worker   CodeGenerator
243*9880d681SAndroid Build Coastguard Worker   ExceptionHandling
244*9880d681SAndroid Build Coastguard Worker   LinkTimeOptimization
245*9880d681SAndroid Build Coastguard Worker   SegmentedStacks
246*9880d681SAndroid Build Coastguard Worker   TableGenFundamentals
247*9880d681SAndroid Build Coastguard Worker   TableGen/index
248*9880d681SAndroid Build Coastguard Worker   DebuggingJITedCode
249*9880d681SAndroid Build Coastguard Worker   GoldPlugin
250*9880d681SAndroid Build Coastguard Worker   MarkedUpDisassembly
251*9880d681SAndroid Build Coastguard Worker   SystemLibrary
252*9880d681SAndroid Build Coastguard Worker   SourceLevelDebugging
253*9880d681SAndroid Build Coastguard Worker   Vectorizers
254*9880d681SAndroid Build Coastguard Worker   WritingAnLLVMBackend
255*9880d681SAndroid Build Coastguard Worker   GarbageCollection
256*9880d681SAndroid Build Coastguard Worker   WritingAnLLVMPass
257*9880d681SAndroid Build Coastguard Worker   HowToUseAttributes
258*9880d681SAndroid Build Coastguard Worker   NVPTXUsage
259*9880d681SAndroid Build Coastguard Worker   AMDGPUUsage
260*9880d681SAndroid Build Coastguard Worker   StackMaps
261*9880d681SAndroid Build Coastguard Worker   InAlloca
262*9880d681SAndroid Build Coastguard Worker   BigEndianNEON
263*9880d681SAndroid Build Coastguard Worker   CoverageMappingFormat
264*9880d681SAndroid Build Coastguard Worker   Statepoints
265*9880d681SAndroid Build Coastguard Worker   MergeFunctions
266*9880d681SAndroid Build Coastguard Worker   TypeMetadata
267*9880d681SAndroid Build Coastguard Worker   FaultMaps
268*9880d681SAndroid Build Coastguard Worker   MIRLangRef
269*9880d681SAndroid Build Coastguard Worker
270*9880d681SAndroid Build Coastguard Worker:doc:`WritingAnLLVMPass`
271*9880d681SAndroid Build Coastguard Worker   Information on how to write LLVM transformations and analyses.
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Worker:doc:`WritingAnLLVMBackend`
274*9880d681SAndroid Build Coastguard Worker   Information on how to write LLVM backends for machine targets.
275*9880d681SAndroid Build Coastguard Worker
276*9880d681SAndroid Build Coastguard Worker:doc:`CodeGenerator`
277*9880d681SAndroid Build Coastguard Worker   The design and implementation of the LLVM code generator.  Useful if you are
278*9880d681SAndroid Build Coastguard Worker   working on retargetting LLVM to a new architecture, designing a new codegen
279*9880d681SAndroid Build Coastguard Worker   pass, or enhancing existing components.
280*9880d681SAndroid Build Coastguard Worker
281*9880d681SAndroid Build Coastguard Worker:doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`
282*9880d681SAndroid Build Coastguard Worker   A reference manual for the MIR serialization format, which is used to test
283*9880d681SAndroid Build Coastguard Worker   LLVM's code generation passes.
284*9880d681SAndroid Build Coastguard Worker
285*9880d681SAndroid Build Coastguard Worker:doc:`TableGen <TableGen/index>`
286*9880d681SAndroid Build Coastguard Worker   Describes the TableGen tool, which is used heavily by the LLVM code
287*9880d681SAndroid Build Coastguard Worker   generator.
288*9880d681SAndroid Build Coastguard Worker
289*9880d681SAndroid Build Coastguard Worker:doc:`AliasAnalysis`
290*9880d681SAndroid Build Coastguard Worker   Information on how to write a new alias analysis implementation or how to
291*9880d681SAndroid Build Coastguard Worker   use existing analyses.
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Worker:doc:`GarbageCollection`
294*9880d681SAndroid Build Coastguard Worker   The interfaces source-language compilers should use for compiling GC'd
295*9880d681SAndroid Build Coastguard Worker   programs.
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Worker:doc:`Source Level Debugging with LLVM <SourceLevelDebugging>`
298*9880d681SAndroid Build Coastguard Worker   This document describes the design and philosophy behind the LLVM
299*9880d681SAndroid Build Coastguard Worker   source-level debugger.
300*9880d681SAndroid Build Coastguard Worker
301*9880d681SAndroid Build Coastguard Worker:doc:`Vectorizers`
302*9880d681SAndroid Build Coastguard Worker   This document describes the current status of vectorization in LLVM.
303*9880d681SAndroid Build Coastguard Worker
304*9880d681SAndroid Build Coastguard Worker:doc:`ExceptionHandling`
305*9880d681SAndroid Build Coastguard Worker   This document describes the design and implementation of exception handling
306*9880d681SAndroid Build Coastguard Worker   in LLVM.
307*9880d681SAndroid Build Coastguard Worker
308*9880d681SAndroid Build Coastguard Worker:doc:`Bugpoint`
309*9880d681SAndroid Build Coastguard Worker   Automatic bug finder and test-case reducer description and usage
310*9880d681SAndroid Build Coastguard Worker   information.
311*9880d681SAndroid Build Coastguard Worker
312*9880d681SAndroid Build Coastguard Worker:doc:`BitCodeFormat`
313*9880d681SAndroid Build Coastguard Worker   This describes the file format and encoding used for LLVM "bc" files.
314*9880d681SAndroid Build Coastguard Worker
315*9880d681SAndroid Build Coastguard Worker:doc:`System Library <SystemLibrary>`
316*9880d681SAndroid Build Coastguard Worker   This document describes the LLVM System Library (``lib/System``) and
317*9880d681SAndroid Build Coastguard Worker   how to keep LLVM source code portable
318*9880d681SAndroid Build Coastguard Worker
319*9880d681SAndroid Build Coastguard Worker:doc:`LinkTimeOptimization`
320*9880d681SAndroid Build Coastguard Worker   This document describes the interface between LLVM intermodular optimizer
321*9880d681SAndroid Build Coastguard Worker   and the linker and its design
322*9880d681SAndroid Build Coastguard Worker
323*9880d681SAndroid Build Coastguard Worker:doc:`GoldPlugin`
324*9880d681SAndroid Build Coastguard Worker   How to build your programs with link-time optimization on Linux.
325*9880d681SAndroid Build Coastguard Worker
326*9880d681SAndroid Build Coastguard Worker:doc:`DebuggingJITedCode`
327*9880d681SAndroid Build Coastguard Worker   How to debug JITed code with GDB.
328*9880d681SAndroid Build Coastguard Worker
329*9880d681SAndroid Build Coastguard Worker:doc:`MCJITDesignAndImplementation`
330*9880d681SAndroid Build Coastguard Worker   Describes the inner workings of MCJIT execution engine.
331*9880d681SAndroid Build Coastguard Worker
332*9880d681SAndroid Build Coastguard Worker:doc:`BranchWeightMetadata`
333*9880d681SAndroid Build Coastguard Worker   Provides information about Branch Prediction Information.
334*9880d681SAndroid Build Coastguard Worker
335*9880d681SAndroid Build Coastguard Worker:doc:`BlockFrequencyTerminology`
336*9880d681SAndroid Build Coastguard Worker   Provides information about terminology used in the ``BlockFrequencyInfo``
337*9880d681SAndroid Build Coastguard Worker   analysis pass.
338*9880d681SAndroid Build Coastguard Worker
339*9880d681SAndroid Build Coastguard Worker:doc:`SegmentedStacks`
340*9880d681SAndroid Build Coastguard Worker   This document describes segmented stacks and how they are used in LLVM.
341*9880d681SAndroid Build Coastguard Worker
342*9880d681SAndroid Build Coastguard Worker:doc:`MarkedUpDisassembly`
343*9880d681SAndroid Build Coastguard Worker   This document describes the optional rich disassembly output syntax.
344*9880d681SAndroid Build Coastguard Worker
345*9880d681SAndroid Build Coastguard Worker:doc:`HowToUseAttributes`
346*9880d681SAndroid Build Coastguard Worker  Answers some questions about the new Attributes infrastructure.
347*9880d681SAndroid Build Coastguard Worker
348*9880d681SAndroid Build Coastguard Worker:doc:`NVPTXUsage`
349*9880d681SAndroid Build Coastguard Worker   This document describes using the NVPTX back-end to compile GPU kernels.
350*9880d681SAndroid Build Coastguard Worker
351*9880d681SAndroid Build Coastguard Worker:doc:`AMDGPUUsage`
352*9880d681SAndroid Build Coastguard Worker   This document describes how to use the AMDGPU back-end.
353*9880d681SAndroid Build Coastguard Worker
354*9880d681SAndroid Build Coastguard Worker:doc:`StackMaps`
355*9880d681SAndroid Build Coastguard Worker  LLVM support for mapping instruction addresses to the location of
356*9880d681SAndroid Build Coastguard Worker  values and allowing code to be patched.
357*9880d681SAndroid Build Coastguard Worker
358*9880d681SAndroid Build Coastguard Worker:doc:`BigEndianNEON`
359*9880d681SAndroid Build Coastguard Worker  LLVM's support for generating NEON instructions on big endian ARM targets is
360*9880d681SAndroid Build Coastguard Worker  somewhat nonintuitive. This document explains the implementation and rationale.
361*9880d681SAndroid Build Coastguard Worker
362*9880d681SAndroid Build Coastguard Worker:doc:`CoverageMappingFormat`
363*9880d681SAndroid Build Coastguard Worker  This describes the format and encoding used for LLVM’s code coverage mapping.
364*9880d681SAndroid Build Coastguard Worker
365*9880d681SAndroid Build Coastguard Worker:doc:`Statepoints`
366*9880d681SAndroid Build Coastguard Worker  This describes a set of experimental extensions for garbage
367*9880d681SAndroid Build Coastguard Worker  collection support.
368*9880d681SAndroid Build Coastguard Worker
369*9880d681SAndroid Build Coastguard Worker:doc:`MergeFunctions`
370*9880d681SAndroid Build Coastguard Worker  Describes functions merging optimization.
371*9880d681SAndroid Build Coastguard Worker
372*9880d681SAndroid Build Coastguard Worker:doc:`InAlloca`
373*9880d681SAndroid Build Coastguard Worker  Description of the ``inalloca`` argument attribute.
374*9880d681SAndroid Build Coastguard Worker
375*9880d681SAndroid Build Coastguard Worker:doc:`FaultMaps`
376*9880d681SAndroid Build Coastguard Worker  LLVM support for folding control flow into faulting machine instructions.
377*9880d681SAndroid Build Coastguard Worker
378*9880d681SAndroid Build Coastguard Worker:doc:`CompileCudaWithLLVM`
379*9880d681SAndroid Build Coastguard Worker  LLVM support for CUDA.
380*9880d681SAndroid Build Coastguard Worker
381*9880d681SAndroid Build Coastguard WorkerDevelopment Process Documentation
382*9880d681SAndroid Build Coastguard Worker=================================
383*9880d681SAndroid Build Coastguard Worker
384*9880d681SAndroid Build Coastguard WorkerInformation about LLVM's development process.
385*9880d681SAndroid Build Coastguard Worker
386*9880d681SAndroid Build Coastguard Worker.. toctree::
387*9880d681SAndroid Build Coastguard Worker   :hidden:
388*9880d681SAndroid Build Coastguard Worker
389*9880d681SAndroid Build Coastguard Worker   DeveloperPolicy
390*9880d681SAndroid Build Coastguard Worker   Projects
391*9880d681SAndroid Build Coastguard Worker   LLVMBuild
392*9880d681SAndroid Build Coastguard Worker   HowToReleaseLLVM
393*9880d681SAndroid Build Coastguard Worker   Packaging
394*9880d681SAndroid Build Coastguard Worker   ReleaseProcess
395*9880d681SAndroid Build Coastguard Worker   Phabricator
396*9880d681SAndroid Build Coastguard Worker
397*9880d681SAndroid Build Coastguard Worker:doc:`DeveloperPolicy`
398*9880d681SAndroid Build Coastguard Worker   The LLVM project's policy towards developers and their contributions.
399*9880d681SAndroid Build Coastguard Worker
400*9880d681SAndroid Build Coastguard Worker:doc:`Projects`
401*9880d681SAndroid Build Coastguard Worker  How-to guide and templates for new projects that *use* the LLVM
402*9880d681SAndroid Build Coastguard Worker  infrastructure.  The templates (directory organization, Makefiles, and test
403*9880d681SAndroid Build Coastguard Worker  tree) allow the project code to be located outside (or inside) the ``llvm/``
404*9880d681SAndroid Build Coastguard Worker  tree, while using LLVM header files and libraries.
405*9880d681SAndroid Build Coastguard Worker
406*9880d681SAndroid Build Coastguard Worker:doc:`LLVMBuild`
407*9880d681SAndroid Build Coastguard Worker  Describes the LLVMBuild organization and files used by LLVM to specify
408*9880d681SAndroid Build Coastguard Worker  component descriptions.
409*9880d681SAndroid Build Coastguard Worker
410*9880d681SAndroid Build Coastguard Worker:doc:`HowToReleaseLLVM`
411*9880d681SAndroid Build Coastguard Worker  This is a guide to preparing LLVM releases. Most developers can ignore it.
412*9880d681SAndroid Build Coastguard Worker
413*9880d681SAndroid Build Coastguard Worker:doc:`ReleaseProcess`
414*9880d681SAndroid Build Coastguard Worker  This is a guide to validate a new release, during the release process. Most developers can ignore it.
415*9880d681SAndroid Build Coastguard Worker
416*9880d681SAndroid Build Coastguard Worker:doc:`Packaging`
417*9880d681SAndroid Build Coastguard Worker   Advice on packaging LLVM into a distribution.
418*9880d681SAndroid Build Coastguard Worker
419*9880d681SAndroid Build Coastguard Worker:doc:`Phabricator`
420*9880d681SAndroid Build Coastguard Worker   Describes how to use the Phabricator code review tool hosted on
421*9880d681SAndroid Build Coastguard Worker   http://reviews.llvm.org/ and its command line interface, Arcanist.
422*9880d681SAndroid Build Coastguard Worker
423*9880d681SAndroid Build Coastguard WorkerCommunity
424*9880d681SAndroid Build Coastguard Worker=========
425*9880d681SAndroid Build Coastguard Worker
426*9880d681SAndroid Build Coastguard WorkerLLVM has a thriving community of friendly and helpful developers.
427*9880d681SAndroid Build Coastguard WorkerThe two primary communication mechanisms in the LLVM community are mailing
428*9880d681SAndroid Build Coastguard Workerlists and IRC.
429*9880d681SAndroid Build Coastguard Worker
430*9880d681SAndroid Build Coastguard WorkerMailing Lists
431*9880d681SAndroid Build Coastguard Worker-------------
432*9880d681SAndroid Build Coastguard Worker
433*9880d681SAndroid Build Coastguard WorkerIf you can't find what you need in these docs, try consulting the mailing
434*9880d681SAndroid Build Coastguard Workerlists.
435*9880d681SAndroid Build Coastguard Worker
436*9880d681SAndroid Build Coastguard Worker`Developer's List (llvm-dev)`__
437*9880d681SAndroid Build Coastguard Worker  This list is for people who want to be included in technical discussions of
438*9880d681SAndroid Build Coastguard Worker  LLVM. People post to this list when they have questions about writing code
439*9880d681SAndroid Build Coastguard Worker  for or using the LLVM tools. It is relatively low volume.
440*9880d681SAndroid Build Coastguard Worker
441*9880d681SAndroid Build Coastguard Worker  .. __: http://lists.llvm.org/mailman/listinfo/llvm-dev
442*9880d681SAndroid Build Coastguard Worker
443*9880d681SAndroid Build Coastguard Worker`Commits Archive (llvm-commits)`__
444*9880d681SAndroid Build Coastguard Worker  This list contains all commit messages that are made when LLVM developers
445*9880d681SAndroid Build Coastguard Worker  commit code changes to the repository. It also serves as a forum for
446*9880d681SAndroid Build Coastguard Worker  patch review (i.e. send patches here). It is useful for those who want to
447*9880d681SAndroid Build Coastguard Worker  stay on the bleeding edge of LLVM development. This list is very high
448*9880d681SAndroid Build Coastguard Worker  volume.
449*9880d681SAndroid Build Coastguard Worker
450*9880d681SAndroid Build Coastguard Worker  .. __: http://lists.llvm.org/pipermail/llvm-commits/
451*9880d681SAndroid Build Coastguard Worker
452*9880d681SAndroid Build Coastguard Worker`Bugs & Patches Archive (llvm-bugs)`__
453*9880d681SAndroid Build Coastguard Worker  This list gets emailed every time a bug is opened and closed. It is
454*9880d681SAndroid Build Coastguard Worker  higher volume than the LLVM-dev list.
455*9880d681SAndroid Build Coastguard Worker
456*9880d681SAndroid Build Coastguard Worker  .. __: http://lists.llvm.org/pipermail/llvm-bugs/
457*9880d681SAndroid Build Coastguard Worker
458*9880d681SAndroid Build Coastguard Worker`Test Results Archive (llvm-testresults)`__
459*9880d681SAndroid Build Coastguard Worker  A message is automatically sent to this list by every active nightly tester
460*9880d681SAndroid Build Coastguard Worker  when it completes.  As such, this list gets email several times each day,
461*9880d681SAndroid Build Coastguard Worker  making it a high volume list.
462*9880d681SAndroid Build Coastguard Worker
463*9880d681SAndroid Build Coastguard Worker  .. __: http://lists.llvm.org/pipermail/llvm-testresults/
464*9880d681SAndroid Build Coastguard Worker
465*9880d681SAndroid Build Coastguard Worker`LLVM Announcements List (llvm-announce)`__
466*9880d681SAndroid Build Coastguard Worker  This is a low volume list that provides important announcements regarding
467*9880d681SAndroid Build Coastguard Worker  LLVM.  It gets email about once a month.
468*9880d681SAndroid Build Coastguard Worker
469*9880d681SAndroid Build Coastguard Worker  .. __: http://lists.llvm.org/mailman/listinfo/llvm-announce
470*9880d681SAndroid Build Coastguard Worker
471*9880d681SAndroid Build Coastguard WorkerIRC
472*9880d681SAndroid Build Coastguard Worker---
473*9880d681SAndroid Build Coastguard Worker
474*9880d681SAndroid Build Coastguard WorkerUsers and developers of the LLVM project (including subprojects such as Clang)
475*9880d681SAndroid Build Coastguard Workercan be found in #llvm on `irc.oftc.net <irc://irc.oftc.net/llvm>`_.
476*9880d681SAndroid Build Coastguard Worker
477*9880d681SAndroid Build Coastguard WorkerThis channel has several bots.
478*9880d681SAndroid Build Coastguard Worker
479*9880d681SAndroid Build Coastguard Worker* Buildbot reporters
480*9880d681SAndroid Build Coastguard Worker
481*9880d681SAndroid Build Coastguard Worker  * llvmbb - Bot for the main LLVM buildbot master.
482*9880d681SAndroid Build Coastguard Worker    http://lab.llvm.org:8011/console
483*9880d681SAndroid Build Coastguard Worker  * bb-chapuni - An individually run buildbot master. http://bb.pgr.jp/console
484*9880d681SAndroid Build Coastguard Worker  * smooshlab - Apple's internal buildbot master.
485*9880d681SAndroid Build Coastguard Worker
486*9880d681SAndroid Build Coastguard Worker* robot - Bugzilla linker. %bug <number>
487*9880d681SAndroid Build Coastguard Worker
488*9880d681SAndroid Build Coastguard Worker* clang-bot - A `geordi <http://www.eelis.net/geordi/>`_ instance running
489*9880d681SAndroid Build Coastguard Worker  near-trunk clang instead of gcc.
490*9880d681SAndroid Build Coastguard Worker
491*9880d681SAndroid Build Coastguard Worker
492*9880d681SAndroid Build Coastguard WorkerIndices and tables
493*9880d681SAndroid Build Coastguard Worker==================
494*9880d681SAndroid Build Coastguard Worker
495*9880d681SAndroid Build Coastguard Worker* :ref:`genindex`
496*9880d681SAndroid Build Coastguard Worker* :ref:`search`
497