[llvm] [docs] Remove stale multi-stage PGO workflow from AdvancedBuilds (PR #173575)

via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 25 10:01:43 PST 2025


https://github.com/sanjiti-gill created https://github.com/llvm/llvm-project/pull/173575

The multi-stage PGO section in AdvancedBuilds.rst documents targets that are no
longer generated by current LLVM builds, including
stage2-instrumented-generate-profdata.

This change removes the obsolete step-by-step workflow and adds a note explaining
that the detailed instructions are out of date.

Fixes #53491

>From 1112e623b0ff1fe813753a5660fc1daf3b3cc48e Mon Sep 17 00:00:00 2001
From: Sanjiti Gill <sanjitigill at Sanjitis-MacBook-Air.local>
Date: Wed, 24 Dec 2025 11:37:30 +0530
Subject: [PATCH 1/2] [docs] Fix vendor group links in developer policy

---
 llvm/docs/DeveloperPolicy.rst | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/llvm/docs/DeveloperPolicy.rst b/llvm/docs/DeveloperPolicy.rst
index a1c8cf77b91ff..7b944b6743567 100644
--- a/llvm/docs/DeveloperPolicy.rst
+++ b/llvm/docs/DeveloperPolicy.rst
@@ -685,14 +685,13 @@ awareness of. For such changes, the following should be done:
   "vendors" github team to the review for their awareness. The purpose of these
   groups is to give vendors early notice that potentially disruptive changes
   are being considered but have not yet been accepted. Vendors can give early
-  testing feedback on the changes to alert us to unacceptable breakages. The
-  current list of vendor groups is:
+  testing feedback on the changes to alert us to unacceptable breakages. 
+  The current list of vendor groups includes Clang and libc++ vendors.
+  
+  These vendor groups are managed by the LLVM project administrators.
+  Interested vendors should contact the LLVM project to request access,
+  rather than joining directly via GitHub.
 
-  * `Clang vendors <https://github.com/orgs/llvm/teams/clang-vendors>`_
-  * `libc++ vendors <https://github.com/orgs/llvm/teams/libcxx-vendors>`_
-
-  People interested in joining the vendors group can do so by clicking the
-  "Join team" button on the linked github pages above.
 
 * When committing the change to the repository, add appropriate information
   about the potentially breaking changes to the ``Potentially Breaking Changes``

>From cf6ec27ccc88e58aad625e5aa022b204dcc19335 Mon Sep 17 00:00:00 2001
From: Sanjiti Gill <sanjitigill at Sanjitis-MacBook-Air.local>
Date: Thu, 25 Dec 2025 23:27:23 +0530
Subject: [PATCH 2/2] [docs] Remove stale multi-stage PGO workflow from
 AdvancedBuilds

---
 llvm/docs/AdvancedBuilds.rst | 55 ++++--------------------------------
 1 file changed, 5 insertions(+), 50 deletions(-)

diff --git a/llvm/docs/AdvancedBuilds.rst b/llvm/docs/AdvancedBuilds.rst
index 9e25355365a81..aff5be1f35788 100644
--- a/llvm/docs/AdvancedBuilds.rst
+++ b/llvm/docs/AdvancedBuilds.rst
@@ -168,32 +168,6 @@ additional build targets to build before building the external project.  The
 LLVM Test Suite requires compiler-rt to build, so we need to add the
 `runtimes` target as a dependency.
 
-After configuration, building the stage2-instrumented-generate-profdata target
-will automatically build the stage1 compiler, build the instrumented compiler
-with the stage1 compiler, and then run the instrumented compiler against the
-perf training data:
-
-.. code-block:: console
-
-  $ ninja stage2-instrumented-generate-profdata
-
-If you let that run for a few hours or so, it will place a profdata file in your
-build directory. This takes a really long time because it builds clang twice,
-and you *must* have compiler-rt in your build tree.
-
-This process uses any source files under the perf-training directory as training
-data as long as the source files are marked up with LIT-style ``RUN`` lines.
-
-After it finishes you can use :code:`find . -name clang.profdata` to find it, but it
-should be at a path something like:
-
-.. code-block:: console
-
-  <build dir>/tools/clang/stage2-instrumented-bins/utils/perf-training/clang.profdata
-
-You can feed that file into the ``LLVM_PROFDATA_FILE`` option when you build your
-optimized compiler.
-
 It may be necessary to build additional targets before running perf training, such as
 builtins and runtime libraries. You can use the :code:`CLANG_PGO_TRAINING_DEPS` CMake
 variable for that purpose:
@@ -206,32 +180,13 @@ The PGO cache has a slightly different stage naming scheme than other
 multi-stage builds. It generates three stages: stage1, stage2-instrumented, and
 stage2. Both of the stage2 builds are built using the stage1 compiler.
 
-The PGO cache generates the following additional targets:
-
-**stage2-instrumented**
-  Builds a stage1 compiler, runtime, and required tools (llvm-config,
-  llvm-profdata) then uses that compiler to build an instrumented stage2 compiler.
-
-**stage2-instrumented-generate-profdata**
-  Depends on stage2-instrumented and will use the instrumented compiler to
-  generate profdata based on the training files in ``clang/utils/perf-training``
-
-**stage2**
-  Depends on stage2-instrumented-generate-profdata and will use the stage1
-  compiler with the stage2 profdata to build a PGO-optimized compiler.
-
-**stage2-check-llvm**
-  Depends on stage2 and runs check-llvm using the stage2 compiler.
-
-**stage2-check-clang**
-  Depends on stage2 and runs check-clang using the stage2 compiler.
+.. note::
 
-**stage2-check-all**
-  Depends on stage2 and runs check-all using the stage2 compiler.
+   The detailed multi-stage PGO workflow previously documented here is no longer
+   up to date. The ``stage2-instrumented-generate-profdata`` target referenced in
+   older documentation is no longer generated by current LLVM builds. This section
+   will be updated once a new recommended workflow is documented.
 
-**stage2-test-suite**
-  Depends on stage2 and runs the test-suite using the stage2 compiler (requires
-  in-tree test-suite).
 
 BOLT
 ====



More information about the llvm-commits mailing list