[llvm] [DOC][DTLTO] Update DTLTO documentation for the LLVM 22 release (PR #177368)
Ben Dunbobbin via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 22 06:24:38 PST 2026
https://github.com/bd1976bris created https://github.com/llvm/llvm-project/pull/177368
This change updates the documentation to reflect work completed during the LLVM 22 timeframe, including support for the ThinLTO cache and static libraries and archives.
It also clarifies that the goal of DTLTO is to support distribution of ThinLTO backend compilations for any in-process ThinLTO invocation.
SIE Internal Tracker: TOOLCHAIN-21016
>From 1644c7bd6531d2897965cb479b9c5ffd15b1899a Mon Sep 17 00:00:00 2001
From: Ben <ben.dunbobbin at sony.com>
Date: Thu, 22 Jan 2026 14:17:57 +0000
Subject: [PATCH] [DOC][DTLTO] Update DTLTO documentation for the LLVM 22
release
This change updates the documentation to reflect work completed during
the LLVM 22 timeframe, including support for the ThinLTO cache and
static libraries and archives.
It also clarifies that the goal of DTLTO is to support distribution of
ThinLTO backend compilations for any in-process ThinLTO invocation.
SIE Internal Tracker: TOOLCHAIN-21016
---
llvm/docs/DTLTO.rst | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/llvm/docs/DTLTO.rst b/llvm/docs/DTLTO.rst
index 70e26efed897e..04cb4935952c7 100644
--- a/llvm/docs/DTLTO.rst
+++ b/llvm/docs/DTLTO.rst
@@ -11,7 +11,7 @@ DTLTO
Distributed ThinLTO (DTLTO)
===========================
-Distributed ThinLTO (DTLTO) enables the distribution of backend ThinLTO
+Distributed ThinLTO (DTLTO) enables the distribution of ThinLTO backend
compilations via external distribution systems, such as Incredibuild, during the
link step.
@@ -24,7 +24,11 @@ here:
Using the *separate thin-link* approach requires a build system capable of
handling the dynamic dependencies specified in the individual summary index
files, such as Bazel. DTLTO removes this requirement, allowing it to be used
-with any build process that supports in-process ThinLTO.
+with any build process that supports in-process ThinLTO. Note that, to
+facilitate this, DTLTO aims to support all in-process ThinLTO features, such as
+caching (for incremental builds), and aims to support all linker input file
+types, including static libraries/archives (e.g. libc.a), rather than being
+limited to plain bitcode files.
The following commands show the steps used for the *separate thin-link*
approach for a basic example:
@@ -66,7 +70,7 @@ such as the following can be used:
.. code-block:: console
- clang -flto=thin -fuse-ld=lld -O2 t1.o t2.o -fthinlto-distributor=$(which python3) \
+ clang -flto=thin -fuse-ld=lld -O2 t1.o t2.o libt3.a -fthinlto-distributor=$(which python3) \
-Xthinlto-distributor=$LLVMSRC/llvm/utils/dtlto/local.py
Distributors
@@ -170,9 +174,7 @@ TODOs
The following features are planned for DTLTO but not yet implemented:
-- Support for the ThinLTO in-process cache.
- Support for platforms other than ELF and COFF.
-- Support for archives with bitcode members.
- Support for more LTO configurations; only a very limited set of LTO
configurations is supported currently, e.g., support for basic block sections
is not currently available.
@@ -183,4 +185,3 @@ Constraints
- Matching versions of Clang and LLD should be used.
- The distributor used must support the JSON schema generated by the version of
LLD in use.
-
More information about the llvm-commits
mailing list