The difference is apparently in how one of my recursive functions, descend_pyramid() is compiled. Within the recursive function, I have an "if" statement which determines if the function calls itself again or if it returns. It's something like:
Code: Select all
if(A)
return 0;
else
return descend_pyramid(level);
Code: Select all
if(A || B)
I've been looking over the assembly produced by each compiler, but it hasn't been obvious what is causing these large differences in runtime.
Any advice?
-----
Additional information that might/might not be relevant:
B in the above "if" statement is a binary value (stored as an entry in multi-dimensional char array), ex;
Code: Select all
pyramid_base[pyramid_ind][ x*64*64 + y*64 + z]
Thanks