-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
BTree: inline more functions supporting iteration #85217
Conversation
Note that the ones on the
|
@bors try @rust-timer queue I am generally not inclined to merge this - #[inline] on these functions increases the chances of getting inlined, probably, but it doesn't change the ability (they're already generic) of LLVM to do so. I'm not usually inclined to mess with LLVM heuristics in std code. But, we'll see if there's any change on compiler benchmarks... |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 154e6d1 with merge 51fbd179ae85719260f05675a60575ad1e15790f... |
☀️ Try build successful - checks-actions |
Queued 51fbd179ae85719260f05675a60575ad1e15790f with parent 1025db8, future comparison URL. |
It sure seems these inlines are as scientific as needles in a voodoo doll - they keep you awake at night and nobody can explain how they work. I sometimes add them in a PR to "disguise" a reported performance backlash - on functions that are extracted from literally inlined code, like in #84904. I don't think I ever tried removing some of them. When I remove all of them from btree code (most are on public, stable API members), there's only backlash (on my Windows x64 system, Intel CPU) compared to master.
But compared to this PR, |
Finished benchmarking try commit (51fbd179ae85719260f05675a60575ad1e15790f): 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 |
Looks loosely like this PR is a regression. |
According to the library/alloc benchmarks, these
#[inline]
might boost performance. They didn't seem to a year or so ago.r? @Mark-Simulacrum