[llvm] workflows/release-binaries: Disable LTO and PGO for PR testing on Windows ARM (PR #216198)
Tom Stellard via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 15 15:10:10 PDT 2026
https://github.com/tstellar updated https://github.com/llvm/llvm-project/pull/216198
>From a27ef945111a3235d9841d3bd25ec13c5a587119 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 13 Aug 2026 15:06:25 -0700
Subject: [PATCH 1/6] workflows/release-binaries: Disable LTO and PGO for PR
testing on Windows ARM
Otherwise they will run into the 6 hour timeout and fail every time.
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 36c04523fda06..ee450cdf0498c 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -197,7 +197,7 @@ jobs:
# These runners cannot build the full release package faster than
# the 6 hours timeout limit, so we need to use a configuration
# that builds more quickly.
- macos-14)
+ macos-14 | windows-11-arm)
bootstrap_prefix="BOOTSTRAP"
target_cmake_flags="$target_cmake_flags -DLLVM_RELEASE_ENABLE_LTO=OFF -DLLVM_RELEASE_ENABLE_PGO=OFF"
;;
>From 9e263f9bbd1469fabb1a150c50e1bb5fdae3b17a Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 13 Aug 2026 15:10:51 -0700
Subject: [PATCH 2/6] Revert "workflows/release-binaries: Disable LTO and PGO
for PR testing on Windows ARM"
This reverts commit a27ef945111a3235d9841d3bd25ec13c5a587119.
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index ee450cdf0498c..36c04523fda06 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -197,7 +197,7 @@ jobs:
# These runners cannot build the full release package faster than
# the 6 hours timeout limit, so we need to use a configuration
# that builds more quickly.
- macos-14 | windows-11-arm)
+ macos-14)
bootstrap_prefix="BOOTSTRAP"
target_cmake_flags="$target_cmake_flags -DLLVM_RELEASE_ENABLE_LTO=OFF -DLLVM_RELEASE_ENABLE_PGO=OFF"
;;
>From 6538f7552413c1861a009748cb75ebb02f2e1ec3 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 12:05:54 -0700
Subject: [PATCH 3/6] Add --skip-pgo flag to build_llvm_release
---
.github/workflows/release-binaries.yml | 3 ++-
llvm/utils/release/build_llvm_release.bat | 7 +++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 36c04523fda06..df62f799f2380 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -289,10 +289,11 @@ jobs:
env:
INPUTS_RUNS_ON: ${{ inputs.runs-on }}
LLVM_VERSION: ${{ needs.prepare.outputs.release-version }}
+ EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--disable-pgo', '') }}
run: |
subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
- .\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout
+ .\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
if ($env:INPUTS_RUNS_ON -eq "windows-11-arm") {
$zstd = (Get-ChildItem -Recurse -Filter "zstd.exe" | Select-Object -First 1).fullName
mv $zstd $env:GITHUB_WORKSPACE
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index f15065970a167..2e11452619ea2 100644
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -10,7 +10,7 @@ goto begin
echo Script for building the LLVM installer on Windows,
echo used for the releases at https://github.com/llvm/llvm-project/releases
echo.
-echo Usage: build_llvm_release.bat --version ^<version^> [--x86,--x64, --arm64] [--skip-checkout] [--local-python] [--force-msvc]
+echo Usage: build_llvm_release.bat --version ^<version^> [--x86,--x64, --arm64] [--skip-checkout] [--local-python] [--force-msvc] [--disable-pgo]
echo.
echo Options:
echo --version: [required] version to build
@@ -40,6 +40,7 @@ set arm64=
set skip-checkout=
set local-python=
set force-msvc=
+set disable-pgo=
call :parse_args %*
if "%help%" NEQ "" goto usage
@@ -353,7 +354,9 @@ set cmake_flags=%all_cmake_flags:\=/%
mkdir build_%arch%
cd build_%arch%
-call :do_generate_profile || exit /b 1
+if "%disable-pgo%" == "true" (
+ call :do_generate_profile || exit /b 1
+)
cmake -GNinja %cmake_flags% ^
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;flang;mlir" ^
%common_lldb_flags% ^
>From 169b295662dd3f566d7f3d80077b9d108d5d9760 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 12:09:27 -0700
Subject: [PATCH 4/6] Debug
---
.github/workflows/release-binaries-all.yml | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.github/workflows/release-binaries-all.yml b/.github/workflows/release-binaries-all.yml
index 862300a8118e5..ccbb329966bc7 100644
--- a/.github/workflows/release-binaries-all.yml
+++ b/.github/workflows/release-binaries-all.yml
@@ -108,10 +108,6 @@ jobs:
# We use ubuntu-22.04 rather than the latest version to make the built
# binaries more portable (eg functional aginast older glibc).
runs-on:
- - ubuntu-22.04
- - ubuntu-22.04-arm
- - macos-14
- - windows-2022
- windows-11-arm
uses: ./.github/workflows/release-binaries.yml
>From d171528852f8a1b7e3c4d82726b388a51c11e785 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 12:20:00 -0700
Subject: [PATCH 5/6] Fix
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index df62f799f2380..2c9442f62ebde 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -293,7 +293,7 @@ jobs:
run: |
subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
- .\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
+ .\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
if ($env:INPUTS_RUNS_ON -eq "windows-11-arm") {
$zstd = (Get-ChildItem -Recurse -Filter "zstd.exe" | Select-Object -First 1).fullName
mv $zstd $env:GITHUB_WORKSPACE
>From 7291c0cae515e6dee098a26e3b2281e9ea07ab3f Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 15:09:43 -0700
Subject: [PATCH 6/6] Fix
---
llvm/utils/release/build_llvm_release.bat | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index 2e11452619ea2..b1c21478f210e 100644
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -354,7 +354,7 @@ set cmake_flags=%all_cmake_flags:\=/%
mkdir build_%arch%
cd build_%arch%
-if "%disable-pgo%" == "true" (
+if "%disable-pgo%" != "true" (
call :do_generate_profile || exit /b 1
)
cmake -GNinja %cmake_flags% ^
More information about the llvm-commits
mailing list