-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Revert of #79968 to test perf regression in #80867 #80947
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
Conversation
@bors try @rust-timer queue |
Awaiting bors try build completion. |
⌛ Trying commit 26be83b with merge 3fb3412359cce85c7e01cdbcee536cfbbbfec74e... |
☀️ Try build successful - checks-actions |
Queued 3fb3412359cce85c7e01cdbcee536cfbbbfec74e with parent fc9944f, future comparison URL. @rustbot label: +S-waiting-on-perf |
Finished benchmarking try commit (3fb3412359cce85c7e01cdbcee536cfbbbfec74e): 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 |
#79968 was indeed the cause of the perf regression. Interestingly, LLVM optimizations are what slowed down and not the linker invocation as I expected. |
I think this is pretty expected? There's probably slightly more work for LLVM/codegen to do as there's more functions and with longer names/debug info attached. |
There should be exactly as much functions, just with a longer symbol name in some cases. |
@bjorn3 what's your opinion on whether the change is worth the perf hit? I'm assuming there's not much we can do to gain that performance back since the desired change is exactly the reason for the slowdown in codegen. 1% is certainly a non-trivial perf hit albeit the lowest amount we usually register as an actual perf regression. I don't have good insight into the amount of utility of having the dropped type's name in the debug output for |
Yeah, this is LLVM getting slower, not any code we control.
I agree that the perf hit is unfortunate. I do think that this is a useful change. The whole reason to have |
On one hand nice and useful symbol names help debugging and have benefits in some other use-cases. On the other hand most of the users likely don't care about them at all and would likely rather if, by default, they were unreadable but resulted in faster compile and link times. Now, the goal of the mangling schemes we utilized so far has always been to provide utility and performance implications were never of much importance in this particular area, so I suggest we continue to focus on utility for the schemes that we currently have. And then a mangling scheme better suited for faster compiles could be considered and implemented as a separate proposal. |
I'm going to close this as it seems that the consensus is that the performance degradation is worth getting the better debugging output. |
DO NOT MERGE
Revert "Rollup merge of #79968 - bjorn3:better_drop_glue_debuginfo, r=matthewjasper"
This is a revert of #79968 to test whether it was responsible for performance regressions in the rollup #80867.
This reverts commit f90c7f0, reversing
changes made to 5c0f5b6.
r? @ghost