broadcast: disable nospecialize logic for outer method signature
This removes the dependence on inlining for performance, so we also
remove @inline, since it can harm performance.
@nanosoldier runbenchmarks("broadcast" || "sparse" || "array", vs=":master")
This looks like it updates and replaces #35675? Does it work around the problem of the mutable Ref?
Ah, I had forgotten #35675 existed. I think we need to stop preventing progress on this bug. We seen these @inline substantially harm performance in many cases, but in a few cases lead to trivial allocations, which should typically not be considered a blocking issue.
I can put up a PR to add support in broadcast for Some (currently an error). And later we can also merge the PR that adds support for FillArray (currently not yet defined).
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here.
bump
Edit: Ok, I read https://github.com/JuliaLang/julia/pull/35675#issuecomment-624222014 etc now...
It would be good to merge, so that folks had to actually merge the fix for that problem and not ignore them any longer
I mean, I'm all for this, but we should know what the tradeoffs are and make an intentional decision that the good outweighs the bad.
@KristofferC do you have a branch with conflicts resolved against which we can run nanosoldier again?