2012-04-20 00:31:37 +08:00
|
|
|
|
Overview
|
|
|
|
|
========
|
|
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
If you are using a released version of LLVM, see `the download page
|
|
|
|
|
<http://llvm.org/releases/>`_ to find your documentation.
|
|
|
|
|
|
|
|
|
|
The LLVM compiler infrastructure supports a wide range of projects, from
|
|
|
|
|
industrial strength compilers to specialized JIT applications to small
|
|
|
|
|
research projects.
|
|
|
|
|
|
|
|
|
|
Similarly, documentation is broken down into several high-level groupings
|
2012-06-02 18:20:22 +08:00
|
|
|
|
targeted at different audiences:
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:36 +08:00
|
|
|
|
LLVM Design & Overview
|
|
|
|
|
======================
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Several introductory papers and presentations.
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:36 +08:00
|
|
|
|
.. toctree::
|
|
|
|
|
:hidden:
|
|
|
|
|
|
|
|
|
|
LangRef
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`LangRef`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Defines the LLVM intermediate representation.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
`Introduction to the LLVM Compiler`__
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Presentation providing a users introduction to LLVM.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
.. __: http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
`Intro to LLVM`__
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Book chapter providing a compiler hacker's introduction to LLVM.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
.. __: http://www.aosabook.org/en/llvm.html
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
|
|
|
|
|
`LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation`__
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Design overview.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
.. __: http://llvm.org/pubs/2004-01-30-CGO-LLVM.html
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
`LLVM: An Infrastructure for Multi-Stage Optimization`__
|
2013-01-20 10:19:36 +08:00
|
|
|
|
More details (quite old now).
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
.. __: http://llvm.org/pubs/2002-12-LattnerMSThesis.html
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
`Publications mentioning LLVM <http://llvm.org/pubs>`_
|
|
|
|
|
..
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
|
|
|
|
User Guides
|
|
|
|
|
===========
|
|
|
|
|
|
|
|
|
|
For those new to the LLVM system.
|
|
|
|
|
|
|
|
|
|
NOTE: If you are a user who is only interested in using LLVM-based
|
|
|
|
|
compilers, you should look into `Clang <http://clang.llvm.org>`_ or
|
|
|
|
|
`DragonEgg <http://dragonegg.llvm.org>`_ instead. The documentation here is
|
|
|
|
|
intended for users who have a need to work with the intermediate LLVM
|
|
|
|
|
representation.
|
|
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
|
:hidden:
|
|
|
|
|
|
|
|
|
|
CMake
|
2016-03-19 05:57:51 +08:00
|
|
|
|
AdvancedBuilds
|
2013-01-20 10:19:36 +08:00
|
|
|
|
HowToBuildOnARM
|
2013-09-09 04:44:48 +08:00
|
|
|
|
HowToCrossCompileLLVM
|
2013-01-20 10:19:36 +08:00
|
|
|
|
CommandGuide/index
|
|
|
|
|
GettingStarted
|
|
|
|
|
GettingStartedVS
|
|
|
|
|
FAQ
|
|
|
|
|
Lexicon
|
|
|
|
|
HowToAddABuilder
|
|
|
|
|
yaml2obj
|
|
|
|
|
HowToSubmitABug
|
|
|
|
|
SphinxQuickstartTemplate
|
|
|
|
|
Phabricator
|
|
|
|
|
TestingGuide
|
|
|
|
|
tutorial/index
|
|
|
|
|
ReleaseNotes
|
|
|
|
|
Passes
|
|
|
|
|
YamlIO
|
2013-03-30 23:32:50 +08:00
|
|
|
|
GetElementPtr
|
2015-02-28 07:14:50 +08:00
|
|
|
|
Frontend/PerformanceTips
|
2013-09-10 03:09:00 +08:00
|
|
|
|
MCJITDesignAndImplementation
|
2015-11-11 06:35:47 +08:00
|
|
|
|
CompileCudaWithLLVM
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`GettingStarted`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Discusses how to get up and running quickly with the LLVM infrastructure.
|
|
|
|
|
Everything from unpacking and compilation of the distribution to execution
|
|
|
|
|
of some tools.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`CMake`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
An addendum to the main Getting Started guide for those using the `CMake
|
|
|
|
|
build system <http://www.cmake.org>`_.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`HowToBuildOnARM`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Notes on building and testing LLVM/Clang on ARM.
|
|
|
|
|
|
2013-09-09 04:44:48 +08:00
|
|
|
|
:doc:`HowToCrossCompileLLVM`
|
|
|
|
|
Notes on cross-building and testing LLVM/Clang.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`GettingStartedVS`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
An addendum to the main Getting Started guide for those using Visual Studio
|
|
|
|
|
on Windows.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`tutorial/index`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Tutorials about using LLVM. Includes a tutorial about making a custom
|
|
|
|
|
language with LLVM.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`LLVM Command Guide <CommandGuide/index>`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
A reference manual for the LLVM command line utilities ("man" pages for LLVM
|
|
|
|
|
tools).
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`Passes`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
A list of optimizations and analyses implemented in LLVM.
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`FAQ`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
A list of common questions and problems and their solutions.
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`Release notes for the current release <ReleaseNotes>`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This describes new features, known bugs, and other limitations.
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`HowToSubmitABug`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Instructions for properly submitting information about any bugs you run into
|
|
|
|
|
in the LLVM system.
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`SphinxQuickstartTemplate`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
A template + tutorial for writing new Sphinx documentation. It is meant
|
|
|
|
|
to be read in source form.
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`LLVM Testing Infrastructure Guide <TestingGuide>`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
A reference manual for using the LLVM testing infrastructure.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
`How to build the C, C++, ObjC, and ObjC++ front end`__
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Instructions for building the clang front-end from source.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
.. __: http://clang.llvm.org/get_started.html
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`Lexicon`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Definition of acronyms, terms and concepts used in LLVM.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`HowToAddABuilder`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Instructions for adding new builder to LLVM buildbot master.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`YamlIO`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
A reference guide for using LLVM's YAML I/O library.
|
|
|
|
|
|
2013-03-30 23:32:50 +08:00
|
|
|
|
:doc:`GetElementPtr`
|
|
|
|
|
Answers to some very frequent questions about LLVM's most frequently
|
|
|
|
|
misunderstood instruction.
|
|
|
|
|
|
2015-02-28 07:14:50 +08:00
|
|
|
|
:doc:`Frontend/PerformanceTips`
|
|
|
|
|
A collection of tips for frontend authors on how to generate IR
|
|
|
|
|
which LLVM is able to effectively optimize.
|
|
|
|
|
|
|
|
|
|
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Programming Documentation
|
|
|
|
|
=========================
|
|
|
|
|
|
|
|
|
|
For developers of applications which use LLVM as a library.
|
2012-04-20 00:31:37 +08:00
|
|
|
|
|
|
|
|
|
.. toctree::
|
2013-01-20 10:19:36 +08:00
|
|
|
|
:hidden:
|
|
|
|
|
|
|
|
|
|
Atomics
|
|
|
|
|
CodingStandards
|
|
|
|
|
CommandLine
|
|
|
|
|
CompilerWriterInfo
|
|
|
|
|
ExtendingLLVM
|
|
|
|
|
HowToSetUpLLVMStyleRTTI
|
|
|
|
|
ProgrammersManual
|
2013-04-11 07:28:17 +08:00
|
|
|
|
Extensions
|
2015-03-31 07:05:30 +08:00
|
|
|
|
LibFuzzer
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`LLVM Language Reference Manual <LangRef>`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Defines the LLVM intermediate representation and the assembly form of the
|
|
|
|
|
different nodes.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`Atomics`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Information about LLVM's concurrency model.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`ProgrammersManual`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Introduction to the general layout of the LLVM sourcebase, important classes
|
|
|
|
|
and APIs, and some tips & tricks.
|
|
|
|
|
|
2013-04-11 07:28:17 +08:00
|
|
|
|
:doc:`Extensions`
|
|
|
|
|
LLVM-specific extensions to tools and formats LLVM seeks compatibility with.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`CommandLine`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Provides information on using the command line parsing library.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`CodingStandards`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Details the LLVM coding standards and provides useful information on writing
|
|
|
|
|
efficient C++ code.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`HowToSetUpLLVMStyleRTTI`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
|
|
|
|
|
class hierarchy.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`ExtendingLLVM`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Look here to see how to add instructions and intrinsics to LLVM.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
`Doxygen generated documentation <http://llvm.org/doxygen/>`_
|
2013-01-20 10:19:36 +08:00
|
|
|
|
(`classes <http://llvm.org/doxygen/inherits.html>`_)
|
|
|
|
|
(`tarball <http://llvm.org/doxygen/doxygen.tar.gz>`_)
|
|
|
|
|
|
2015-01-14 02:49:42 +08:00
|
|
|
|
`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
`ViewVC Repository Browser <http://llvm.org/viewvc/>`_
|
|
|
|
|
..
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`CompilerWriterInfo`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
A list of helpful links for compiler writers.
|
|
|
|
|
|
2015-03-31 07:05:30 +08:00
|
|
|
|
:doc:`LibFuzzer`
|
|
|
|
|
A library for writing in-process guided fuzzers.
|
|
|
|
|
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Subsystem Documentation
|
|
|
|
|
=======================
|
|
|
|
|
|
|
|
|
|
For API clients and LLVM developers.
|
|
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
|
:hidden:
|
|
|
|
|
|
|
|
|
|
AliasAnalysis
|
|
|
|
|
BitCodeFormat
|
2014-04-12 07:21:07 +08:00
|
|
|
|
BlockFrequencyTerminology
|
2013-01-20 10:19:36 +08:00
|
|
|
|
BranchWeightMetadata
|
|
|
|
|
Bugpoint
|
|
|
|
|
CodeGenerator
|
|
|
|
|
ExceptionHandling
|
|
|
|
|
LinkTimeOptimization
|
|
|
|
|
SegmentedStacks
|
|
|
|
|
TableGenFundamentals
|
2014-03-21 00:08:34 +08:00
|
|
|
|
TableGen/index
|
2013-01-20 10:19:36 +08:00
|
|
|
|
DebuggingJITedCode
|
|
|
|
|
GoldPlugin
|
|
|
|
|
MarkedUpDisassembly
|
|
|
|
|
SystemLibrary
|
|
|
|
|
SourceLevelDebugging
|
|
|
|
|
Vectorizers
|
|
|
|
|
WritingAnLLVMBackend
|
|
|
|
|
GarbageCollection
|
|
|
|
|
WritingAnLLVMPass
|
2013-02-12 19:45:22 +08:00
|
|
|
|
HowToUseAttributes
|
2013-03-31 00:41:14 +08:00
|
|
|
|
NVPTXUsage
|
2015-06-13 11:28:10 +08:00
|
|
|
|
AMDGPUUsage
|
2013-12-24 10:57:25 +08:00
|
|
|
|
StackMaps
|
2014-03-02 08:21:42 +08:00
|
|
|
|
InAlloca
|
2014-05-12 23:13:39 +08:00
|
|
|
|
BigEndianNEON
|
2014-08-20 01:05:58 +08:00
|
|
|
|
CoverageMappingFormat
|
2014-12-04 02:35:11 +08:00
|
|
|
|
Statepoints
|
2014-12-11 01:42:01 +08:00
|
|
|
|
MergeFunctions
|
2015-02-21 04:30:47 +08:00
|
|
|
|
BitSets
|
2015-06-16 03:38:15 +08:00
|
|
|
|
FaultMaps
|
2015-08-07 06:55:19 +08:00
|
|
|
|
MIRLangRef
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`WritingAnLLVMPass`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Information on how to write LLVM transformations and analyses.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`WritingAnLLVMBackend`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Information on how to write LLVM backends for machine targets.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`CodeGenerator`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
The design and implementation of the LLVM code generator. Useful if you are
|
|
|
|
|
working on retargetting LLVM to a new architecture, designing a new codegen
|
|
|
|
|
pass, or enhancing existing components.
|
|
|
|
|
|
2015-08-07 06:55:19 +08:00
|
|
|
|
:doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>`
|
|
|
|
|
A reference manual for the MIR serialization format, which is used to test
|
|
|
|
|
LLVM's code generation passes.
|
|
|
|
|
|
2014-04-08 06:42:53 +08:00
|
|
|
|
:doc:`TableGen <TableGen/index>`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Describes the TableGen tool, which is used heavily by the LLVM code
|
|
|
|
|
generator.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`AliasAnalysis`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Information on how to write a new alias analysis implementation or how to
|
|
|
|
|
use existing analyses.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`GarbageCollection`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
The interfaces source-language compilers should use for compiling GC'd
|
|
|
|
|
programs.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`Source Level Debugging with LLVM <SourceLevelDebugging>`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This document describes the design and philosophy behind the LLVM
|
|
|
|
|
source-level debugger.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`Vectorizers`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This document describes the current status of vectorization in LLVM.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`ExceptionHandling`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This document describes the design and implementation of exception handling
|
|
|
|
|
in LLVM.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`Bugpoint`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Automatic bug finder and test-case reducer description and usage
|
|
|
|
|
information.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`BitCodeFormat`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This describes the file format and encoding used for LLVM "bc" files.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`System Library <SystemLibrary>`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This document describes the LLVM System Library (``lib/System``) and
|
|
|
|
|
how to keep LLVM source code portable
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`LinkTimeOptimization`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This document describes the interface between LLVM intermodular optimizer
|
|
|
|
|
and the linker and its design
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`GoldPlugin`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
How to build your programs with link-time optimization on Linux.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`DebuggingJITedCode`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
How to debug JITed code with GDB.
|
|
|
|
|
|
2013-08-22 06:15:09 +08:00
|
|
|
|
:doc:`MCJITDesignAndImplementation`
|
|
|
|
|
Describes the inner workings of MCJIT execution engine.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`BranchWeightMetadata`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Provides information about Branch Prediction Information.
|
|
|
|
|
|
2014-04-12 07:21:07 +08:00
|
|
|
|
:doc:`BlockFrequencyTerminology`
|
|
|
|
|
Provides information about terminology used in the ``BlockFrequencyInfo``
|
|
|
|
|
analysis pass.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`SegmentedStacks`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This document describes segmented stacks and how they are used in LLVM.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`MarkedUpDisassembly`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This document describes the optional rich disassembly output syntax.
|
|
|
|
|
|
2013-02-12 19:45:22 +08:00
|
|
|
|
:doc:`HowToUseAttributes`
|
|
|
|
|
Answers some questions about the new Attributes infrastructure.
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-03-31 00:41:14 +08:00
|
|
|
|
:doc:`NVPTXUsage`
|
|
|
|
|
This document describes using the NVPTX back-end to compile GPU kernels.
|
|
|
|
|
|
2015-06-13 11:28:10 +08:00
|
|
|
|
:doc:`AMDGPUUsage`
|
|
|
|
|
This document describes how to use the AMDGPU back-end.
|
2014-11-14 22:08:00 +08:00
|
|
|
|
|
2013-12-24 10:57:25 +08:00
|
|
|
|
:doc:`StackMaps`
|
|
|
|
|
LLVM support for mapping instruction addresses to the location of
|
|
|
|
|
values and allowing code to be patched.
|
2013-03-31 00:41:14 +08:00
|
|
|
|
|
2014-05-12 23:13:39 +08:00
|
|
|
|
:doc:`BigEndianNEON`
|
|
|
|
|
LLVM's support for generating NEON instructions on big endian ARM targets is
|
|
|
|
|
somewhat nonintuitive. This document explains the implementation and rationale.
|
|
|
|
|
|
2014-08-20 01:05:58 +08:00
|
|
|
|
:doc:`CoverageMappingFormat`
|
|
|
|
|
This describes the format and encoding used for LLVM’s code coverage mapping.
|
2014-05-12 23:13:39 +08:00
|
|
|
|
|
2014-12-04 02:35:11 +08:00
|
|
|
|
:doc:`Statepoints`
|
|
|
|
|
This describes a set of experimental extensions for garbage
|
|
|
|
|
collection support.
|
|
|
|
|
|
2014-12-11 01:42:01 +08:00
|
|
|
|
:doc:`MergeFunctions`
|
|
|
|
|
Describes functions merging optimization.
|
|
|
|
|
|
2015-02-05 04:51:19 +08:00
|
|
|
|
:doc:`InAlloca`
|
|
|
|
|
Description of the ``inalloca`` argument attribute.
|
|
|
|
|
|
2015-06-16 03:38:15 +08:00
|
|
|
|
:doc:`FaultMaps`
|
|
|
|
|
LLVM support for folding control flow into faulting machine instructions.
|
|
|
|
|
|
2015-11-11 06:35:47 +08:00
|
|
|
|
:doc:`CompileCudaWithLLVM`
|
|
|
|
|
LLVM support for CUDA.
|
|
|
|
|
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Development Process Documentation
|
|
|
|
|
=================================
|
|
|
|
|
|
|
|
|
|
Information about LLVM's development process.
|
|
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
|
:hidden:
|
|
|
|
|
|
2013-03-30 23:32:47 +08:00
|
|
|
|
DeveloperPolicy
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Projects
|
|
|
|
|
LLVMBuild
|
|
|
|
|
HowToReleaseLLVM
|
2013-01-29 05:28:10 +08:00
|
|
|
|
Packaging
|
2013-09-10 03:09:00 +08:00
|
|
|
|
ReleaseProcess
|
2014-10-04 04:17:32 +08:00
|
|
|
|
Phabricator
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-03-30 23:32:47 +08:00
|
|
|
|
:doc:`DeveloperPolicy`
|
|
|
|
|
The LLVM project's policy towards developers and their contributions.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`Projects`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
How-to guide and templates for new projects that *use* the LLVM
|
|
|
|
|
infrastructure. The templates (directory organization, Makefiles, and test
|
|
|
|
|
tree) allow the project code to be located outside (or inside) the ``llvm/``
|
|
|
|
|
tree, while using LLVM header files and libraries.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`LLVMBuild`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Describes the LLVMBuild organization and files used by LLVM to specify
|
|
|
|
|
component descriptions.
|
|
|
|
|
|
2013-01-20 10:19:42 +08:00
|
|
|
|
:doc:`HowToReleaseLLVM`
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This is a guide to preparing LLVM releases. Most developers can ignore it.
|
|
|
|
|
|
2013-05-28 18:32:55 +08:00
|
|
|
|
:doc:`ReleaseProcess`
|
2014-09-26 14:59:15 +08:00
|
|
|
|
This is a guide to validate a new release, during the release process. Most developers can ignore it.
|
2013-05-28 18:32:55 +08:00
|
|
|
|
|
2013-01-29 05:28:10 +08:00
|
|
|
|
:doc:`Packaging`
|
|
|
|
|
Advice on packaging LLVM into a distribution.
|
|
|
|
|
|
2014-10-04 04:17:32 +08:00
|
|
|
|
:doc:`Phabricator`
|
|
|
|
|
Describes how to use the Phabricator code review tool hosted on
|
|
|
|
|
http://reviews.llvm.org/ and its command line interface, Arcanist.
|
|
|
|
|
|
2013-03-30 23:32:51 +08:00
|
|
|
|
Community
|
|
|
|
|
=========
|
|
|
|
|
|
|
|
|
|
LLVM has a thriving community of friendly and helpful developers.
|
|
|
|
|
The two primary communication mechanisms in the LLVM community are mailing
|
|
|
|
|
lists and IRC.
|
|
|
|
|
|
2013-01-20 10:19:36 +08:00
|
|
|
|
Mailing Lists
|
2013-03-30 23:32:51 +08:00
|
|
|
|
-------------
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
|
|
|
|
If you can't find what you need in these docs, try consulting the mailing
|
|
|
|
|
lists.
|
|
|
|
|
|
2015-08-05 11:51:17 +08:00
|
|
|
|
`Developer's List (llvm-dev)`__
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This list is for people who want to be included in technical discussions of
|
|
|
|
|
LLVM. People post to this list when they have questions about writing code
|
|
|
|
|
for or using the LLVM tools. It is relatively low volume.
|
|
|
|
|
|
2015-08-05 11:51:17 +08:00
|
|
|
|
.. __: http://lists.llvm.org/mailman/listinfo/llvm-dev
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2013-03-30 23:33:01 +08:00
|
|
|
|
`Commits Archive (llvm-commits)`__
|
2013-01-20 10:19:36 +08:00
|
|
|
|
This list contains all commit messages that are made when LLVM developers
|
2013-03-30 23:33:02 +08:00
|
|
|
|
commit code changes to the repository. It also serves as a forum for
|
|
|
|
|
patch review (i.e. send patches here). It is useful for those who want to
|
|
|
|
|
stay on the bleeding edge of LLVM development. This list is very high
|
|
|
|
|
volume.
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2015-08-05 11:51:17 +08:00
|
|
|
|
.. __: http://lists.llvm.org/pipermail/llvm-commits/
|
2013-01-20 10:19:36 +08:00
|
|
|
|
|
2015-08-05 11:51:17 +08:00
|
|
|
|
`Bugs & Patches Archive (llvm-bugs)`__
|
2013-03-30 23:33:02 +08:00
|
|
|
|
This list gets emailed every time a bug is opened and closed. It is
|
2015-08-05 11:51:17 +08:00
|
|
|
|
higher volume than the LLVM-dev list.
|
2013-03-30 23:32:54 +08:00
|
|
|
|
|
2015-08-05 11:51:17 +08:00
|
|
|
|
.. __: http://lists.llvm.org/pipermail/llvm-bugs/
|
2013-03-30 23:32:54 +08:00
|
|
|
|
|
2013-03-30 23:33:01 +08:00
|
|
|
|
`Test Results Archive (llvm-testresults)`__
|
2013-01-20 10:19:36 +08:00
|
|
|
|
A message is automatically sent to this list by every active nightly tester
|
|
|
|
|
when it completes. As such, this list gets email several times each day,
|
|
|
|
|
making it a high volume list.
|
|
|
|
|
|
2015-08-05 11:51:17 +08:00
|
|
|
|
.. __: http://lists.llvm.org/pipermail/llvm-testresults/
|
2013-01-20 10:19:42 +08:00
|
|
|
|
|
2013-03-30 23:33:01 +08:00
|
|
|
|
`LLVM Announcements List (llvm-announce)`__
|
2013-03-30 23:32:54 +08:00
|
|
|
|
This is a low volume list that provides important announcements regarding
|
|
|
|
|
LLVM. It gets email about once a month.
|
|
|
|
|
|
2015-08-05 11:51:17 +08:00
|
|
|
|
.. __: http://lists.llvm.org/mailman/listinfo/llvm-announce
|
2013-03-30 23:32:54 +08:00
|
|
|
|
|
2013-03-30 23:32:51 +08:00
|
|
|
|
IRC
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Users and developers of the LLVM project (including subprojects such as Clang)
|
|
|
|
|
can be found in #llvm on `irc.oftc.net <irc://irc.oftc.net/llvm>`_.
|
|
|
|
|
|
|
|
|
|
This channel has several bots.
|
|
|
|
|
|
|
|
|
|
* Buildbot reporters
|
|
|
|
|
|
|
|
|
|
* llvmbb - Bot for the main LLVM buildbot master.
|
|
|
|
|
http://lab.llvm.org:8011/console
|
|
|
|
|
* bb-chapuni - An individually run buildbot master. http://bb.pgr.jp/console
|
|
|
|
|
* smooshlab - Apple's internal buildbot master.
|
|
|
|
|
|
|
|
|
|
* robot - Bugzilla linker. %bug <number>
|
|
|
|
|
|
|
|
|
|
* clang-bot - A `geordi <http://www.eelis.net/geordi/>`_ instance running
|
|
|
|
|
near-trunk clang instead of gcc.
|
|
|
|
|
|
|
|
|
|
|
2012-04-20 00:31:37 +08:00
|
|
|
|
Indices and tables
|
|
|
|
|
==================
|
|
|
|
|
|
|
|
|
|
* :ref:`genindex`
|
|
|
|
|
* :ref:`search`
|