About

Warning

If you are using a released version of LLVM, see the download page 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 targeted at different audiences:

LLVM Design & Overview

Several introductory papers and presentations.

Introduction to the LLVM Compiler
Presentation providing a users introduction to LLVM.
Intro to LLVM
Book chapter providing a compiler hacker’s introduction to LLVM.
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Design overview.
LLVM: An Infrastructure for Multi-Stage Optimization
More details (quite old now).
Publications mentioning LLVM

Documentation

Getting Started, How-tos, Developer Guides, and Tutorials.

User Guides
For those new to the LLVM system.
Programming Documentation
For developers of applications which use LLVM as a library.
Subsystem Documentation
For API clients and LLVM developers.

Getting Started/Tutorials

Getting Started with the LLVM System
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 Tutorial: Table of Contents
Tutorials about using LLVM. Includes a tutorial about making a custom language with LLVM.
Getting Started with the LLVM System using Microsoft Visual Studio
An addendum to the main Getting Started guide for those using Visual Studio on Windows.

Reference

LLVM and API reference documentation.

LLVM Language Reference Manual
Defines the LLVM intermediate representation and the assembly form of the different nodes.
LLVM Command Guide
A reference manual for the LLVM command line utilities (“man” pages for LLVM tools).
LLVM Testing Infrastructure Guide
A reference manual for using the LLVM testing infrastructure.
Architecture & Platform Information for Compiler Writers
A list of helpful links for compiler writers.
Machine IR (MIR) Format Reference Manual
A reference manual for the MIR serialization format, which is used to test LLVM’s code generation passes.
Doxygen generated documentation
(classes)

Documentation for Go bindings

Github Source Repository Browser

Community

LLVM welcomes contributions of all kinds. To learn more, see the following articles:

Indices and tables