-
Notifications
You must be signed in to change notification settings - Fork 13.3k
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 LLVM used for building rustc in CI for x64 #95171
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
FYI, |
Ok, let's test this bad boy! Could someone do a perf. run please? (actually, let's see if I can do it since being added to wg-compiler-performance) @bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit ce1a59d57650ff3c53576b784fe9b6191ac14164 with merge 67acb7e3ffcc11d67abfd29c390aac629f3c0e97... |
☀️ Try build successful - checks-actions |
Queued 67acb7e3ffcc11d67abfd29c390aac629f3c0e97 with parent 6970f88, future comparison URL. |
Finished benchmarking commit (67acb7e3ffcc11d67abfd29c390aac629f3c0e97): comparison url. Summary: This benchmark run did not return any relevant results. 29 results were found to be statistically significant but too small to be relevant. If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Benchmarking 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 led to changes in compiler perf. @bors rollup=never |
Icounts and cycles do not seem very interesting, but max RSS was improved quite a lot. @Mark-Simulacrum Do you want me to investigate what is the source of this improvement (e.g. by trying to use GCC 7.5 with old LLVM) or should we merge this so that I can continue working on integrating BOLT? |
I think it would be good to know so we know where to poke if it regresses in a future bump like this. But I wouldn't spend more than a few hours or so on it (i.e. not that important to know). |
Ok. Since the new LLVM cannot be built with older GCC (at least not out of the box), the only thing that comes to mind is benchmarking just the GCC update. Let's see what happens. @bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 7aff6125ec092caa3b6d8f395063e033205bc5c5 with merge 171dabe2f735f47079811f53d4168a86f15c7a0c... |
☀️ Try build successful - checks-actions |
Queued 171dabe2f735f47079811f53d4168a86f15c7a0c with parent d2df372, future comparison URL. |
Finished benchmarking commit (171dabe2f735f47079811f53d4168a86f15c7a0c): comparison url. Summary: This benchmark run did not return any relevant results. 16 results were found to be statistically significant but too small to be relevant. If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Benchmarking 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 led to changes in compiler perf. @bors rollup=never |
|
Indeed it seems that not bumping LLVM doesn't provide as much improvement. @Mark-Simulacrum Do you want me to investigate anything else? |
⌛ Testing commit 24c31694dc60956ffacfb539e04bc08cd1deb904 with merge d5bf8c45923c1a067d31cccb77e4f3a1869f5bb8... |
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
It looks like that's the same issue as before? |
Yeah, looks like the fix was not sufficient in some way :( |
Oh, I see. The fix was done on the "library" side of LLD. Therefore we also need to update the embedded version of What's the process here? Should I cherry-pick the backported commit to the embedded LLVM? |
Oh right, that makes sense.
I've merged current upstream release/14.x into our fork, so you can just update the submodule reference here. |
Hmm, it conflicts. I'll rebase then. |
I built LLVM 14.0.2 locally and used it to cross-compile the embedded LLVM to the |
@bors r+ rollup=never |
📌 Commit 4472d4c has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (1388b38): comparison url. Summary:
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. @rustbot label: -perf-regression Footnotes |
Lots of very small icount improvements, but mainly quite nice RSS wins. 🎉 |
LLVM 14 was tagged. It is needed for building BOLT, and it also improves max RSS quite a lot.
GCC was bumped to allow building the new LLVM version. The changes in building LLVM were done to speed up the build a bit by ignoring unused parts and to turn off parts that were problematic to compile even with the bumped GCC.