diff options
author | Daniel Dunbar <daniel@zuster.org> | 2012-04-19 16:31:37 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2012-04-19 16:31:37 +0000 |
commit | 21e993c1b1083ef91441a363997d0efc8e646191 (patch) | |
tree | 1c07b2ea2dd18b8219d46415cee365abc93578e2 | |
parent | 75083ebc09a3dd47099e3912ac090dbc907f3eaf (diff) |
[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
-rw-r--r-- | docs/TestingGuide.html | 9 | ||||
-rw-r--r-- | docs/_templates/index.html | 50 | ||||
-rw-r--r-- | docs/_templates/layout.html | 4 | ||||
-rw-r--r-- | docs/conf.py | 17 | ||||
-rw-r--r-- | docs/contents.rst | 13 | ||||
-rw-r--r-- | docs/design_and_overview.rst | 31 | ||||
-rw-r--r-- | docs/development_process.rst | 24 | ||||
-rw-r--r-- | docs/index.html | 286 | ||||
-rw-r--r-- | docs/index.rst | 70 | ||||
-rw-r--r-- | docs/mailing_lists.rst | 35 | ||||
-rw-r--r-- | docs/programming.rst | 34 | ||||
-rw-r--r-- | docs/subsystems.rst | 74 | ||||
-rw-r--r-- | docs/userguides.rst | 78 |
13 files changed, 369 insertions, 356 deletions
diff --git a/docs/TestingGuide.html b/docs/TestingGuide.html index 233a157aad..acf52df8d3 100644 --- a/docs/TestingGuide.html +++ b/docs/TestingGuide.html @@ -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> diff --git a/docs/_templates/index.html b/docs/_templates/index.html deleted file mode 100644 index efd2a15726..0000000000 --- a/docs/_templates/index.html +++ /dev/null @@ -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 %} diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html index 4999488120..de5db5caf1 100644 --- a/docs/_templates/layout.html +++ b/docs/_templates/layout.html @@ -8,6 +8,6 @@ {% endblock %} {% block rootrellink %} - <li><a href="{{ pathto('index') }}">LLVM Home</a> | </li> - <li><a href="{{ pathto('contents') }}">Documentation</a>»</li> + <li><a href="http://llvm.org/">LLVM Home</a> | </li> + <li><a href="{{ pathto('index') }}">Documentation</a>»</li> {% endblock %} diff --git a/docs/conf.py b/docs/conf.py index e44dfc0de6..324410ed56 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -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'), ] diff --git a/docs/contents.rst b/docs/contents.rst deleted file mode 100644 index 095e5240c7..0000000000 --- a/docs/contents.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. _contents: - -Contents -======== - -.. toctree:: - :maxdepth: 2 - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`search` diff --git a/docs/design_and_overview.rst b/docs/design_and_overview.rst new file mode 100644 index 0000000000..158190ec85 --- /dev/null +++ b/docs/design_and_overview.rst @@ -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. diff --git a/docs/development_process.rst b/docs/development_process.rst new file mode 100644 index 0000000000..f73bbf4cd9 --- /dev/null +++ b/docs/development_process.rst @@ -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. diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 4d50b4f9d0..0000000000 --- a/docs/index.html +++ /dev/null @@ -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> diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000000..ca31efaf17 --- /dev/null +++ b/docs/index.rst @@ -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` diff --git a/docs/mailing_lists.rst b/docs/mailing_lists.rst new file mode 100644 index 0000000000..106f1da48f --- /dev/null +++ b/docs/mailing_lists.rst @@ -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. diff --git a/docs/programming.rst b/docs/programming.rst new file mode 100644 index 0000000000..b198d97cd1 --- /dev/null +++ b/docs/programming.rst @@ -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/>`_ diff --git a/docs/subsystems.rst b/docs/subsystems.rst new file mode 100644 index 0000000000..3a0db7878d --- /dev/null +++ b/docs/subsystems.rst @@ -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. diff --git a/docs/userguides.rst b/docs/userguides.rst new file mode 100644 index 0000000000..96102dd25e --- /dev/null +++ b/docs/userguides.rst @@ -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>`_. |