On Friday, June 17, 2016 at 4:48:06 PM UTC+2, gordo...@gmail.com wrote: > > I don't see the point to the exercise as far as optimizing golang is > > concerned.
> It is a general rule that using more registers results in faster code. Yes, except when they're wasted as in using the extra register is golang 1.7 where to save a load immediate $1. > > Your experiment just shows that Your compiler (GCC?) > My post containing the example mentions that the compiler is clang 3.9. Yes, sorry, I was tired and forgot that. > > missed an optimization as far as reducing backend latency goes. > It is significant because it indicates that the clang compiler might be > completely missing the general rule which I mentioned above. It is significant to Clang development, but not to golang developement, which I thought was what we were working on in this thread; that's why I said that your work, though important, doesn't really apply here as to golang improvements. > > You may also find that swapping the order of some of the instructions such > > as the second and the third in the loop may also reduce backend latency > > further. > Swapping the order of instruction in the example results in the same or lower > performance. I said "may". > > I am not on a high end Intel CPU now, but when I was I found that with a > > buffer size adjusted to the L1 cache size (8192 32-bit words or 32 > > Kilobytes) that eratspeed ran on an Intel 2700K @ 3.5 GHz at about 3.5 > > clock cycles per loop (about 405,000,000 loops for this range). > > My current AMD Bulldozer CPU has a severe cache bottleneck and can't come > > close to this speed by a factor of about two. > Which Bulldozer version do you have: original Bulldozer, Piledriver, > Steamroller/Kaveri or Excavator/Carrizo? One of the original's, a FX8120 (4 core, 8 processor) @ 3.1 GHz. by the clock frequency, I assume you were running these tests on a high end Intel CPU? Have you tried compiling eratspeed with a new version of GCC to see how it compares to Clang? I am currently working on a golang version of eratspeed and we'll see how it compares; it will be a better comparison that just using my simple PrimesSpeed test... -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.