-
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
Cache non-exhaustive separately from attributes #74887
Conversation
r? @lcnr (rust_highfive has picked a reviewer for you, use r? to override) |
r? @petrochenkov perhaps @bors try @rust-timer queue Locally this is a 2-3% performance win on the smaller crates. |
Awaiting bors try build completion |
⌛ Trying commit e0fb1d8781bffcf6e4b691f16a781e31b24a1318 with merge 554bc32d7285b816c134bbb13ccde3771cb3987a... |
Implementation LGTM, waiting on perf. |
☀️ Try build successful - checks-actions, checks-azure |
Queued 554bc32d7285b816c134bbb13ccde3771cb3987a with parent 7b3a781, future comparison URL. |
e0fb1d8
to
13ad232
Compare
Finished benchmarking try commit (554bc32d7285b816c134bbb13ccde3771cb3987a): 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 |
Seems like a clear, if small, win. @bors r=petrochenkov rollup=never I suspect it would be good to do this for all other attribute loading, but that can be done in follow-up PRs. I think ideally we want to convert all meaningful attributes into bit flags or so rather than iterating arrays to check for presence. |
📌 Commit 13ad232 has been approved by |
☀️ Test successful - checks-actions, checks-azure |
This was a small perf improvement, as expected. |
This prevents cross-crate attribute loading from metadata just for non_exhaustive checking; cross-crate attribute loading implies disk reading and is relatively slow.