-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
feat: Update hashbrown to instantiate less llvm IR #77566
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
Prompted by rust-lang/hashbrown#205 (comment), this could use a perf run. |
@bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit c2c7c50ccb799451b06fb30a210bea2eb16ab059 with merge 4a35079c2dbc0f04dbb93febe7bf6f980ffb6a59... |
d8fa684
to
534f867
Compare
Had to update the the git dependency to point to the branch as it should, and fix the branch as hashbrown's ci didn't test the raw feature which rustc uses. |
@bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit 534f867a487cbdad97a1dd97cf7552b96e87016a with merge e035000c1a2a0b031b1862e7b9b1d8f59efd7e7a... |
☀️ Try build successful - checks-actions, checks-azure |
Queued e035000c1a2a0b031b1862e7b9b1d8f59efd7e7a with parent 62bfcfd, future comparison URL. |
Nice work! Here are some measurements of this PR. Sum of hashbrown lines before: 1 615 640 The total difference is 589 850 lines (-2.9%). Here I filtered for hashbrown:
|
Finished benchmarking try commit (e035000c1a2a0b031b1862e7b9b1d8f59efd7e7a): comparison url. Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up. @bors rollup=never |
Improvements in compiling rustc itself but there does seem to be a slight loss in performance when using the hashmap itself (I assume). I suspect it is the iteration code that got the slowdown so I will see if I can't tweak it a bit. |
7b92a13
to
bf69d26
Compare
Perf should be more stable now, another perf would be nice! Not sure what is going on with the debug info providers yet, the changes in hashbrown forces an extra |
@bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit bf69d26632b6015f2b390f69cb2fc018341c571e with merge ce08d801f6fb1e045de36dbd8733c13eda8c0e37... |
☀️ Try build successful - checks-actions, checks-azure |
Queued ce08d801f6fb1e045de36dbd8733c13eda8c0e37 with parent 08e2d46, future comparison URL. |
⌛ Testing commit 81c9a02 with merge 547d71f63137d7c0fc97a5b627596cbfec5c3720... |
A job failed! Check out the build log: (web) (plain) Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
@bors retry |
☀️ Test successful - checks-actions |
@Marwes @Amanieu As you saw in your perf runs, this regresses performance slightly in the |
The iteration thing was a red herring, so I can't quite say why it would regress in that particular case. |
The pretty-printer was broken in rust-lang#77566 after updating hashbrown to 0.11.0. Note that the corresponding GDB pretty-printer was updated properly.
The corresponding PRs in rustc: rust-lang/rust#77566 rust-lang/rust#83920
7059: Update HashMap/HashSet pretty-printers to Rust 1.52 r=Undin a=ortem The corresponding PRs in rustc: rust-lang/rust#77566 rust-lang/rust#83920 Fixes #7045 changelog: Update LLDB/GDB pretty-printers to render `HashMap`/`HashSet` on Rust 1.52 or higher Co-authored-by: ortem <ortem00@gmail.com>
…er-1.52, r=pnkfelix Fix HashMap/HashSet LLDB pretty-printer after hashbrown 0.11.0 The pretty-printer was broken in rust-lang#77566 after updating hashbrown to 0.11.0. Note that the corresponding GDB pretty-printer was updated properly. Fixes rust-lang#83891
The corresponding PRs in rustc: rust-lang/rust#77566 rust-lang/rust#83920 (cherry picked from commit e78fbe5)
Includes rust-lang/hashbrown#204 and rust-lang/hashbrown#205 (not yet merged) which both serve to reduce the amount of IR generated for hashmaps.
Inspired by the llvm-lines data gathered in #76680 (cc @Julian-Wollersberger)