-.. _alias_analysis:
-
==================================
LLVM Alias Analysis Infrastructure
==================================
-.. _atomics:
-
==============================================
LLVM Atomic Instructions and Concurrency Guide
==============================================
-.. _bitcode_format:
-
.. role:: raw-html(raw)
:format: html
-.. _branch_weight:
-
===========================
LLVM Branch Weight Metadata
===========================
-.. _bugpoint:
-
====================================
LLVM bugpoint tool: design and usage
====================================
-.. _building-with-cmake:
-
========================
Building LLVM with CMake
========================
-.. _code_generator:
-
==========================================
The LLVM Target-Independent Code Generator
==========================================
-.. _coding_standards:
-
=====================
LLVM Coding Standards
=====================
-.. _commands:
-
LLVM Command Guide
------------------
-.. _commandline:
-
==============================
CommandLine 2.0 Library Manual
==============================
-.. _compiler_writer_info:
-
========================================================
Architecture & Platform Information for Compiler Writers
========================================================
-.. _debugging-jited-code:
-
==============================
Debugging JIT-ed Code With GDB
==============================
-.. _developer_policy:
-
=====================
LLVM Developer Policy
=====================
-.. _exception_handling:
-
==========================
Exception Handling in LLVM
==========================
-.. _extending_llvm:
-
============================================================
Extending LLVM: Adding instructions, intrinsics, types, etc.
============================================================
-.. _faq:
-
================================
Frequently Asked Questions (FAQ)
================================
-.. _gep:
-
=======================================
The Often Misunderstood GEP Instruction
=======================================
-.. _getting_started:
-
====================================
Getting Started with the LLVM System
====================================
-.. _winvs:
-
==================================================================
Getting Started with the LLVM System using Microsoft Visual Studio
==================================================================
-.. _gold-plugin:
-
====================
The LLVM gold plugin
====================
-.. _how_to_add_a_builder:
-
===================================================================
How To Add Your Build Configuration To LLVM Buildbot Infrastructure
===================================================================
-.. _how_to_build_on_arm:
-
===================================================================
How To Build On ARM
===================================================================
Build ``Debug``, ``Release+Asserts``, and ``Release`` versions
of ``llvm`` on all supported platforms. Directions to build ``llvm``
-are :ref:`here <getting_started>`.
+are :doc:`here <GettingStarted>`.
Build Clang Binary Distribution
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. _how-to-set-up-llvm-style-rtti:
-
======================================================
How to set up LLVM-style RTTI for your class hierarchy
======================================================
-.. _how-to-submit-a-bug-report:
-
================================
How to submit an LLVM bug report
================================
-.. _how_to_use_instruction_mappings:
-
===============================
How To Use Instruction Mappings
===============================
-.. _lexicon:
-
================
The LLVM Lexicon
================
-.. _lto:
-
======================================================
LLVM Link Time Optimization: Design and Implementation
======================================================
-.. _makefile_guide:
-
===================
LLVM Makefile Guide
===================
-.. _marked_up_disassembly:
-
=======================================
LLVM's Optional Rich Disassembly Output
=======================================
-.. _packaging:
-
========================
Advice on Packaging LLVM
========================
(even better, get the book)
<http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html>`_.
-You are also encouraged to take a look at the :ref:`LLVM Coding Standards
-<coding_standards>` guide which focuses on how to write maintainable code more
+You are also encouraged to take a look at the :doc:`LLVM Coding Standards
+<CodingStandards>` guide which focuses on how to write maintainable code more
than where to put your curly braces.
.. _resources:
These five templates can be used with any classes, whether they have a v-table
or not. If you want to add support for these templates, see the document
-:ref:`How to set up LLVM-style RTTI for your class hierarchy
-<how-to-set-up-llvm-style-rtti>`
+:doc:`How to set up LLVM-style RTTI for your class hierarchy
+<HowToSetUpLLVMStyleRTTI>`
.. _string_apis:
-.. _projects:
-
========================
Creating an LLVM Project
========================
-.. _segmented_stacks:
-
========================
Segmented Stacks in LLVM
========================
-.. _tablegen:
-
=====================
TableGen Fundamentals
=====================
-.. _yamlio:
-
=====================
YAML I/O
=====================
-.. _design_and_overview:
-
LLVM Design & Overview
======================
More details (quite old now).
-* :ref:`gep`
+* :doc:`GetElementPtr`
Answers to some very frequent questions about LLVM's most frequently
misunderstood instruction.
-.. _development_process:
-
Development Process Documentation
=================================
LLVMBuild
HowToReleaseLLVM
-* :ref:`projects`
+* :doc:`Projects`
How-to guide and templates for new projects that *use* the LLVM
infrastructure. The templates (directory organization, Makefiles, and test
Describes the LLVMBuild organization and files used by LLVM to specify
component descriptions.
-* :ref:`makefile_guide`
+* :doc:`MakefileGuide`
Describes how the LLVM makefiles work and how to use them.
-.. _contents:
-
Overview
========
* **Design & Overview**
Several introductory papers and presentations are available at
- :ref:`design_and_overview`.
+ :doc:`design_and_overview`.
* **Publications**
* **User Guides**
- Those new to the LLVM system should first visit the :ref:`userguides`.
+ Those new to the LLVM system should first visit the :doc:`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
* **API Clients**
Developers of applications which use LLVM as a library should visit the
- :ref:`programming`.
+ :doc:`programming`.
* **Subsystems**
API clients and LLVM developers may be interested in the
- :ref:`subsystems` documentation.
+ :doc:`subsystems` documentation.
* **Development Process**
Additional documentation on the LLVM project can be found at
- :ref:`development_process`.
+ :doc:`development_process`.
* **Mailing Lists**
- For more information, consider consulting the LLVM :ref:`mailing_lists`.
+ For more information, consider consulting the LLVM :doc:`mailing_lists`.
.. toctree::
:maxdepth: 2
-.. _mailing_lists:
-
Mailing Lists
=============
-.. _programming:
-
Programming Documentation
=========================
HowToSetUpLLVMStyleRTTI
ProgrammersManual
-* `LLVM Language Reference Manual <LangRef.html>`_
+* :doc:`LLVM Language Reference Manual <LangRef>`
Defines the LLVM intermediate representation and the assembly form of the
different nodes.
-* :ref:`atomics`
+* :doc:`Atomics`
Information about LLVM's concurrency model.
Introduction to the general layout of the LLVM sourcebase, important classes
and APIs, and some tips & tricks.
-* :ref:`commandline`
+* :doc:`CommandLine`
Provides information on using the command line parsing library.
-* :ref:`coding_standards`
+* :doc:`CodingStandards`
Details the LLVM coding standards and provides useful information on writing
efficient C++ code.
How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your
class hierarchy.
-* :ref:`extending_llvm`
+* :doc:`ExtendingLLVM`
Look here to see how to add instructions and intrinsics to LLVM.
* `ViewVC Repository Browser <http://llvm.org/viewvc/>`_
-* :ref:`compiler_writer_info`
+* :doc:`CompilerWriterInfo`
A list of helpful links for compiler writers.
-.. _subsystems:
-
Subsystem Documentation
=======================
Information on how to write LLVM backends for machine targets.
-* :ref:`code_generator`
+* :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.
-* :ref:`tablegen`
+* :doc:`TableGenFundamentals`
Describes the TableGen tool, which is used heavily by the LLVM code
generator.
-* :ref:`alias_analysis`
+* :doc:`AliasAnalysis`
Information on how to write a new alias analysis implementation or how to
use existing analyses.
This document describes the current status of vectorization in LLVM.
-* :ref:`exception_handling`
+* :doc:`ExceptionHandling`
This document describes the design and implementation of exception handling
in LLVM.
-* :ref:`bugpoint`
+* :doc:`Bugpoint`
Automatic bug finder and test-case reducer description and usage
information.
-* :ref:`bitcode_format`
+* :doc:`BitCodeFormat`
This describes the file format and encoding used for LLVM "bc" files.
This document describes the LLVM System Library (``lib/System``) and
how to keep LLVM source code portable
-* :ref:`lto`
+* :doc:`LinkTimeOptimization`
This document describes the interface between LLVM intermodular optimizer
and the linker and its design
-* :ref:`gold-plugin`
+* :doc:`GoldPlugin`
How to build your programs with link-time optimization on Linux.
-* :ref:`debugging-jited-code`
+* :doc:`DebuggingJITedCode`
How to debug JITed code with GDB.
-* :ref:`branch_weight`
+* :doc:`BranchWeightMetadata`
Provides information about Branch Prediction Information.
-* :ref:`segmented_stacks`
+* :doc:`SegmentedStacks`
This document describes segmented stacks and how they are used in LLVM.
-* :ref:`marked_up_disassembly`
+* :doc:`MarkedUpDisassembly`
This document describes the optional rich disassembly output syntax.
-.. _userguides:
-
User Guides
===========
Passes
YamlIO
-* :ref:`getting_started`
+* :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.
-* :ref:`building-with-cmake`
+* :doc:`CMake`
An addendum to the main Getting Started guide for those using the `CMake
build system <http://www.cmake.org>`_.
-* :ref:`how_to_build_on_arm`
+* :doc:`HowToBuildOnARM`
Notes on building and testing LLVM/Clang on ARM.
Tutorials about using LLVM. Includes a tutorial about making a custom
language with LLVM.
-* :ref:`developer_policy`
+* :doc:`DeveloperPolicy`
The LLVM project's policy towards developers and their contributions.
-* :ref:`LLVM Command Guide <commands>`
+* :doc:`LLVM Command Guide <CommandGuide/index>`
A reference manual for the LLVM command line utilities ("man" pages for LLVM
tools).
A list of optimizations and analyses implemented in LLVM.
-* :ref:`faq`
+* :doc:`FAQ`
A list of common questions and problems and their solutions.
This describes new features, known bugs, and other limitations.
-* :ref:`how-to-submit-a-bug-report`
+* :doc:`HowToSubmitABug`
Instructions for properly submitting information about any bugs you run into
in the LLVM system.
Instructions for building the clang front-end from source.
-* :ref:`packaging`
+* :doc:`Packaging`
Advice on packaging LLVM into a distribution.
-* :ref:`lexicon`
+* :doc:`Lexicon`
Definition of acronyms, terms and concepts used in LLVM.
-* :ref:`how_to_add_a_builder`
+* :doc:`HowToAddABuilder`
Instructions for adding new builder to LLVM buildbot master.
-* :ref:`yamlio`
+* :doc:`YamlIO`
A reference guide for using LLVM's YAML I/O library.
-.. _yaml2obj:
-
yaml2obj
========