User Guides

For those new to the LLVM system.

NOTE: If you are a user who is only interested in using an LLVM-based compiler, you should look into Clang instead. The documentation here is intended for users who have a need to work with the intermediate LLVM representation.

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.
Building LLVM with CMake
An addendum to the main Getting Started guide for those using the CMake build system.
How To Build On ARM
Notes on building and testing LLVM/Clang on ARM.
How To Build Clang and LLVM with Profile-Guided Optimizations
Notes on building LLVM/Clang with PGO.
How to Cross Compile Compiler-rt Builtins For Arm
Notes on cross-building and testing the compiler-rt builtins for Arm.
How To Cross-Compile Clang/LLVM using Clang/LLVM
Notes on cross-building and testing LLVM/Clang.
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.
LLVM Tutorial: Table of Contents
Tutorials about using LLVM. Includes a tutorial about making a custom language with LLVM.
LLVM’s Analysis and Transform Passes
A list of optimizations and analyses implemented in LLVM.
Frequently Asked Questions (FAQ)
A list of common questions and problems and their solutions.
Release notes for the current release
This describes new features, known bugs, and other limitations.
test-suite Guide
Describes how to compile and run the test-suite benchmarks.
How to build the C, C++, ObjC, and ObjC++ front end
Instructions for building the clang front-end from source.
The LLVM Lexicon
Definition of acronyms, terms and concepts used in LLVM.
How To Add Your Build Configuration To LLVM Buildbot Infrastructure
Instructions for adding new builder to LLVM buildbot master.
YAML I/O
A reference guide for using LLVM’s YAML I/O library.
The Often Misunderstood GEP Instruction
Answers to some very frequent questions about LLVM’s most frequently misunderstood instruction.
Performance Tips for Frontend Authors
A collection of tips for frontend authors on how to generate IR which LLVM is able to effectively optimize.
A guide to Dockerfiles for building LLVM
A reference for using Dockerfiles provided with LLVM.
Building a Distribution of LLVM
A best-practices guide for using LLVM’s CMake build system to package and distribute LLVM-based tools.
Remarks
A reference on the implementation of remarks in LLVM.