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.
61 Programming Documentation
62 Subsystem Documentation
66 For those new to the LLVM system.
68 :doc:`ProgrammingDocumentation`
69 For developers of applications which use LLVM as a library.
71 :doc:`SubsystemDocumentation`
72 For API clients and LLVM developers.
77 LLVM has a thriving community of friendly and helpful developers.
78 The two primary communication mechanisms in the LLVM community are mailing
84 LLVM welcomes contributions of all kinds. To get started, please review the following topics:
91 SphinxQuickstartTemplate
97 An overview on how to contribute to LLVM.
99 :doc:`DeveloperPolicy`
100 The LLVM project's policy towards developers and their contributions.
102 :doc:`SphinxQuickstartTemplate`
103 A template + tutorial for writing new Sphinx documentation. It is meant
104 to be read in source form.
107 Describes how to use the Phabricator code review tool hosted on
108 http://reviews.llvm.org/ and its command line interface, Arcanist.
110 :doc:`HowToSubmitABug`
111 Instructions for properly submitting information about any bugs you run into
115 Describes how bugs are reported, triaged and closed.
120 Information about LLVM's development process.
132 How-to guide and templates for new projects that *use* the LLVM
133 infrastructure. The templates (directory organization, Makefiles, and test
134 tree) allow the project code to be located outside (or inside) the ``llvm/``
135 tree, while using LLVM header files and libraries.
138 Describes the LLVMBuild organization and files used by LLVM to specify
139 component descriptions.
141 :doc:`HowToReleaseLLVM`
142 This is a guide to preparing LLVM releases. Most developers can ignore it.
144 :doc:`ReleaseProcess`
145 This is a guide to validate a new release, during the release process. Most developers can ignore it.
148 Advice on packaging LLVM into a distribution.
153 If you can't find what you need in these docs, try consulting the mailing
156 `Developer's List (llvm-dev)`__
157 This list is for people who want to be included in technical discussions of
158 LLVM. People post to this list when they have questions about writing code
159 for or using the LLVM tools. It is relatively low volume.
161 .. __: http://lists.llvm.org/mailman/listinfo/llvm-dev
163 `Commits Archive (llvm-commits)`__
164 This list contains all commit messages that are made when LLVM developers
165 commit code changes to the repository. It also serves as a forum for
166 patch review (i.e. send patches here). It is useful for those who want to
167 stay on the bleeding edge of LLVM development. This list is very high
170 .. __: http://lists.llvm.org/pipermail/llvm-commits/
172 `Bugs & Patches Archive (llvm-bugs)`__
173 This list gets emailed every time a bug is opened and closed. It is
174 higher volume than the LLVM-dev list.
176 .. __: http://lists.llvm.org/pipermail/llvm-bugs/
178 `Test Results Archive (llvm-testresults)`__
179 A message is automatically sent to this list by every active nightly tester
180 when it completes. As such, this list gets email several times each day,
181 making it a high volume list.
183 .. __: http://lists.llvm.org/pipermail/llvm-testresults/
185 `LLVM Announcements List (llvm-announce)`__
186 This is a low volume list that provides important announcements regarding
187 LLVM. It gets email about once a month.
189 .. __: http://lists.llvm.org/mailman/listinfo/llvm-announce
194 Users and developers of the LLVM project (including subprojects such as Clang)
195 can be found in #llvm on `irc.oftc.net <irc://irc.oftc.net/llvm>`_.
197 This channel has several bots.
201 * llvmbb - Bot for the main LLVM buildbot master.
202 http://lab.llvm.org:8011/console
203 * smooshlab - Apple's internal buildbot master.
205 * robot - Bugzilla linker. %bug <number>
207 * clang-bot - A `geordi <http://www.eelis.net/geordi/>`_ instance running
208 near-trunk clang instead of gcc.
210 Meetups and social events
211 -------------------------
218 Besides developer `meetings and conferences <https://llvm.org/devmtg/>`_,
219 there are several user groups called
220 `LLVM Socials <https://www.meetup.com/pro/llvm/>`_. We greatly encourage you to
221 join one in your city. Or start a new one if there is none:
223 :doc:`MeetupGuidelines`
225 Community wide proposals
226 ------------------------
228 Proposals for massive changes in how the community behaves and how the work flow
238 Proposals/VariableNames
239 Proposals/VectorizationPlan
242 Proposal to adopt a code of conduct on the LLVM social spaces (lists, events,
245 :doc:`Proposals/GitHubMove`
246 Proposal to move from SVN/Git to GitHub.
248 :doc:`Proposals/LLVMLibC`
249 Proposal to add a libc implementation under the LLVM project.
251 :doc:`Proposals/TestSuite`
252 Proposals for additional benchmarks/programs for llvm's test-suite.
254 :doc:`Proposals/VariableNames`
255 Proposal to change the variable names coding standard.
257 :doc:`Proposals/VectorizationPlan`
258 Proposal to model the process and upgrade the infrastructure of LLVM's Loop Vectorizer.