benchmarks for the release

Matthew Fluet fluet@CS.Cornell.EDU
Sat, 30 Mar 2002 23:35:21 -0500 (EST)


> md5 is very nice, because
> it is a standard algorithm.

IIRC, we haven't played with the inliner or anything else since I tried
the -loop-passes option.  There is some low-hanging fruit with md5, where
there are about 50 non-tail calls to empty functions in the final SSA.

I recall looking at nucleic and not being able to figure out anything
obvious.  On possibility is the new flattener in the SSA world; we've
discussed the issues with over flattening large tuples of floats; just
passing them as argument requires bumping through the floating point
stack.  I experimented a little with doing two 32-bit moves through the
gpr's, but it wasn't any better.

Also, we've been saving a header word bit for mod 8 alignment that we
haven't gotten around to implementing in the GC or the codegens.

As to line numbers, I checked in a fix.  For some reason, in the assembly,
the adjustment to stackTop and the save of the return label is occuring
after all of the arguments to GC_gc are pushed.  (There is nothing wrong
with this, and I don't recall why it was ever different; just the comment
in x86MLton.fileLine suggests that it wasn't there before.)  Anyways, the
actual call GC_gc instruction is now 9 lines away from where the push of
the line number occurs, so I checked in the revised x86mlton.sml.