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.