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.