[ARM] Prevent generating NEON stack accesses under MVE.
[llvm-complete.git] / docs / index.rst
blob40cadd4af8450999f2a2d10aadb2e1943ba6084f
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    Programming Documentation
62    Subsystem Documentation
63    User Guides
65 :doc:`UserGuides`
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.
74 Community
75 =========
77 LLVM has a thriving community of friendly and helpful developers.
78 The two primary communication mechanisms in the LLVM community are mailing
79 lists and IRC.
81 Getting Involved
82 ----------------
84 LLVM welcomes contributions of all kinds. To get started, please review the following topics:
86 .. toctree::
87    :hidden:
89    Contributing
90    DeveloperPolicy
91    SphinxQuickstartTemplate
92    Phabricator
93    HowToSubmitABug
94    BugLifeCycle
96 :doc:`Contributing`
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.
106 :doc:`Phabricator`
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
112    in the LLVM system.
114 :doc:`BugLifeCycle`
115    Describes how bugs are reported, triaged and closed.
117 Development Process
118 -------------------
120 Information about LLVM's development process.
122 .. toctree::
123    :hidden:
125    Projects
126    LLVMBuild
127    HowToReleaseLLVM
128    Packaging
129    ReleaseProcess
131 :doc:`Projects`
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.
137 :doc:`LLVMBuild`
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.
147 :doc:`Packaging`
148    Advice on packaging LLVM into a distribution.
150 Mailing Lists
151 -------------
153 If you can't find what you need in these docs, try consulting the mailing
154 lists.
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
168   volume.
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.
199 * Buildbot reporters
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 -------------------------
213 .. toctree::
214    :hidden:
216    MeetupGuidelines
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
229 can be better.
231 .. toctree::
232    :hidden:
234    CodeOfConduct
235    Proposals/GitHubMove
236    Proposals/LLVMLibC
237    Proposals/TestSuite
238    Proposals/VariableNames
239    Proposals/VectorizationPlan
241 :doc:`CodeOfConduct`
242    Proposal to adopt a code of conduct on the LLVM social spaces (lists, events,
243    IRC, etc).
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.
260 Indices and tables
261 ==================
263 * :ref:`genindex`
264 * :ref:`search`