On Wednesday, 23 December 2015 at 01:07:57 UTC, Walter Bright wrote: > On 12/22/2015 10:29 AM, David Nadlinger wrote: >> Not sure about how it arrives at the crazily unrolled loop, but no recursion in >> sight anymore. > > It's doing tail recursion optimization, which turns the recursion into a loop. The recursive call is not quite a tail call by itself, which is what Andrei pointed out using that example. But yes, that's what happens. > Then the loop is unrolled 8 times. Sure thing. I was rather surprised to see that happen given that I only compiled with -O1, though, as it seems to be quite an aggressive optimization. — David