Subject: publishing
From: Craig Chambers (chambers@cs.washington.edu)
Date: Fri May 10 2002 - 13:14:22 PDT
I'm publishing some improvements to Whirlwind. These improvements
allow all our single-threaded Java benchmarks to now compile and run
*with* optimization.
*) I fixed some tricky problems with the dataflow graph construction
pass. The hardest-to-find bug I've had in a long time.
*) I revised how unary and binary operators have their representations
computed. It's still not perfect, but it's better than before. I
invested a lot of mental thrashing on this problem.
*) I fixed some small problems with how integer conversions are
lowered.
*) I changed some of the Java code to use better conversion operators.
*) To test more code, I switched how the Java front-end generates
array load and store code (to use in-line code rather than calls to
library code), and regenerated all the benchmarks and library code.
*) I fixed a latent problem with how the exception checking code was
implemented in the C codegen pass. No existing code tripped over the
problem, but it might have in the future.
Some non-bug-fixing improvements:
*) I modified the C codegen to avoid introducing temporary variables
for every computation, but instead only when needed. This makes the
generated C code more compact, which makes it easier for me to read.
*) I added another calling convention, based on pair returns that
applies to single-word return & exn values. The idea was to use this
calling convention when possible (since it compiles pretty
efficiently), and to use the global-var-based calling convention
otherwise. Then I discovered that the current macro-based calling
convention implementations assume that only one calling convention is
being used uniformly for all compiled code. Fixing it would have
invested additional effort along a path that I think is not the right
long-term path, so I didn't. The right long-term path is to insert
explicit code in the lowering pass to implement whatever calling
convention is being used, and remove the collection of macros that
are currently used.
*) I removed some old gunk about a processing_file variable, that
Keunwoo had marked as being weird.
-- Craig
_______________________________________________
Cecil mailing list
Cecil@cs.washington.edu
http://majordomo.cs.washington.edu/mailman/listinfo/cecil
This archive was generated by hypermail 2b25 : Fri May 10 2002 - 13:15:11 PDT