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.

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.
LLVM’s Analysis and Transform Passes
A list of optimizations and analyses implemented in LLVM.
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.
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.