make "dot" operations (.+ etc) fusing broadcasts #17623
This is a
@JeffBezanson, I'm noticing an odd behavior with the compiler in the REPL. Basically, the first fused function I compile is slow, but the second and subsequent ones are fast.
In particular, the following
x = rand(10^7); f(x) = x .+ 3.*x.^3 .+ 4.*x.^2 @time f(x); @time f(x);
reporting 40M allocations even on the second run. However, the same function is fast if I compile a different fused function first!
x = rand(10^7); g(x) = x .+ 3.*x.^3 .- 4.*x.^2 @time g(x); f(x) = x .+ 3.*x.^3 .+ 4.*x.^2 @time f(x); @time f(x);
This reports only 8 allocations for
Any idea what could cause this? (I'll try to reproduce it in the master branch, to see if it affects the 0.5 loop fusion, and file a separate issue if that is the case.)
As long as I avoid