User Guides
- How To Build On ARM
- Notes on building and testing LLVM/Clang on ARM.
- Notes on building LLVM/Clang with PGO.
- How To Cross-Compile Clang/LLVM using Clang/LLVM
- Notes on cross-building and testing LLVM/Clang.
- Instructions for building the clang front-end from source.
- LLVM Code Coverage Mapping Format
- This describes the format and encoding used for LLVM’s code coverage mapping.
- A description of the verification tool for Control Flow Integrity.
- Building a Distribution of LLVM
- A best-practices guide for using LLVM’s CMake build system to package anddistribute LLVM-based tools.
- An addendum to the main Getting Started guide for those using the CMakebuild system.
- A reference for using Dockerfiles provided with LLVM.
- This document describes the LLVM Support Library () andhow to keep LLVM source code portable
- Writing an LLVM Pass
- Information on how to write LLVM transformations and analyses.
- A list of optimizations and analyses implemented in LLVM.
- Stack Safety Analysis
- This document describes the design of the stack safety analysis of localvariables.
- Describes functions merging optimization.
- LLVM Alias Analysis Infrastructure
- Information on how to write a new alias analysis implementation or how touse existing analyses.
- Information about the MemorySSA utility in LLVM, as well as how to use it.
- LLVM Loop Terminology (and Canonical Forms)
- A document describing Loops and associated terms as used in LLVM.
- This document describes the current status of vectorization in LLVM.
- LLVM Link Time Optimization: Design and Implementation
- This document describes the interface between LLVM intermodular optimizerand the linker and its design
- How to build your programs with link-time optimization on Linux.
- Remarks
- A reference on the implementation of remarks in LLVM.
- Writing an LLVM Backend
- Information on how to write LLVM backends for machine targets.
- The design and implementation of the LLVM code generator. Useful if you areworking on retargetting LLVM to a new architecture, designing a new codegenpass, or enhancing existing components.
- TableGen
- Describes the TableGen tool, which is used heavily by the LLVM codegenerator.
- Describes the inner workings of MCJIT execution engine.
- Debugging JIT-ed Code With GDB
- How to debug JITed code with GDB.
How to debug JITed code with GDB.
- Provides information on using the command line parsing library.
- Extending LLVM: Adding instructions, intrinsics, types, etc.
- Look here to see how to add instructions and intrinsics to LLVM.
- Gives the steps necessary when adding a new constrained math intrinsicto LLVM.
- How to Cross Compile Compiler-rt Builtins For Arm
- Notes on cross-building and testing the compiler-rt builtins for Arm.
- LLVM’s support for generating NEON instructions on big endian ARM targets issomewhat nonintuitive. This document explains the implementation and rationale.
- Compiling CUDA with clang
- LLVM support for CUDA.
- This document describes using the NVPTX backend to compile GPU kernels.
- This document describes using the AMDGPU backend to compile GPU kernels.