On Mar 22, 2007, at 9:13 AM, Doug Gregor wrote:
8-bit tree code (baseline):

real    0m51.987s
user    0m41.283s
sys     0m0.420s

subcodes (this patch):

real    0m53.168s
user    0m41.297s
sys     0m0.432s

9-bit tree code (alternative):

real    0m56.409s
user    0m43.942s
sys     0m0.429s

I hate to ask, did we see the time for 16 bit codes? If it is faster than subcodes (51-53), maybe we just take the 4.5% memory hit and move on. I ask, as I'd hate to saddle everyone with subcodes in the name of compile time, when there is any alternative that is better that doesn't cost as much in compile time.

I did some quick C measurements compiling expr.o from the top of the tree, with an -O0 built compiler with checking:

for a -g 8-bit code compile:
real    0m4.234s
user    0m4.104s
sys     0m0.126s

for a -g -O2 8-bit code compile:
real    0m23.202s
user    0m22.408s
sys     0m0.773s

for a -g 16-bit code compile:
real    0m4.249s                                        0.35% slower
user    0m4.121s
sys     0m0.124s

for a -g -O2 16-bit compile:
real    0m23.391s                                       0.81% slower
user    0m22.613s
sys     0m0.767s

If the disable-checking numbers hold up... I think I'd rather eat the memory, retain most of the speed, and eliminate the complexity.

For a stage2 compiler (-O2) compiling expr.c:

for a -g 8-bit code compile:
real    0m2.633s
user    0m2.510s
sys     0m0.120s

for a -g -O2 8-bit code compile:
real    0m12.961s
user    0m12.195s
sys     0m0.755s

for a -g 16-bit code compile:
real    0m2.629s                                        0.15% slower
user    0m2.504s
sys     0m0.121s

for a -g -O2 16-bit code compile:
real    0m12.958s                                       0.023% slower
user    0m12.190s
sys     0m0.754s

All timings are best of 5 to get nice stable, comparable numbers. I'd anticipate that the slowdowns for C hold true to all languages and optimization passes. I didn't try and optimize the memory savings, layout or time in creating my 16-bit patch, I applied the 8- >16 obvious version. My hope is that disable-checking numbers hold up reasonable well, and we can just use that version. I'll accept a 0.15% compiler.

Reply via email to