mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-06-10 15:29:52 +00:00
[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:
parent
75083ebc09
commit
21e993c1b1
|
@ -626,6 +626,8 @@ define i8 @coerce_offset0(i32 %V, i32* %P) {
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
|
<!-- {% raw %} -->
|
||||||
|
|
||||||
<p>The CHECK: and CHECK-NOT: directives both take a pattern to match. For most
|
<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
|
uses of FileCheck, fixed string matching is perfectly sufficient. For some
|
||||||
things, a more flexible form of matching is desired. To support this, FileCheck
|
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
|
braces explicitly from the input, you can use something ugly like
|
||||||
<b>{{[{][{]}}</b> as your pattern.</p>
|
<b>{{[{][{]}}</b> as your pattern.</p>
|
||||||
|
|
||||||
|
<!-- {% endraw %} -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- _______________________________________________________________________ -->
|
<!-- _______________________________________________________________________ -->
|
||||||
|
@ -659,6 +663,9 @@ braces explicitly from the input, you can use something ugly like
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- {% raw %} -->
|
||||||
|
|
||||||
<p>It is often useful to match a pattern and then verify that it occurs again
|
<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,
|
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
|
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.
|
define two separate CHECK lines that match on the same line.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<!-- {% endraw %} -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
50
docs/_templates/index.html
vendored
50
docs/_templates/index.html
vendored
|
@ -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 %}
|
|
4
docs/_templates/layout.html
vendored
4
docs/_templates/layout.html
vendored
|
@ -8,6 +8,6 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block rootrellink %}
|
{% block rootrellink %}
|
||||||
<li><a href="{{ pathto('index') }}">LLVM Home</a> | </li>
|
<li><a href="http://llvm.org/">LLVM Home</a> | </li>
|
||||||
<li><a href="{{ pathto('contents') }}">Documentation</a>»</li>
|
<li><a href="{{ pathto('index') }}">Documentation</a>»</li>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
17
docs/conf.py
17
docs/conf.py
|
@ -36,7 +36,7 @@ source_suffix = '.rst'
|
||||||
#source_encoding = 'utf-8-sig'
|
#source_encoding = 'utf-8-sig'
|
||||||
|
|
||||||
# The master toctree document.
|
# The master toctree document.
|
||||||
master_doc = 'contents'
|
master_doc = 'index'
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'LLVM'
|
project = u'LLVM'
|
||||||
|
@ -134,7 +134,14 @@ html_sidebars = {'index': 'indexsidebar.html'}
|
||||||
|
|
||||||
# Additional templates that should be rendered to pages, maps page names to
|
# Additional templates that should be rendered to pages, maps page names to
|
||||||
# template names.
|
# 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.
|
# If false, no module index is generated.
|
||||||
#html_domain_indices = True
|
#html_domain_indices = True
|
||||||
|
@ -182,7 +189,7 @@ latex_elements = {
|
||||||
# Grouping the document tree into LaTeX files. List of tuples
|
# Grouping the document tree into LaTeX files. List of tuples
|
||||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||||
latex_documents = [
|
latex_documents = [
|
||||||
('contents', 'LLVM.tex', u'LLVM Documentation',
|
('index', 'LLVM.tex', u'LLVM Documentation',
|
||||||
u'LLVM project', 'manual'),
|
u'LLVM project', 'manual'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -212,7 +219,7 @@ latex_documents = [
|
||||||
# One entry per manual page. List of tuples
|
# One entry per manual page. List of tuples
|
||||||
# (source start file, name, description, authors, manual section).
|
# (source start file, name, description, authors, manual section).
|
||||||
man_pages = [
|
man_pages = [
|
||||||
('contents', 'LLVM', u'LLVM Documentation',
|
('index', 'LLVM', u'LLVM Documentation',
|
||||||
[u'LLVM project'], 1)
|
[u'LLVM project'], 1)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -226,7 +233,7 @@ man_pages = [
|
||||||
# (source start file, target name, title, author,
|
# (source start file, target name, title, author,
|
||||||
# dir menu entry, description, category)
|
# dir menu entry, description, category)
|
||||||
texinfo_documents = [
|
texinfo_documents = [
|
||||||
('contents', 'LLVM', u'LLVM Documentation',
|
('index', 'LLVM', u'LLVM Documentation',
|
||||||
u'LLVM project', 'LLVM', 'One line description of project.',
|
u'LLVM project', 'LLVM', 'One line description of project.',
|
||||||
'Miscellaneous'),
|
'Miscellaneous'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
.. _contents:
|
|
||||||
|
|
||||||
Contents
|
|
||||||
========
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 2
|
|
||||||
|
|
||||||
Indices and tables
|
|
||||||
==================
|
|
||||||
|
|
||||||
* :ref:`genindex`
|
|
||||||
* :ref:`search`
|
|
31
docs/design_and_overview.rst
Normal file
31
docs/design_and_overview.rst
Normal 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.
|
24
docs/development_process.rst
Normal file
24
docs/development_process.rst
Normal 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.
|
286
docs/index.html
286
docs/index.html
|
@ -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 & 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 & 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 & 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 &
|
|
||||||
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
70
docs/index.rst
Normal 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
35
docs/mailing_lists.rst
Normal 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
34
docs/programming.rst
Normal 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
74
docs/subsystems.rst
Normal 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
78
docs/userguides.rst
Normal 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>`_.
|
Loading…
Reference in New Issue
Block a user