[llvm-branch-commits] [llvm] 5bebd32 - [DOC][DTLTO] Update DTLTO documentation for the LLVM 22 release (#177368)
Cullen Rhodes via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Feb 2 01:04:21 PST 2026
Author: Ben Dunbobbin
Date: 2026-02-02T09:04:13Z
New Revision: 5bebd32e87ecf896dbad0c9b73d168b4e9da5d4d
URL: https://github.com/llvm/llvm-project/commit/5bebd32e87ecf896dbad0c9b73d168b4e9da5d4d
DIFF: https://github.com/llvm/llvm-project/commit/5bebd32e87ecf896dbad0c9b73d168b4e9da5d4d.diff
LOG: [DOC][DTLTO] Update DTLTO documentation for the LLVM 22 release (#177368)
This change updates the documentation to reflect work completed during
the LLVM 22 timeframe, including support for the ThinLTO cache and
static libraries/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
(cherry picked from commit 88478ab495f27f2cb798d4bf6912fe7cf4872997)
Added:
Modified:
llvm/docs/DTLTO.rst
Removed:
################################################################################
diff --git a/llvm/docs/DTLTO.rst b/llvm/docs/DTLTO.rst
index 70e26efed897e..c4df0e15977ef 100644
--- a/llvm/docs/DTLTO.rst
+++ b/llvm/docs/DTLTO.rst
@@ -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. To facilitate this,
+DTLTO supports common in-process ThinLTO features, such as caching. Bitcode
+objects in static libraries/archives (e.g. libc.a) are also handled
+transparently by temporarily extracting referenced objects for distribution;
+when thin archives are used, no extraction is required.
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
@@ -165,17 +169,18 @@ following backend compilation commands with maximum parallelism:
/usr/bin/clang -O2 -c -fprofile-sample-use=my.prof t2.o -fthinlto-index=t2.o.thinlto.bc -o t2.native.o \
-fproc-stat-report=t2.stats.txt
-TODOs
------
+Limitations
+-----------
-The following features are planned for DTLTO but not yet implemented:
+The following features are not implemented at this time:
-- 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.
+- Support for more CodeGen configurations in the LTO backend; only a very
+ limited set is supported currently, e.g. support for basic block sections is
+ not currently available.
+- Support for sharing ThinLTO cache entries with in-process ThinLTO entries.
+ This is not currently supported because identical code generation is not yet
+ guaranteed.
Constraints
-----------
@@ -183,4 +188,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-branch-commits
mailing list