It seems like DMD doesn't optimize tail recursion very well
Dave
Dave_member at pathlink.com
Fri Jun 9 20:01:30 PDT 2006
Gregor Richards wrote:
> $ gdmd ack.d -O -release -inline -ofack-gdc
> $ ./ack-gdc
> 703 ms elapsed.
> $ dmd ack.d -O -release -inline -ofack-dmd
> gcc ack.o -o ack-dmd -m32 -lphobos -lpthread -lm
> $ ./ack-dmd
> 2373 ms elapsed.
I get the following. If dmd is reverted back to v0.139, it does much
better, for whatever that is worth.
GDC v0.17 w/ 4.01 backend:
# gdmd -O -inline -release t.d
# time t
real 0m0.828s
user 0m0.824s
sys 0m0.000s
DMD v0.160:
# dmd -O -inline -release t.d
# time t
real 0m2.628s
user 0m2.572s
sys 0m0.000s
DMD v0.139:
# dmd -O -inline -release t.d
# time t
real 0m1.131s
user 0m1.124s
sys 0m0.004s
More information about the Digitalmars-d
mailing list