[ARM] A predicate cast of a predicate cast is a predicate cast
[llvm-complete.git] / docs / index.rst
blob6b0d803a86a18c231c6b4e0c0b5fb1916b0234b3
1 About
2 ========
4 .. warning::
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
11 research projects.
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.
21 .. toctree::
22    :hidden:
24    LangRef
26 :doc:`LangRef`
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
34 `Intro to LLVM`__
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`__
41   Design overview.
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>`_
51    ..
53 Documentation
54 =============
56 Getting Started, How-tos, Developer Guides, and Tutorials.
58 .. toctree::
59    :hidden:
61    UserGuides
62    ProgrammingDocumentation
63    SubsystemDocumentation
64    ReferenceDocumentation
67 :doc:`UserGuides`
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.
79 Community
80 =========
82 LLVM has a thriving community of friendly and helpful developers.
83 The two primary communication mechanisms in the LLVM community are mailing
84 lists and IRC.
86 Getting Involved
87 ----------------
89 LLVM welcomes contributions of all kinds. To get started, please review the following topics:
91 .. toctree::
92    :hidden:
94    Contributing
95    DeveloperPolicy
96    SphinxQuickstartTemplate
97    Phabricator
98    HowToSubmitABug
99    BugLifeCycle
101 :doc:`Contributing`
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.
111 :doc:`Phabricator`
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
117    in the LLVM system.
119 :doc:`BugLifeCycle`
120    Describes how bugs are reported, triaged and closed.
122 Development Process
123 -------------------
125 Information about LLVM's development process.
127 .. toctree::
128    :hidden:
130    Projects
131    LLVMBuild
132    HowToReleaseLLVM
133    Packaging
134    ReleaseProcess
136 :doc:`Projects`
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.
142 :doc:`LLVMBuild`
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.
152 :doc:`Packaging`
153    Advice on packaging LLVM into a distribution.
155 Mailing Lists
156 -------------
158 If you can't find what you need in these docs, try consulting the mailing
159 lists.
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
173   volume.
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.
204 * Buildbot reporters
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 -------------------------
218 .. toctree::
219    :hidden:
221    MeetupGuidelines
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
234 can be better.
236 .. toctree::
237    :hidden:
239    CodeOfConduct
240    Proposals/GitHubMove
241    Proposals/LLVMLibC
242    Proposals/TestSuite
243    Proposals/VariableNames
244    Proposals/VectorizationPlan
246 :doc:`CodeOfConduct`
247    Proposal to adopt a code of conduct on the LLVM social spaces (lists, events,
248    IRC, etc).
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.
265 Indices and tables
266 ==================
268 * :ref:`genindex`
269 * :ref:`search`