diff options
author | Sean Silva <silvas@purdue.edu> | 2013-01-20 02:19:36 +0000 |
---|---|---|
committer | Sean Silva <silvas@purdue.edu> | 2013-01-20 02:19:36 +0000 |
commit | 31da439b57951d0d61956f16c017ec61c95bf8dd (patch) | |
tree | 8647daa56217f4369aafc9526bdc275b60bd5643 /docs/index.rst | |
parent | 5a4251c767adb7a47ad7a53719398ee1342cc400 (diff) | |
download | external_llvm-31da439b57951d0d61956f16c017ec61c95bf8dd.zip external_llvm-31da439b57951d0d61956f16c017ec61c95bf8dd.tar.gz external_llvm-31da439b57951d0d61956f16c017ec61c95bf8dd.tar.bz2 |
docs: Inline documentation structure into homepage.
This brings back {Ctrl,Cmd}-f'ability, and makes some really bad
organizational choices easier to see (and therefore fix).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172949 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/index.rst')
-rw-r--r-- | docs/index.rst | 422 |
1 files changed, 390 insertions, 32 deletions
diff --git a/docs/index.rst b/docs/index.rst index 6aefc86..92421aa 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,54 +13,412 @@ research projects. Similarly, documentation is broken down into several high-level groupings targeted at different audiences: -* **Design & Overview** +LLVM Design & Overview +====================== - Several introductory papers and presentations are available at - :doc:`design_and_overview`. +Several introductory papers and presentations. -* **Publications** +.. toctree:: + :hidden: + + LangRef + GetElementPtr + +* :doc:`LangRef` + + 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 for Lifelong 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). + +* :doc:`GetElementPtr` + + Answers to some very frequent questions about LLVM's most frequently + misunderstood instruction. + +Publications +============ + +The list of `publications <http://llvm.org/pubs>`_ based on LLVM. + +User Guides +=========== + +For those new to the LLVM system. + +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. + +.. toctree:: + :hidden: + + CMake + HowToBuildOnARM + CommandGuide/index + DeveloperPolicy + GettingStarted + GettingStartedVS + FAQ + Lexicon + Packaging + HowToAddABuilder + yaml2obj + HowToSubmitABug + SphinxQuickstartTemplate + Phabricator + TestingGuide + tutorial/index + ReleaseNotes + Passes + YamlIO + +* :doc:`GettingStarted` + + 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. + +* :doc:`CMake` + + An addendum to the main Getting Started guide for those using the `CMake + build system <http://www.cmake.org>`_. + +* :doc:`HowToBuildOnARM` + + Notes on building and testing LLVM/Clang on ARM. + +* :doc:`GettingStartedVS` + + An addendum to the main Getting Started guide for those using Visual Studio + on Windows. + +* :doc:`tutorial/index` + + Tutorials about using LLVM. Includes a tutorial about making a custom + language with LLVM. + +* :doc:`DeveloperPolicy` + + The LLVM project's policy towards developers and their contributions. + +* :doc:`LLVM Command Guide <CommandGuide/index>` - The list of `publications <http://llvm.org/pubs>`_ based on LLVM. + A reference manual for the LLVM command line utilities ("man" pages for LLVM + tools). -* **User Guides** +* :doc:`Passes` - Those new to the LLVM system should first visit the :doc:`userguides`. + A list of optimizations and analyses implemented in LLVM. - 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. +* :doc:`FAQ` -* **API Clients** + A list of common questions and problems and their solutions. - Developers of applications which use LLVM as a library should visit the - :doc:`programming`. +* :doc:`Release notes for the current release <ReleaseNotes>` -* **Subsystems** + This describes new features, known bugs, and other limitations. - API clients and LLVM developers may be interested in the - :doc:`subsystems` documentation. +* :doc:`HowToSubmitABug` -* **Development Process** + Instructions for properly submitting information about any bugs you run into + in the LLVM system. +* :doc:`SphinxQuickstartTemplate` - Additional documentation on the LLVM project can be found at - :doc:`development_process`. + A template + tutorial for writing new Sphinx documentation. It is meant + to be read in source form. -* **Mailing Lists** +* :doc:`LLVM Testing Infrastructure Guide <TestingGuide>` - For more information, consider consulting the LLVM :doc:`mailing_lists`. + 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. + +* :doc:`Packaging` + + Advice on packaging LLVM into a distribution. + +* :doc:`Lexicon` + + Definition of acronyms, terms and concepts used in LLVM. + +* :doc:`HowToAddABuilder` + + Instructions for adding new builder to LLVM buildbot master. + +* :doc:`YamlIO` + + A reference guide for using LLVM's YAML I/O library. + +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>`_. + +Programming Documentation +========================= + +For developers of applications which use LLVM as a library. .. toctree:: - :maxdepth: 2 - - design_and_overview - userguides - programming - subsystems - development_process - mailing_lists - + :hidden: + + Atomics + CodingStandards + CommandLine + CompilerWriterInfo + ExtendingLLVM + HowToSetUpLLVMStyleRTTI + ProgrammersManual + +* :doc:`LLVM Language Reference Manual <LangRef>` + + Defines the LLVM intermediate representation and the assembly form of the + different nodes. + +* :doc:`Atomics` + + Information about LLVM's concurrency model. + +* :doc:`ProgrammersManual` + + Introduction to the general layout of the LLVM sourcebase, important classes + and APIs, and some tips & tricks. + +* :doc:`CommandLine` + + Provides information on using the command line parsing library. + +* :doc:`CodingStandards` + + Details the LLVM coding standards and provides useful information on writing + efficient C++ code. + +* :doc:`HowToSetUpLLVMStyleRTTI` + + How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your + class hierarchy. + +* :doc:`ExtendingLLVM` + + 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/>`_ + +* :doc:`CompilerWriterInfo` + + A list of helpful links for compiler writers. + +Subsystem Documentation +======================= + +For API clients and LLVM developers. + +.. toctree:: + :hidden: + + AliasAnalysis + BitCodeFormat + BranchWeightMetadata + Bugpoint + CodeGenerator + ExceptionHandling + LinkTimeOptimization + SegmentedStacks + TableGenFundamentals + DebuggingJITedCode + GoldPlugin + MarkedUpDisassembly + SystemLibrary + SourceLevelDebugging + Vectorizers + WritingAnLLVMBackend + GarbageCollection + WritingAnLLVMPass + TableGen/LangRef + +* :doc:`WritingAnLLVMPass` + + Information on how to write LLVM transformations and analyses. + +* :doc:`WritingAnLLVMBackend` + + Information on how to write LLVM backends for machine targets. + +* :doc:`CodeGenerator` + + 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. + +* :doc:`TableGenFundamentals` + + Describes the TableGen tool, which is used heavily by the LLVM code + generator. + +* :doc:`AliasAnalysis` + + Information on how to write a new alias analysis implementation or how to + use existing analyses. + +* :doc:`GarbageCollection` + + The interfaces source-language compilers should use for compiling GC'd + programs. + +* :doc:`Source Level Debugging with LLVM <SourceLevelDebugging>` + + This document describes the design and philosophy behind the LLVM + source-level debugger. + +* :doc:`Vectorizers` + + This document describes the current status of vectorization in LLVM. + +* :doc:`ExceptionHandling` + + This document describes the design and implementation of exception handling + in LLVM. + +* :doc:`Bugpoint` + + Automatic bug finder and test-case reducer description and usage + information. + +* :doc:`BitCodeFormat` + + This describes the file format and encoding used for LLVM "bc" files. + +* :doc:`System Library <SystemLibrary>` + + This document describes the LLVM System Library (``lib/System``) and + how to keep LLVM source code portable + +* :doc:`LinkTimeOptimization` + + This document describes the interface between LLVM intermodular optimizer + and the linker and its design + +* :doc:`GoldPlugin` + + How to build your programs with link-time optimization on Linux. + +* :doc:`DebuggingJITedCode` + + How to debug JITed code with GDB. + +* :doc:`BranchWeightMetadata` + + Provides information about Branch Prediction Information. + +* :doc:`SegmentedStacks` + + This document describes segmented stacks and how they are used in LLVM. + +* :doc:`MarkedUpDisassembly` + + This document describes the optional rich disassembly output syntax. + + +Development Process Documentation +================================= + + +Information about LLVM's development process. + +.. toctree:: + :hidden: + + MakefileGuide + Projects + LLVMBuild + HowToReleaseLLVM + +* :doc:`Projects` + + 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. + +* :doc:`LLVMBuild` + + Describes the LLVMBuild organization and files used by LLVM to specify + component descriptions. + +* :doc:`MakefileGuide` + + Describes how the LLVM makefiles work and how to use them. + +* :doc:`HowToReleaseLLVM` + + This is a guide to preparing LLVM releases. Most developers can ignore it. + +Mailing Lists +============= + +If you can't find what you need in these docs, try consulting the 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. + Indices and tables ================== |