llvm/llvm-project
Subprojects
This section is a per-subproject deep dive. Each entry describes what the subproject is for, where its source lives, the most important pieces inside it, and where to start if you want to modify it.
The repository's own vocabulary calls these directories "subprojects" — the term is used in llvm/CMakeLists.txt (LLVM_ENABLE_PROJECTS), in release notes, and in the maintainers files. We use the same term here.
Subproject map
| Subproject | Page | Role |
|---|---|---|
llvm |
llvm | Core IR, optimizer, codegen, targets, support libraries |
clang |
clang | C / C++ / Objective-C front end |
clang-tools-extra |
clang-tools-extra | clangd, clang-tidy, clang-format, clang-doc, etc. |
lld |
lld | Cross-platform linker |
lldb |
lldb | Debugger |
mlir |
mlir | Multi-Level IR framework |
flang |
flang | Fortran front end |
flang-rt |
flang-rt | Fortran runtime |
libc |
libc | LLVM's C standard library |
libcxx |
libcxx | libc++ — the C++ standard library |
libcxxabi |
libcxxabi | C++ ABI runtime |
libunwind |
libunwind | Itanium-ABI stack-unwinding library |
polly |
polly | Polyhedral loop optimizer |
openmp |
openmp | OpenMP runtimes |
compiler-rt |
compiler-rt | Compiler builtins, sanitizers, profile runtimes |
bolt |
bolt | Post-link binary optimizer |
offload |
offload | Accelerator-offload runtime |
libsycl |
libsycl | SYCL 2020 runtime |
libclc |
libclc | OpenCL C library |
orc-rt |
orc-rt | ORC JIT runtime support |
llvm-libgcc |
llvm-libgcc | LLVM-built libgcc-compatible shim |
cross-project-tests |
cross-project-tests | Cross-subproject integration tests |
Naming pattern
The standard top-level directory layout for a subproject is:
<subproject>/
├── CMakeLists.txt
├── README.md or README.txt
├── Maintainers.md (if applicable)
├── docs/ # User-facing documentation
├── include/ # Public headers
├── lib/ # Implementation
├── test/ # lit regression tests
├── unittests/ # Google-Test unit tests (where applicable)
├── tools/ # Driver executables
├── utils/ # Helper tools (TableGen backends, scripts)
└── examples/ # Standalone examples (where applicable)Most pages in this section assume that layout and only call it out when the subproject deviates.
Cross-cutting build/test conventions
Every subproject:
- Builds via CMake when its name appears in
LLVM_ENABLE_PROJECTS(compilers/tools) orLLVM_ENABLE_RUNTIMES(runtime libraries). - Provides a
check-<name>target that runs its lit suite and unit tests. - Lives by the same coding standards (
llvm/docs/CodingStandards.rst). - Is reviewed under the same developer policy (
llvm/docs/DeveloperPolicy.rst).
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.
Previous
Tooling
Next
llvm