-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Update to LLVM 20 #135763
base: master
Are you sure you want to change the base?
Update to LLVM 20 #135763
Conversation
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
Update to LLVM 20 r? `@ghost`
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (79efb5f): comparison URL. Overall result: ❌✅ regressions and improvements - please read the text belowBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never Instruction countThis is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
Max RSS (memory usage)Results (primary -1.5%, secondary -1.3%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary -1.8%, secondary -5.0%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeResults (primary -1.2%, secondary -3.0%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Bootstrap: 765.63s -> 749.726s (-2.08%) |
This comment has been minimized.
This comment has been minimized.
The compiler-rt build (via compiler-builtins) for aarch64-unknown-uefi on test-various fails with:
The compilation command is:
Related upstream change: llvm/llvm-project#116706 |
What's wrong with version? |
Testing host-aarch64. @bors try |
Update to LLVM 20 LLVM 20 GA is scheduled for March 11th. Rust 1.86 will be stable on April 3rd. * [x] rust-lang#135764 * [x] rust-lang#136134 * [x] rust-lang/compiler-builtins#752 * [ ] Update compiler-builtins Tested: arm-android, test-various, x86_64-rust-for-linux, x86_64-fuchsia, dist-various-1, dist-various-2, dist-s390x-linux, dist-riscv64-linux, dist-loongarch64-musl try-job: aarch64-gnu try-job: aarch64-gnu-debug try-job: dist-aarch64-linux
☀️ Try build successful - checks-actions |
Testing macos. @bors try |
Update to LLVM 20 LLVM 20 GA is scheduled for March 11th. Rust 1.86 will be stable on April 3rd. * [x] rust-lang#135764 * [x] rust-lang#136134 * [x] rust-lang/compiler-builtins#752 * [ ] Update compiler-builtins Tested: arm-android, test-various, x86_64-rust-for-linux, x86_64-fuchsia, dist-various-1, dist-various-2, dist-s390x-linux, dist-riscv64-linux, dist-loongarch64-musl try-job: dist-x86_64-apple try-job: dist-apple-various try-job: x86_64-apple-1 try-job: x86_64-apple-2 try-job: dist-aarch64-apple try-job: aarch64-apple
☀️ Try build successful - checks-actions |
Testing mingw. @bors try |
Update to LLVM 20 LLVM 20 GA is scheduled for March 11th. Rust 1.86 will be stable on April 3rd. * [x] rust-lang#135764 * [x] rust-lang#136134 * [x] rust-lang/compiler-builtins#752 * [ ] Update compiler-builtins Tested: arm-android, test-various, x86_64-rust-for-linux, x86_64-fuchsia, dist-various-1, dist-various-2, dist-s390x-linux, dist-riscv64-linux, dist-loongarch64-musl try-job: i686-mingw try-job: x86_64-mingw-1 try-job: x86_64-mingw-2 try-job: dist-i686-mingw try-job: dist-x86_64-mingw
I don't think windows-2025 is going to make a difference here. I'm seeing max-rss of ~2G on that TableGen invocation locally, so it does seem plausible that this could go OOM on i686, especially if parallelism is involved. Testing a patch to cut memory usage down a bit, though it's only by about 100MB... @bors retry |
oh right, because i686 can only use a maximum of 4GB RAM. 💡 |
@bors try |
Update to LLVM 20 LLVM 20 GA is scheduled for March 11th. Rust 1.86 will be stable on April 3rd. * [x] rust-lang#135764 * [x] rust-lang#136134 * [x] rust-lang/compiler-builtins#752 * [ ] Update compiler-builtins Tested: host-x86_64, host-aarch64 try-job: i686-mingw try-job: x86_64-mingw-1 try-job: x86_64-mingw-2 try-job: dist-i686-mingw try-job: dist-x86_64-mingw
Actually, it's half that size unless the program is linked with a special flag (the codebase must also support this). So, with 2 GiB Nikita has observed, we are right on the edge. The same issue can manifest on any 32-bit Windows system (including those using MSVC). Note that it is LLVM's tblgen that fails, not GCC or ld.bfd. LLVM generally does not cope well with 32-bit hosts, but so far, the problem has mostly been due to mmap having insufficient address space. One solution is cross-compiling with a 64-bit toolchain, but that requires changes to the entire build process. |
☀️ Try build successful - checks-actions |
Looks like that was enough. Now testing msvc... @bors try |
Update to LLVM 20 LLVM 20 GA is scheduled for March 11th. Rust 1.86 will be stable on April 3rd. * [x] rust-lang#135764 * [x] rust-lang#136134 * [x] rust-lang/compiler-builtins#752 * [ ] llvm/llvm-project#125287 * [ ] Update compiler-builtins Tested: host-x86_64, host-aarch64, mingw try-job: x86_64-msvc-1 try-job: x86_64-msvc-2 try-job: i686-msvc-1 try-job: i686-msvc-2 try-job: dist-x86_64-msvc try-job: dist-i686-msvc try-job: dist-aarch64-msvc
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
Looks like the embedded command line arguments in https://github.com/rust-lang/rust/blob/master/tests/run-make/pdb-buildinfo-cl-cmd/filecheck.txt are no longer quoted. I think this is because llvm/llvm-project@e190d07 moved the command line printing to the frontend, but the Rust adjustment in ad0eceb just prints the arguments directly, instead of going through llvm::sys::printArg. |
@bors r- note that |
The flag can also be set after linking via |
The formatting of the command line arguments has been moved to the frontend in: llvm/llvm-project@e190d07 However, the Rust logic introduced in rust-lang@ad0eceb did not replicate the previous argument quoting behavior.
@bors try |
Update to LLVM 20 LLVM 20 GA is scheduled for March 11th. Rust 1.86 will be stable on April 3rd. * [x] rust-lang#135764 * [x] rust-lang#136134 * [x] rust-lang/compiler-builtins#752 * [ ] llvm/llvm-project#125287 * [ ] Update compiler-builtins (blocked on rust-lang#135501) Tested: host-x86_64, host-aarch64, apple, mingw try-job: x86_64-msvc-1 try-job: i686-msvc-1 try-job: dist-aarch64-msvc try-job: x86_64-msvc-ext1 try-job: x86_64-msvc-ext2 try-job: x86_64-msvc-ext3
Editbin is not the most manageable approach because you would have to modify LLVM's build system (notice it failed halfway through the build), but you can append linker flags to all Windows platforms. I am not familiar enough with LLVM code to judge whether something would break, but yes, that might be another option to try. |
☀️ Try build successful - checks-actions |
I wound up just doing the revert to unblock this, should be done as of #136537 |
LLVM 20 GA is scheduled for March 11th. Rust 1.87 will be stable on May 15th.
compiler-builtins
to 0.1.145 #136537Tested: host-x86_64, host-aarch64, apple, mingw, msvc