-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
RFC: Make inbounds macros expression-like more often #15558
Conversation
Seems like it could be worth to run the benchmarks? If Nanosoldier is feeling better now that is. |
I would wait for #15548 to ensure that this behaviour doesn't go away. |
That's part of the plan. If this gets merged, I don't think there's any going back. :) Sure, let's do benchmarks… touching these basic utilities can sometimes do surprising things. What are the categories these days? Is SIMD its own category? |
d4470f8
to
4b0cf05
Compare
@nanosoldier |
The error on nanosoldier is
@andreasnoack I believe the relevant benchmark is just testing the |
I think the error is here. I'm surprised that we don't have coverage for those methods. I'll take a look. |
What needs to be done here? |
Is nanosoldier feeling any better these days? @nanosoldier Or we can just press merge. I don't foresee this causing trouble. |
Your benchmark job has completed - successfully executed benchmarks. A full report can be found here. cc @jrevels |
Maybe you missed the |
Doh. I saw it was optional but I figured the default was against master. Let's try that again: @nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels |
Surprising number of performance regressions. Might be fixed by a simple rebase? |
Marking this as request-for-help. This change is very simple and would be very nice to merge, but I'm not well-equipped to debug this sort of regression. |
Aha, I now see #16894 — I bet that's what's going on here. |
@nanosoldier |
I think nanosoldier is still being updated to work properly in a world where master is 0.6-dev. Too bad we lost track of this one, should've given it another go after #16897 was merged. |
Alright, our dear Nanosoldier should be back on its feet: @nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels |
Should we re-run nanosoldier one last time and merge this, if it comes back OK? @nanosoldier |
Nanosoldier stopped working through it's job queue for some reason while I was away. Restarted the server: @nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels |
Hm, those regressions look real. I would bet that this is pushing the inlining heuristic over the edge in some cases. |
Interestingly the daily benchmark showed a bunch of improvements in the bitarray benchmark https://github.com/JuliaCI/BaseBenchmarkReports/blob/4c71955ce4d30d4938b34d5a74abfa64caf74a89/daily_2016_10_12/report.md I am wondering if it was inline heuristics, then this might have helped. |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
8f8028c
to
0f2b7fd
Compare
Ok, well, I've identified a place where I'm still seeing an extra allocation with the expression-like behavior. See 0f2b7fd for the workaround. I'm having a hard time reducing it down. |
0f2b7fd
to
f4c1bd9
Compare
Alright, let's see where we are again here. I may still need to do some work on the inlining cost calculation. @nanosoldier |
Looks like there was some internal server error. I restarted the server, so let's try again: @nanosoldier |
Yeah okay something is wrong with Nanosoldier. |
f4c1bd9
to
86e01d6
Compare
I think Nanosoldier is feeling better now, so @nanosoldier |
Sorry, still a few more things to fix in Nanosoldier. |
@nanosoldier |
Sorry for the noise here. Dates moving to the stdlib broke basically the entire Nanosoldier stack and there have still been a couple of things lurking. I think I've finally gotten them all, but we'll see. @nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
Looks like a few real memory regressions? |
Yes, thanks for fixing up Nanosoldier for this, Alex! It looks like we're still at the same place that stymied me last time — I worked around it before by changing Line 162 in 690f4bf
to:
It looks like the use of an intermediary variable here causes a tuple to be allocated. |
Let's go ahead and merge this with the workaround now and then once #24113 is merged, verify that the workaround is no longer needed. |
This seems to be good to go and passes CI. Shall we go ahead and merge this? |
Already merged as #25033 |
With #11169 fixed, we can now make
@inbounds
return its valueedit: in common cases.