-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Extract rustc_mir_pretty crate from rustc_middle #89636
Conversation
Some changes occured to rustc_codegen_cranelift cc @bjorn3 Some changes occured to the CTFE / Miri engine cc @rust-lang/miri |
(rust-highfive has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 3dbbb3ff8f9c8a920421a6c5e33c1311a68e2653 with merge 69a39b977c724cb08a032b6ff8bdb84342af6190... |
☀️ Try build successful - checks-actions |
Queued 69a39b977c724cb08a032b6ff8bdb84342af6190 with parent 0157cc9, future comparison URL. |
Finished benchmarking commit (69a39b977c724cb08a032b6ff8bdb84342af6190): comparison url. Summary: This change led to large relevant regressions 😿 in compiler performance.
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. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never |
12e0a90
to
24b2981
Compare
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 24b2981bf03ad68dc167124a16e9d90ec9619b6f with merge da7f27691b881b90b3f2ca16092dfb032114a0ab... |
☀️ Try build successful - checks-actions |
Queued da7f27691b881b90b3f2ca16092dfb032114a0ab with parent e0aaffd, future comparison URL. |
Finished benchmarking commit (da7f27691b881b90b3f2ca16092dfb032114a0ab): comparison url. Summary: This change led to large relevant regressions 😿 in compiler performance.
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. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never |
Shucks. I'd love to be mentored in diagnosing perf regressions. Otherwise I may have to close this. |
One way to find out where to add inline attributes is to run rustc via cachegrind before and after your change on one of the regressed benchmarks. Then let kcachegrind give you a diff view between those runs. From there it should be obvious what functions were inlined before and aren'tnow, as you'll suddenly see a huge amount of new executions of some functions. Those will then need inlining... If you have the extra time, could you write down more detailed instructions as you go (with exakt commands that you used for your situation)? I should have done so last time and added it to the guide, but I didn't think of it |
☔ The latest upstream changes (presumably #90577) made this pull request unmergeable. Please resolve the merge conflicts. |
43e652f
to
7c20412
Compare
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 7c20412ad5f030624cbe6d5636f9aa02ce0e8e79 with merge 9c5b805c7bd92ff9c7fb1074cfc55ebfd1b71a8b... |
☀️ Try build successful - checks-actions |
Queued 9c5b805c7bd92ff9c7fb1074cfc55ebfd1b71a8b with parent d608229, future comparison URL. |
Finished benchmarking commit (9c5b805c7bd92ff9c7fb1074cfc55ebfd1b71a8b): comparison url. Summary: This change led to moderate relevant mixed results 🤷 in compiler performance.
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. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never |
7c20412
to
c7fb1e2
Compare
@rustbot label: -S-waiting-on-author |
Well it's still a small regression (noise?) so I don't know if this is desirable. |
☔ The latest upstream changes (presumably #91388) made this pull request unmergeable. Please resolve the merge conflicts. |
Mentioned during today's compiler meeting on Zulip. In order to move this further on, this perf. regression should be investigated. Finally a question about any possible build time improvement with |
Don't we only care about the most recent perf run?
Hmm I'm not sure. Should I just time it locally? |
The stated motivation in the PR description is that this improves bootstrap times, so before we proceed we should actually have some numbers showing that's the case - current perf.rlo data rather shows the opposite (or at least net neutral/within margin of error). If we don't observe bootstrap time improvement, it may still make sense to merge as a cleanup/refactoring improving code quality, but we should be clear about that being the motivation rather than bootstrap perf. Running numbers locally should be good, and looking at x.py check performance would also be good (perf.rlo reflects x.py build performance only). |
perf.r-l.o shows the performance of building each crate individually. It doesn't show the effect of building multiple crates in parallel. |
@camsteffen checking if the @rustbot label -S-waiting-on-review +S-waiting-on-author |
Closing this due to inactivity |
This shrinks and removes dependencies from rustc_middle so I'm hoping this is beneficial for bootstrap times. It also just seems sensible and consistent.