Skip to content

Conversation

@bd1976bris
Copy link
Collaborator

As the COFF linker is usually invoked independently, update the Clang DTLTO section to show an example. This follows what is done earlier in the document.

Also some minor fixes and improvements:

  • Use generic distributor names to avoid implying anything about what an Incredibuild distributor may or should support.
  • Use subheadings for readability.
  • Correct a mis-cased hyperlink.

As the COFF linker is usually invoked independently, update the
Clang DTLTO section to show an example. This follows what is done
earlier in the document.

Also some minor fixes and improvements:
- Use generic distributor names to avoid implying anything about
  what an Incredibuild distributor may or should support.
- Use subheadings for readability.
- Correct a mis-cased hyperlink.
@llvmbot llvmbot added the clang Clang issues not falling into any other category label Jul 22, 2025
@llvmbot
Copy link
Member

llvmbot commented Jul 22, 2025

@llvm/pr-subscribers-clang

Author: bd1976bris (bd1976bris)

Changes

As the COFF linker is usually invoked independently, update the Clang DTLTO section to show an example. This follows what is done earlier in the document.

Also some minor fixes and improvements:

  • Use generic distributor names to avoid implying anything about what an Incredibuild distributor may or should support.
  • Use subheadings for readability.
  • Correct a mis-cased hyperlink.

Full diff: https://github.com/llvm/llvm-project/pull/149988.diff

1 Files Affected:

  • (modified) clang/docs/ThinLTO.rst (+20-5)
diff --git a/clang/docs/ThinLTO.rst b/clang/docs/ThinLTO.rst
index 569405ff5b2b7..8cb3e0b2b0d11 100644
--- a/clang/docs/ThinLTO.rst
+++ b/clang/docs/ThinLTO.rst
@@ -249,6 +249,9 @@ during the traditional link step.
 
 The implementation is documented here: https://llvm.org/docs/DTLTO.html.
 
+Command-Line Options
+^^^^^^^^^^^^^^^^^^^^
+
 DTLTO requires the LLD linker (``-fuse-ld=lld``).
 
 ``-fthinlto-distributor=<path>``
@@ -260,17 +263,29 @@ DTLTO requires the LLD linker (``-fuse-ld=lld``).
    - Can be specified multiple times to pass multiple options.
    - Multiple options can also be specified by separating them with commas.
 
-Examples:
-   - ``clang -flto=thin -fthinlto-distributor=incredibuild.exe -Xthinlto-distributor=--verbose,--j10 -fuse-ld=lld``
-   - ``clang -flto=thin -fthinlto-distributor=$(which python) -Xthinlto-distributor=incredibuild.py -fuse-ld=lld``
-
 If ``-fthinlto-distributor=`` is specified, Clang supplies the path to a
 compiler to be executed remotely to perform the ThinLTO backend
 compilations. Currently, this is Clang itself.
 
+Usage
+^^^^^
+
+Compilation is unchanged from ThinLTO. DTLTO options need to supplied for the link step:
+
+.. code-block:: console
+
+  % clang -flto=thin -fthinlto-distributor=distribute.sh -Xthinlto-distributor=--verbose,--j10 -fuse-ld=lld file1.o file2.o
+  % clang -flto=thin -fthinlto-distributor=$(which python) -Xthinlto-distributor=distribute.py -fuse-ld=lld file1.o file2.o
+
+When using lld-link:
+
+.. code-block:: console
+
+  % lld-link /out:a.exe file1.obj file2.obj /thinlto-distributor:distribute.exe /thinlto-remote-compiler:${LLVM}\bin\clang.exe /thinlto-distributor-arg:--verbose
+
 Note that currently, DTLTO is only supported in some LLD flavors. Support can
 be added to other LLD flavours in the future.
-See `DTLTO <https://lld.llvm.org/dtlto.html>`_ for more information.
+See `DTLTO <https://lld.llvm.org/DTLTO.html>`_ for more information.
 
 More Information
 ================

@bd1976bris

This comment was marked as off-topic.

@bd1976bris bd1976bris requested a review from tru July 23, 2025 07:04
@bd1976bris bd1976bris added this to the LLVM 21.x Release milestone Aug 1, 2025
@github-project-automation github-project-automation bot moved this to Needs Triage in LLVM Release Status Aug 1, 2025
@bd1976bris bd1976bris merged commit c129d65 into llvm:main Aug 1, 2025
12 checks passed
@github-project-automation github-project-automation bot moved this from Needs Triage to Done in LLVM Release Status Aug 1, 2025
@bd1976bris
Copy link
Collaborator Author

/cherry-pick c129d65

@llvmbot
Copy link
Member

llvmbot commented Aug 1, 2025

/pull-request #151670

tru pushed a commit to llvmbot/llvm-project that referenced this pull request Aug 5, 2025
As the COFF linker is usually invoked independently, update the Clang
DTLTO section to show an example. This follows what is done earlier in
the document.

Also some minor fixes and improvements:
- Use generic distributor names to avoid implying anything about what an
Incredibuild distributor may or should support.
- Use subheadings for readability.
- Correct a mis-cased hyperlink.

(cherry picked from commit c129d65)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clang Clang issues not falling into any other category

Projects

Development

Successfully merging this pull request may close these issues.

4 participants