6 If you are using a released version of LLVM, see `the download page
7 <http://llvm.org/releases/>`_ to find your documentation.
9 The LLVM compiler infrastructure supports a wide range of projects, from
10 industrial strength compilers to specialized JIT applications to small
13 Similarly, documentation is broken down into several high-level groupings
14 targeted at different audiences:
16 LLVM Design & Overview
17 ======================
19 Several introductory papers and presentations.
27 Defines the LLVM intermediate representation.
29 `Introduction to the LLVM Compiler`__
30 Presentation providing a users introduction to LLVM.
32 .. __: http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html
35 Book chapter providing a compiler hacker's introduction to LLVM.
37 .. __: http://www.aosabook.org/en/llvm.html
40 `LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation`__
43 .. __: http://llvm.org/pubs/2004-01-30-CGO-LLVM.html
45 `LLVM: An Infrastructure for Multi-Stage Optimization`__
46 More details (quite old now).
48 .. __: http://llvm.org/pubs/2002-12-LattnerMSThesis.html
50 `Publications mentioning LLVM <http://llvm.org/pubs>`_
56 Getting Started, How-tos, Developer Guides, and Tutorials.
62 ProgrammingDocumentation
63 SubsystemDocumentation
64 ReferenceDocumentation
68 For those new to the LLVM system.
70 :doc:`ProgrammingDocumentation`
71 For developers of applications which use LLVM as a library.
73 :doc:`SubsystemDocumentation`
74 For API clients and LLVM developers.
76 :doc:`ReferenceDocumentation`
77 LLVM and API reference documentation.
82 LLVM has a thriving community of friendly and helpful developers.
83 The two primary communication mechanisms in the LLVM community are mailing
89 LLVM welcomes contributions of all kinds. To get started, please review the following topics:
96 SphinxQuickstartTemplate
102 An overview on how to contribute to LLVM.
104 :doc:`DeveloperPolicy`
105 The LLVM project's policy towards developers and their contributions.
107 :doc:`SphinxQuickstartTemplate`
108 A template + tutorial for writing new Sphinx documentation. It is meant
109 to be read in source form.
112 Describes how to use the Phabricator code review tool hosted on
113 http://reviews.llvm.org/ and its command line interface, Arcanist.
115 :doc:`HowToSubmitABug`
116 Instructions for properly submitting information about any bugs you run into
120 Describes how bugs are reported, triaged and closed.
125 Information about LLVM's development process.
137 How-to guide and templates for new projects that *use* the LLVM
138 infrastructure. The templates (directory organization, Makefiles, and test
139 tree) allow the project code to be located outside (or inside) the ``llvm/``
140 tree, while using LLVM header files and libraries.
143 Describes the LLVMBuild organization and files used by LLVM to specify
144 component descriptions.
146 :doc:`HowToReleaseLLVM`
147 This is a guide to preparing LLVM releases. Most developers can ignore it.
149 :doc:`ReleaseProcess`
150 This is a guide to validate a new release, during the release process. Most developers can ignore it.
153 Advice on packaging LLVM into a distribution.
158 If you can't find what you need in these docs, try consulting the mailing
161 `Developer's List (llvm-dev)`__
162 This list is for people who want to be included in technical discussions of
163 LLVM. People post to this list when they have questions about writing code
164 for or using the LLVM tools. It is relatively low volume.
166 .. __: http://lists.llvm.org/mailman/listinfo/llvm-dev
168 `Commits Archive (llvm-commits)`__
169 This list contains all commit messages that are made when LLVM developers
170 commit code changes to the repository. It also serves as a forum for
171 patch review (i.e. send patches here). It is useful for those who want to
172 stay on the bleeding edge of LLVM development. This list is very high
175 .. __: http://lists.llvm.org/pipermail/llvm-commits/
177 `Bugs & Patches Archive (llvm-bugs)`__
178 This list gets emailed every time a bug is opened and closed. It is
179 higher volume than the LLVM-dev list.
181 .. __: http://lists.llvm.org/pipermail/llvm-bugs/
183 `Test Results Archive (llvm-testresults)`__
184 A message is automatically sent to this list by every active nightly tester
185 when it completes. As such, this list gets email several times each day,
186 making it a high volume list.
188 .. __: http://lists.llvm.org/pipermail/llvm-testresults/
190 `LLVM Announcements List (llvm-announce)`__
191 This is a low volume list that provides important announcements regarding
192 LLVM. It gets email about once a month.
194 .. __: http://lists.llvm.org/mailman/listinfo/llvm-announce
199 Users and developers of the LLVM project (including subprojects such as Clang)
200 can be found in #llvm on `irc.oftc.net <irc://irc.oftc.net/llvm>`_.
202 This channel has several bots.
206 * llvmbb - Bot for the main LLVM buildbot master.
207 http://lab.llvm.org:8011/console
208 * smooshlab - Apple's internal buildbot master.
210 * robot - Bugzilla linker. %bug <number>
212 * clang-bot - A `geordi <http://www.eelis.net/geordi/>`_ instance running
213 near-trunk clang instead of gcc.
215 Meetups and social events
216 -------------------------
223 Besides developer `meetings and conferences <https://llvm.org/devmtg/>`_,
224 there are several user groups called
225 `LLVM Socials <https://www.meetup.com/pro/llvm/>`_. We greatly encourage you to
226 join one in your city. Or start a new one if there is none:
228 :doc:`MeetupGuidelines`
230 Community wide proposals
231 ------------------------
233 Proposals for massive changes in how the community behaves and how the work flow
243 Proposals/VariableNames
244 Proposals/VectorizationPlan
247 Proposal to adopt a code of conduct on the LLVM social spaces (lists, events,
250 :doc:`Proposals/GitHubMove`
251 Proposal to move from SVN/Git to GitHub.
253 :doc:`Proposals/LLVMLibC`
254 Proposal to add a libc implementation under the LLVM project.
256 :doc:`Proposals/TestSuite`
257 Proposals for additional benchmarks/programs for llvm's test-suite.
259 :doc:`Proposals/VariableNames`
260 Proposal to change the variable names coding standard.
262 :doc:`Proposals/VectorizationPlan`
263 Proposal to model the process and upgrade the infrastructure of LLVM's Loop Vectorizer.