Factory.ai

Open-Source Wikis

/

LLVM

/

Subprojects

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) or LLVM_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.

Subprojects – LLVM wiki | Factory