-
Notifications
You must be signed in to change notification settings - Fork 14.8k
[libcxx] [ci] Update Clang on Windows #152206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Update clang-cl/LLVM to 20.1.8. Update to llvm-mingw 20250709 (with also is built on LLVM 20.1.8). This release of llvm-mingw is the first release to be built with PGO, making it significantly faster for the CI runs (on par with the clang-cl cases); running the current tests in around 1 h rather than 1 h 20 min.
@llvm/pr-subscribers-libcxx @llvm/pr-subscribers-github-workflow Author: Martin Storsjö (mstorsjo) ChangesUpdate clang-cl/LLVM to 20.1.8. Update to llvm-mingw 20250709 (with also is built on LLVM 20.1.8). This release of llvm-mingw is the first release to be built with PGO, making it significantly faster for the CI runs (on par with the clang-cl cases); running the current tests in around 1 h rather than 1 h 20 min. Full diff: https://github.com/llvm/llvm-project/pull/152206.diff 1 Files Affected:
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 41a2aad1da236..4b29c9296bf9d 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -260,11 +260,11 @@ jobs:
- name: Install a current LLVM
if: ${{ matrix.mingw != true }}
run: |
- choco install -y llvm --version=19.1.7 --allow-downgrade
+ choco install -y llvm --version=20.1.8 --allow-downgrade
- name: Install llvm-mingw
if: ${{ matrix.mingw == true }}
run: |
- curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250114/llvm-mingw-20250114-ucrt-x86_64.zip
+ curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250709/llvm-mingw-20250709-ucrt-x86_64.zip
powershell Expand-Archive llvm-mingw*.zip -DestinationPath .
del llvm-mingw*.zip
mv llvm-mingw* c:\llvm-mingw
|
What are you using for perf training? And do you have ThinLTO enabled? I've been thinking about PGO optimizing a toolchain for the Linux builds, but not sure if it's worth the complexity given the normal container image has so many different toolchain versions and in so many different configurations. |
I enabled ThinLTO at the same time as I enabled PGO. On its own, ThinLTO hadn't given large enough improvements for me to bother with enabling it before. (Plus, before I built my unix based toolchains just as a single stage build with the preexisting distro toolchain.) For perf training, I use this: https://github.com/mstorsjo/llvm-mingw/blob/master/pgo-training.make I essentially just compile three different source files; a simple hello world level C++ file (which probably could be skipped), sqlite (for massive code optimization training, but with a C source), and I compile a largish testcase from the libc++ testsuite (to cover C++ template stuff in the compiler frontend). Not sure if I leave much performance on the table by only training on that small number of cases though; in practice this does seem to give quite decent speedups across the line. For each of these three sources, I train compiling both with and without optimizations (as parts of the compiler backend hit entirely different codepaths in the no-optimizations case), and I cross compile these for all architectures involved in my toolchain. (Many PGO setups I've seen only train building for the main host architecture, which leaves other targets unprofiled.) Although the main unusual thing in my setup is that I do profiling only once, and use that single profile PGO'ing the final toolchains for various platforms - see mstorsjo/llvm-mingw#503 for more of my background testing for this setup. |
Update clang-cl/LLVM to 20.1.8. Update to llvm-mingw 20250709 (with also is built on LLVM 20.1.8). This release of llvm-mingw is the first release to be built with PGO, making it significantly faster for the CI runs (on par with the clang-cl cases); running the current tests in around 1 h rather than 1 h 20 min.
Update clang-cl/LLVM to 20.1.8.
Update to llvm-mingw 20250709 (with also is built on LLVM 20.1.8). This release of llvm-mingw is the first release to be built with PGO, making it significantly faster for the CI runs (on par with the clang-cl cases); running the current tests in around 1 h rather than 1 h 20 min.