.. _design_and_overview:

LLVM Design & Overview
======================

.. 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).

* :ref:`gep`

  Answers to some very frequent questions about LLVM's most frequently
  misunderstood instruction.
