[docs] Convert docs index page into Sphinx.

- Work in progress, this is mostly important because it lets us incrementally migrate the remaining documentation.
 - Lots of styling, editing, and integration work yet to come…
 - PR12589

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155133 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2012-04-19 16:31:37 +00:00
parent 75083ebc09
commit 21e993c1b1
13 changed files with 369 additions and 356 deletions

View File

@ -626,6 +626,8 @@ define i8 @coerce_offset0(i32 %V, i32* %P) {
<div>
<!-- {% raw %} -->
<p>The CHECK: and CHECK-NOT: directives both take a pattern to match. For most
uses of FileCheck, fixed string matching is perfectly sufficient. For some
things, a more flexible form of matching is desired. To support this, FileCheck
@ -650,6 +652,8 @@ braces like you would in C. In the rare case that you want to match double
braces explicitly from the input, you can use something ugly like
<b>{{[{][{]}}</b> as your pattern.</p>
<!-- {% endraw %} -->
</div>
<!-- _______________________________________________________________________ -->
@ -659,6 +663,9 @@ braces explicitly from the input, you can use something ugly like
<div>
<!-- {% raw %} -->
<p>It is often useful to match a pattern and then verify that it occurs again
later in the file. For codegen tests, this can be useful to allow any register,
but verify that that register is used consistently later. To do this, FileCheck
@ -690,6 +697,8 @@ that FileCheck is not actually line-oriented when it matches, this allows you to
define two separate CHECK lines that match on the same line.
</p>
<!-- {% endraw %} -->
</div>
</div>

View File

@ -1,50 +0,0 @@
{# This template defines the 'index.html' page which we currently only use as
the entry point to the HTML-based documentation, but later can use to provide
an entry point for a Sphinx based LLVM website.
Conceptually, this page is not supposed to be part of the documentation per
se (i.e., the content that would be rendered into a PDF, for example), but
rather provides entry points into the documentation and links to other
content which would only be part of the website. #}
{% extends "layout.html" %}
{% set title = 'lld' %}
{% block body %}
<h1>LLVM System Documentation</h1>
<p class="doc_warning">
This is the front page for the Sphinx-based LLVM documentation. This is
currently a work in progress.
</p>
<h2>Documentation</h2>
<table class="contentstable" align="center" style="margin-left: 30px">
<tr>
<td width="50%">
<p class="biglink"><a class="biglink" href="{{ pathto('contents') }}">
Contents</a><br/>
<span class="linkdescr">for a complete overview</span></p>
<p class="biglink"><a class="biglink" href="{{ pathto('search') }}">
Search page</a><br/>
<span class="linkdescr">search the documentation</span></p>
<p class="biglink"><a class="biglink" href="{{ pathto('genindex') }}">
General Index</a><br/>
<span class="linkdescr">all functions, classes, terms</span></p>
</td></tr>
</table>
<h2>Source</h2>
<p>LLVM is available via public SVN repository:
<tt>svn co
<a href="http://llvm.org/svn/llvm-project/llvm/trunk">
http://llvm.org/svn/llvm-project/llvm/trunk</a></tt>.</p>
<p>LLVM source can be browsed
via <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk">ViewVC</a>.</p>
<p>LLVM is also available via a read-only git mirror:
<tt>git clone
<a href="http://llvm.org/git/llvm.git">
http://llvm.org/git/llvm.git</a></tt>.</p>
{% endblock %}

View File

@ -8,6 +8,6 @@
{% endblock %}
{% block rootrellink %}
<li><a href="{{ pathto('index') }}">LLVM Home</a>&nbsp;|&nbsp;</li>
<li><a href="{{ pathto('contents') }}">Documentation</a>&raquo;</li>
<li><a href="http://llvm.org/">LLVM Home</a>&nbsp;|&nbsp;</li>
<li><a href="{{ pathto('index') }}">Documentation</a>&raquo;</li>
{% endblock %}

View File

@ -36,7 +36,7 @@ source_suffix = '.rst'
#source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'contents'
master_doc = 'index'
# General information about the project.
project = u'LLVM'
@ -134,7 +134,14 @@ html_sidebars = {'index': 'indexsidebar.html'}
# Additional templates that should be rendered to pages, maps page names to
# template names.
html_additional_pages = {'index': 'index.html'}
#
# We load all the old-school HTML documentation pages into Sphinx here.
basedir = os.path.dirname(__file__)
html_additional_pages = {}
for file in os.listdir(basedir):
if file.endswith('.html'):
name,_ = os.path.splitext(file)
html_additional_pages[name] = file
# If false, no module index is generated.
#html_domain_indices = True
@ -182,7 +189,7 @@ latex_elements = {
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('contents', 'LLVM.tex', u'LLVM Documentation',
('index', 'LLVM.tex', u'LLVM Documentation',
u'LLVM project', 'manual'),
]
@ -212,7 +219,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('contents', 'LLVM', u'LLVM Documentation',
('index', 'LLVM', u'LLVM Documentation',
[u'LLVM project'], 1)
]
@ -226,7 +233,7 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('contents', 'LLVM', u'LLVM Documentation',
('index', 'LLVM', u'LLVM Documentation',
u'LLVM project', 'LLVM', 'One line description of project.',
'Miscellaneous'),
]

View File

@ -1,13 +0,0 @@
.. _contents:
Contents
========
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`

View File

@ -0,0 +1,31 @@
.. _design_and_overview:
LLVM Design & Overview
======================
* `LLVM Language Reference Manual <LangRef.html>`_
Defines the LLVM intermediate representation.
* `Introduction to the LLVM Compiler <http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html>`_
Presentation providing a users introduction to LLVM.
* `Intro to LLVM <http://www.aosabook.org/en/llvm.html>`_
Book chapter providing a compiler hacker's introduction to LLVM.
* `LLVM: A Compilation Framework forLifelong Program Analysis & Transformation
<http://llvm.org/pubs/2004-01-30-CGO-LLVM.html>`_
Design overview.
* `LLVM: An Infrastructure for Multi-Stage Optimization
<http://llvm.org/pubs/2002-12-LattnerMSThesis.html>`_
More details (quite old now).
* `GetElementPtr FAQ <GetElementPtr.html>`_
Answers to some very frequent questions about LLVM's most frequently
misunderstood instruction.

View File

@ -0,0 +1,24 @@
.. _development_process:
Development Process Documentation
=================================
* `LLVM Project Guide <Projects.html>`_
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.
* `LLVMBuild Documentation <LLVMBuild.html>`_
Describes the LLVMBuild organization and files used by LLVM to specify
component descriptions.
* `LLVM Makefile Guide <MakefileGuide.html>`_
Describes how the LLVM makefiles work and how to use them.
* `How To Release LLVM To The Public <HowToReleaseLLVM.html>`_
This is a guide to preparing LLVM releases. Most developers can ignore it.

View File

@ -1,286 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Documentation for the LLVM System at SVN head</title>
<link rel="stylesheet" href="llvm.css" type="text/css">
</head>
<body>
<h1>Documentation for the LLVM System at SVN head</h1>
<p class="doc_warning">If you are using a released version of LLVM,
see <a href="http://llvm.org/releases/">the download page</a> to find
your documentation.</p>
<table class="layout" width="95%"><tr class="layout"><td class="left">
<ul>
<li><a href="#llvmdesign">LLVM Design</a></li>
<li><a href="/pubs/">LLVM Publications</a></li>
<li><a href="#userguide">LLVM User Guides</a></li>
<li><a href="#llvmprog">LLVM Programming Documentation</a></li>
<li><a href="#subsystems">LLVM Subsystem Documentation</a></li>
<li><a href="#develprocess">LLVM Development Process Documentation</a></li>
<li><a href="#maillist">LLVM Mailing Lists</a></li>
</ul>
</td><td class="right">
<form action="http://www.google.com/search" method=get>
<p>
<input type="hidden" name="sitesearch" value="llvm.org/docs">
<input type=text name=q size=25><br>
<input type=submit value="Search the LLVM Docs" name="submit">
</p>
</form>
</td></tr></table>
<div class="doc_author">
<p>Written by <a href="http://llvm.org/">The LLVM Team</a></p>
</div>
<!--=======================================================================-->
<h2><a name="llvmdesign">LLVM Design &amp; Overview</a></h2>
<!--=======================================================================-->
<ul>
<li><a href="LangRef.html">LLVM Language Reference Manual</a> - Defines the LLVM
intermediate representation.</li>
<li><a href="http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html">Introduction to the LLVM Compiler </a> - Presentation providing a users introduction to LLVM.</li>
<li><a href="http://www.aosabook.org/en/llvm.html">Intro to LLVM</a> - book chapter providing a compiler hacker's introduction to LLVM.</li>
<li><a href="http://llvm.org/pubs/2004-01-30-CGO-LLVM.html">LLVM: A Compilation Framework for
Lifelong Program Analysis &amp; Transformation</a> - Design overview.</li>
<li><a href="http://llvm.org/pubs/2002-12-LattnerMSThesis.html">LLVM: An Infrastructure for
Multi-Stage Optimization</a> - More details (quite old now).</li>
<li><a href="GetElementPtr.html">GetElementPtr FAQ</a> - Answers to some very
frequent questions about LLVM's most frequently misunderstood instruction.</li>
</ul>
<!--=======================================================================-->
<h2><a name="userguide">LLVM User Guides</a></h2>
<!--=======================================================================-->
<ul>
<li><a href="GettingStarted.html">The LLVM Getting Started Guide</a> -
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.</li>
<li><a href="CMake.html">LLVM CMake guide</a> - An addendum to the main Getting
Started guide for those using the <a href="http://www.cmake.org/">CMake build
system</a>.
</li>
<li><a href="GettingStartedVS.html">Getting Started with the LLVM System using
Microsoft Visual Studio</a> - An addendum to the main Getting Started guide for
those using Visual Studio on Windows.</li>
<li><a href="tutorial/">LLVM Tutorial</a> - A walk through the process of using
LLVM for a custom language, and the facilities LLVM offers in tutorial form.</li>
<li><a href="DeveloperPolicy.html">Developer Policy</a> - The LLVM project's
policy towards developers and their contributions.</li>
<li><a href="CommandGuide/index.html">LLVM Command Guide</a> - A reference
manual for the LLVM command line utilities ("man" pages for LLVM tools).</li>
<li><a href="Passes.html">LLVM's Analysis and Transform Passes</a> - A list of
optimizations and analyses implemented in LLVM.</li>
<li><a href="FAQ.html">Frequently Asked Questions</a> - A list of common
questions and problems and their solutions.</li>
<li><a href="ReleaseNotes.html">Release notes for the current release</a>
- This describes new features, known bugs, and other limitations.</li>
<li><a href="HowToSubmitABug.html">How to Submit A Bug Report</a> -
Instructions for properly submitting information about any bugs you run into in
the LLVM system.</li>
<li><a href="TestingGuide.html">LLVM Testing Infrastructure Guide</a> - A reference
manual for using the LLVM testing infrastructure.</li>
<li><a href="http://clang.llvm.org/get_started.html">How to build the C, C++, ObjC,
and ObjC++ front end</a> - Instructions for building the clang front-end from
source.</li>
<li><a href="Packaging.html">Packaging guide</a> - Advice on packaging
LLVM into a distribution.</li>
<li><a href="Lexicon.html">The LLVM Lexicon</a> - Definition of acronyms, terms
and concepts used in LLVM.</li>
<li><a name="irc">You can probably find help on the unofficial LLVM IRC
channel</a>. We often are on irc.oftc.net in the #llvm channel. If you are
using the mozilla browser, and have chatzilla installed, you can <a
href="irc://irc.oftc.net/llvm">join #llvm on irc.oftc.net</a> directly.</li>
<li><a href="HowToAddABuilder.html">How To Add Your Build Configuration
To LLVM Buildbot Infrastructure</a> - Instructions for adding new builder to
LLVM buildbot master.</li>
</ul>
<!--=======================================================================-->
<h2><a name="llvmprog">LLVM Programming Documentation</a></h2>
<!--=======================================================================-->
<ul>
<li><a href="LangRef.html">LLVM Language Reference Manual</a> - Defines the LLVM
intermediate representation and the assembly form of the different nodes.</li>
<li><a href="ProgrammersManual.html">The LLVM Programmers Manual</a> -
Introduction to the general layout of the LLVM sourcebase, important classes
and APIs, and some tips &amp; tricks.</li>
<li><a href="CommandLine.html">CommandLine library Reference Manual</a> -
Provides information on using the command line parsing library.</li>
<li><a href="CodingStandards.html">LLVM Coding standards</a> -
Details the LLVM coding standards and provides useful information on writing
efficient C++ code.</li>
<li><a href="ExtendingLLVM.html">Extending LLVM</a> - Look here to see how
to add instructions and intrinsics to LLVM.</li>
<li><a href="http://llvm.org/doxygen/">Doxygen generated
documentation</a> (<a
href="http://llvm.org/doxygen/inherits.html">classes</a>)
(<a href="http://llvm.org/doxygen/doxygen.tar.gz">tarball</a>)
</li>
<li><a href="http://llvm.org/viewvc/">ViewVC Repository Browser</a></li>
</ul>
<!--=======================================================================-->
<h2><a name="subsystems">LLVM Subsystem Documentation</a></h2>
<!--=======================================================================-->
<ul>
<li><a href="WritingAnLLVMPass.html">Writing an LLVM Pass</a> - Information
on how to write LLVM transformations and analyses.</li>
<li><a href="WritingAnLLVMBackend.html">Writing an LLVM Backend</a> - Information
on how to write LLVM backends for machine targets.</li>
<li><a href="CodeGenerator.html">The LLVM Target-Independent Code
Generator</a> - 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.</li>
<li><a href="TableGenFundamentals.html">TableGen Fundamentals</a> -
Describes the TableGen tool, which is used heavily by the LLVM code
generator.</li>
<li><a href="AliasAnalysis.html">Alias Analysis in LLVM</a> - Information
on how to write a new alias analysis implementation or how to use existing
analyses.</li>
<li><a href="GarbageCollection.html">Accurate Garbage Collection with
LLVM</a> - The interfaces source-language compilers should use for compiling
GC'd programs.</li>
<li><a href="SourceLevelDebugging.html">Source Level Debugging with
LLVM</a> - This document describes the design and philosophy behind the LLVM
source-level debugger.</li>
<li><a href="ExceptionHandling.html">Zero Cost Exception handling in LLVM</a>
- This document describes the design and implementation of exception handling
in LLVM.</li>
<li><a href="Bugpoint.html">Bugpoint</a> - automatic bug finder and test-case
reducer description and usage information.</li>
<li><a href="BitCodeFormat.html">LLVM Bitcode File Format</a> - This describes
the file format and encoding used for LLVM "bc" files.</li>
<li><a href="SystemLibrary.html">System Library</a> - This document describes
the LLVM System Library (<tt>lib/System</tt>) and how to keep LLVM source code
portable</li>
<li><a href="LinkTimeOptimization.html">Link Time Optimization</a> - This
document describes the interface between LLVM intermodular optimizer and
the linker and its design</li>
<li><a href="GoldPlugin.html">The LLVM gold plugin</a> - How to build your
programs with link-time optimization on Linux.</li>
<li><a href="DebuggingJITedCode.html">The GDB JIT interface</a> - How to debug
JITed code with GDB.</li>
<li><a href="BranchWeightMetadata.html">Branch Weight Metadata</a> - Provides
information about Branch Prediction Information.</li>
</ul>
<!--=======================================================================-->
<h2><a name="develprocess">LLVM Development Process Documentation</a></h2>
<!--=======================================================================-->
<ul>
<li><a href="Projects.html">LLVM Project Guide</a> - How-to guide and
templates for new projects that <em>use</em> the LLVM infrastructure. The
templates (directory organization, Makefiles, and test tree) allow the project
code to be located outside (or inside) the <tt>llvm/</tt> tree, while using LLVM
header files and libraries.</li>
<li><a href="LLVMBuild.html">LLVMBuild Documentation</a> - Describes the
LLVMBuild organization and files used by LLVM to specify component
descriptions.</li>
<li><a href="MakefileGuide.html">LLVM Makefile Guide</a> - Describes how the
LLVM makefiles work and how to use them.</li>
<li><a href="HowToReleaseLLVM.html">How To Release LLVM To The Public</a> - This
is a guide to preparing LLVM releases. Most developers can ignore it.</li>
</ul>
<!--=======================================================================-->
<h2><a name="maillist">LLVM Mailing Lists</a></h2>
<!--=======================================================================-->
<ul>
<li>The <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-announce">
LLVM Announcements List</a>: This is a low volume list that provides important
announcements regarding LLVM. It gets email about once a month.</li>
<li>The <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">Developer's
List</a>: 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.</li>
<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvmbugs/">Bugs &amp;
Patches Archive</a>: This list gets emailed every time a bug is opened and
closed, and when people submit patches to be included in LLVM. It is higher
volume than the LLVMdev list.</li>
<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/">Commits
Archive</a>: This list contains all commit messages that are made when LLVM
developers commit code changes to the repository. It is useful for those who
want to stay on the bleeding edge of LLVM development. This list is very high
volume.</li>
<li>The <a href="http://lists.cs.uiuc.edu/pipermail/llvm-testresults/">
Test Results Archive</a>: 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.</li>
</ul>
<!-- *********************************************************************** -->
<hr>
<address>
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img
src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
<a href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
<a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body></html>

70
docs/index.rst Normal file
View File

@ -0,0 +1,70 @@
.. _contents:
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
targetted at different audiences:
* **Design & Overview**
Several introductory papers and presentations are available at
:ref:`design_and_overview`.
* **Publications**
The list of `publications <http://llvm.org/pubs>`_ based on LLVM.
* **User Guides**
Those new to the LLVM system should first vist the :ref:`userguides`.
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.
* **API Clients**
Developers of applications which use LLVM as a library should visit the
:ref:`programming`.
* **Subsystems**
API clients and LLVM developers may be interested in the
:ref:`subsystems` documentation.
* **Development Process**
Additional documentation on the LLVM project can be found at
:ref:`development_process`.
* **Mailing Lists**
For more information, consider consulting the LLVM :ref:`mailing_lists`.
.. toctree::
:maxdepth: 2
design_and_overview
userguides
programming
subsystems
development_process
mailing_lists
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`

35
docs/mailing_lists.rst Normal file
View File

@ -0,0 +1,35 @@
.. _mailing_lists:
Mailing Lists
=============
* `LLVM Announcements List
<http://lists.cs.uiuc.edu/mailman/listinfo/llvm-announce>`_
This is a low volume list that provides important announcements regarding
LLVM. It gets email about once a month.
* `Developer's List <http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>`_
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.
* `Bugs & Patches Archive <http://lists.cs.uiuc.edu/pipermail/llvmbugs/>`_
This list gets emailed every time a bug is opened and closed, and when people
submit patches to be included in LLVM. It is higher volume than the LLVMdev
list.
* `Commits Archive <http://lists.cs.uiuc.edu/pipermail/llvm-commits/>`_
This list contains all commit messages that are made when LLVM developers
commit code changes to the repository. It is useful for those who want to
stay on the bleeding edge of LLVM development. This list is very high volume.
* `Test Results Archive
<http://lists.cs.uiuc.edu/pipermail/llvm-testresults/>`_
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.

34
docs/programming.rst Normal file
View File

@ -0,0 +1,34 @@
.. _programming:
Programming Documentation
=========================
* `LLVM Language Reference Manual <LangRef.html>`_
Defines the LLVM intermediate representation and the assembly form of the
different nodes.
* `The LLVM Programmers Manual <ProgrammersManual.html>`_
Introduction to the general layout of the LLVM sourcebase, important classes
and APIs, and some tips & tricks.
* `CommandLine library Reference Manual <CommandLine.html>`_
Provides information on using the command line parsing library.
* `LLVM Coding standards <CodingStandards.html>`_
Details the LLVM coding standards and provides useful information on writing
efficient C++ code.
* `Extending LLVM <ExtendingLLVM.html>`_
Look here to see how to add instructions and intrinsics to LLVM.
* `Doxygen generated documentation <http://llvm.org/doxygen/>`_
(`classes <http://llvm.org/doxygen/inherits.html>`_)
(`tarball <http://llvm.org/doxygen/doxygen.tar.gz>`_)
* `ViewVC Repository Browser <http://llvm.org/viewvc/>`_

74
docs/subsystems.rst Normal file
View File

@ -0,0 +1,74 @@
.. _subsystems:
Subsystem Documentation
=======================
* `Writing an LLVM Pass <WritingAnLLVMPass.html>`_
Information on how to write LLVM transformations and analyses.
* `Writing an LLVM Backend <WritingAnLLVMBackend.html>`_
Information on how to write LLVM backends for machine targets.
* `The LLVM Target-Independent Code Generator <CodeGenerator.html>`_
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.
* `TableGen Fundamentals <TableGenFundamentals.html>`_
Describes the TableGen tool, which is used heavily by the LLVM code
generator.
* `Alias Analysis in LLVM <AliasAnalysis.html>`_
Information on how to write a new alias analysis implementation or how to
use existing analyses.
* `Accurate Garbage Collection with LLVM <GarbageCollection.html>`_
The interfaces source-language compilers should use for compiling GC'd
programs.
* `Source Level Debugging with LLVM <SourceLevelDebugging.html>`_
This document describes the design and philosophy behind the LLVM
source-level debugger.
* `Zero Cost Exception handling in LLVM <ExceptionHandling.html>`_
This document describes the design and implementation of exception handling
in LLVM.
* `Bugpoint <Bugpoint.html>`_
Automatic bug finder and test-case reducer description and usage
information.
* `LLVM Bitcode File Format <BitCodeFormat.html>`_
This describes the file format and encoding used for LLVM "bc" files.
* `System Library <SystemLibrary.html>`_
This document describes the LLVM System Library (<tt>lib/System</tt>) and
how to keep LLVM source code portable
* `Link Time Optimization <LinkTimeOptimization.html>`_
This document describes the interface between LLVM intermodular optimizer
and the linker and its design
* `The LLVM gold plugin <GoldPlugin.html>`_
How to build your programs with link-time optimization on Linux.
* `The GDB JIT interface <DebuggingJITedCode.html>`_
How to debug JITed code with GDB.
* `Branch Weight Metadata <BranchWeightMetadata.html>`_
Provides information about Branch Prediction Information.

78
docs/userguides.rst Normal file
View File

@ -0,0 +1,78 @@
.. _userguides:
User Guides
===========
* `The LLVM Getting Started Guide <GettingStarted.html>`_
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.
* `LLVM CMake guide <CMake.html>`_
An addendum to the main Getting Started guide for those using the `CMake
build system <http://www.cmake.org>`_.
* `Getting Started with the LLVM System using Microsoft Visual Studio
<GettingStartedVS.html>`_
An addendum to the main Getting Started guide for those using Visual Studio
on Windows.
* `LLVM Tutorial <tutorial/>`_
A walk through the process of using LLVM for a custom language, and the
facilities LLVM offers in tutorial form.
* `Developer Policy <DeveloperPolicy.html>`_
The LLVM project's policy towards developers and their contributions.
* `LLVM Command Guide <CommandGuide/index.html>`_
A reference manual for the LLVM command line utilities ("man" pages for LLVM
tools).
* `LLVM's Analysis and Transform Passes <Passes.html>`_
A list of optimizations and analyses implemented in LLVM.
* `Frequently Asked Questions <FAQ.html>`_
A list of common questions and problems and their solutions.
* `Release notes for the current release <ReleaseNotes.html>`_
This describes new features, known bugs, and other limitations.
* `How to Submit A Bug Report <HowToSubmitABug.html>`_
Instructions for properly submitting information about any bugs you run into
in the LLVM system.
* `LLVM Testing Infrastructure Guide <TestingGuide.html>`_
A reference manual for using the LLVM testing infrastructure.
* `How to build the C, C++, ObjC, and ObjC++ front end <http://clang.llvm.org/get_started.html>`_
Instructions for building the clang front-end from source.
* `Packaging guide <Packaging.html>`_
Advice on packaging LLVM into a distribution.
* `The LLVM Lexicon <Lexicon.html>`_
Definition of acronyms, terms and concepts used in LLVM.
* `How To Add Your Build Configuration To LLVM Buildbot Infrastructure <HowToAddABuilder.html>`_
Instructions for adding new builder to LLVM buildbot master.
* **IRC** -- You can probably find help on the unofficial LLVM IRC.
We often are on irc.oftc.net in the #llvm channel. If you are using the
mozilla browser, and have chatzilla installed, you can `join #llvm on
irc.oftc.net <irc://irc.oftc.net/llvm>`_.