[MLton] MLton HOL

Matthew Fluet fluet@cs.cornell.edu
Fri, 28 May 2004 09:25:42 -0400 (EDT)

> First, there is a time performance
> problem in the commonArg pass, which takes 348s; it should take < 5s.
> That is probably some simple quadratic problem due to a linear-time
> instead of constant-time lookup and should be easy to fix.

I gave commonArg a quick look.  The analysis itself is very much like the
contification analysis -- create a graph and compute its dominators.
There might be an issue with Node.hasEdge, which is linear, since I avoid
adding redundant edges to the graph.

Also, note that the graph is pretty big.  Essentially there are nodes
for each SSA block argument and an edge for every SSA variable that
appears in a Transfer.Goto.