[MLton-devel] optimizations needed?

Matthew Fluet MLton@mlton.org
Tue, 11 Mar 2003 09:59:19 -0500 (EST)


>   For instance, is partial redundancy elimination (or something that
> subsumes it) implemented in mlton?

Hi Tom.  I'll reiterate Stephen's endorsement of partial redundancy
elimination.  Every few months, I go back to the SGI papers on pre in SSA
form (TOPLAS 3.21, May '99; PLDI '97), but haven't had much luck (but,
neither have had much time).  The main stumbling block that I run across
is that in MLton's SSA IL variables aren't versioned as they are in other
SSA forms.  Furthermore, almost every SSA pass ends up introducing,
renaming, or deleting variables, so there is effectively no correspondence
between variables besides flowing into common block arguments (i.e., phi
functions).  This means that in descriptions of pre that work on lexicaly
identified expressions (i.e., exactly the same operator applied to exactly
the same operands), almost no such expressions are ever identified.

This isn't meant to discourage.  Personally, I find it distasteful that an
optimization is virtually useless on a syntactically different but
alpha-equivalent program (but that might just be a FP bias ;), so I think
there is probably some useful research do be done in the area.  I'm not
sure how the issue plays out in production compilers for imperative
languages.

Feel free to email questions on the MLton SSA IL and programming style.
I've had a lot of fun writing SSA optimization passes.



-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open! 
Get cracking and register here for some mind boggling fun and 
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel