publishing


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