llvm/llvm-project
LLVM project overview
The llvm/llvm-project monorepo holds the source for LLVM, an umbrella project that produces a modular compiler and toolchain. The repository contains the LLVM core libraries, the Clang C/C++/Objective-C compiler, the LLD linker, the LLDB debugger, the MLIR multi-level IR framework, the Flang Fortran front end, runtime libraries (libc, libc++, compiler-rt, libunwind, OpenMP, offload), and several specialized subprojects (BOLT, Polly, libclc, libsycl, and more).
What lives here
The codebase is organized as a set of sibling top-level directories, each one a self-contained subproject that builds and tests independently but shares the LLVM build system, coding style, and review process. The repository is one of the largest open-source C++ codebases in existence and is the upstream for nearly every LLVM-derived toolchain in industry.
| Subproject | Purpose |
|---|---|
llvm/ |
LLVM core: IR, optimizer passes, codegen, target backends, support libs |
clang/ |
Clang front end for C, C++, Objective-C, Objective-C++, OpenCL |
clang-tools-extra/ |
clangd, clang-tidy, clang-format, clang-doc, and other Clang-based tools |
lld/ |
The LLD linker (ELF, COFF, Mach-O, WebAssembly, MinGW) |
lldb/ |
The LLDB debugger |
mlir/ |
Multi-Level IR framework for domain-specific compilers |
flang/ |
Flang Fortran front end |
flang-rt/ |
Flang runtime library |
libc/ |
LLVM's retargetable C standard library |
libcxx/ |
libc++ — the LLVM C++ standard library |
libcxxabi/ |
libc++abi — the C++ ABI runtime that pairs with libc++ |
libunwind/ |
Itanium ABI stack-unwinding library |
polly/ |
Polyhedral loop optimizer |
openmp/ |
OpenMP runtime libraries |
compiler-rt/ |
Compiler builtins, sanitizer runtimes, profile runtimes |
bolt/ |
Post-link binary optimizer |
offload/ |
LLVM/Offload runtime for accelerators (GPUs, etc.) |
libsycl/ |
SYCL 2020 runtime library |
libclc/ |
OpenCL C library implementation |
orc-rt/ |
ORC JIT runtime support |
llvm-libgcc/ |
LLVM-built libgcc-compatible shim |
cross-project-tests/ |
Tests that span multiple subprojects |
Who this wiki is for
This wiki is written for engineers who already build and ship compilers but are new to this specific monorepo, plus contributors who want to know where a particular concern lives without spelunking through 500K+ commits. It is not a replacement for the canonical LLVM documentation, which is generated from llvm/docs/, clang/docs/, etc. Use this wiki for orientation; use the official docs for API-level reference.
Quick links
- Architecture — how the pieces fit together
- Getting started — build, test, run
- Glossary — LLVM-specific vocabulary
- Subprojects — per-subproject deep dives
- How to contribute — workflow and conventions
Project facts
- Repository:
github.com/llvm/llvm-project - License: Apache 2.0 with LLVM Exceptions
- Primary languages: C++ (most subprojects), C (libc, compiler-rt), Python (utilities, tests), CMake, TableGen, MLIR, Fortran
- Communication: Discourse forums, Discord, office hours
- Code of conduct: llvm.org/docs/CodeOfConduct.html
- Bug tracker: GitHub issues
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.
Next
Architecture