SSA

Stephen Weeks MLton@sourcelight.com
Mon, 22 Oct 2001 11:42:11 -0700


> Yes.  I'm taking it that we still pushing to eliminate the
> counter-intuitive control flow at non-tail calls that is currently
> in SSA.

Yes.

> How "bad" do you think taking the explicit union of two frames would
> be?

I'd rather push it into live.fun, since that doesn't seem hard to me.

> The more complicated fix would be to do what I said earlier, which is to
> indicate to live.fun that there is a "to be created" block for each
> cont/handler pair and let it put in the appropriate control flow edges
> relative to this virtual block.

I don't see why we need to indicate anything to live -- it has the
function and can see all the necessary cont-handler pairs.  How about:
change the frame field of the result of labelLive (in live.sig) to

			 frame: (Label.t option * Var.t list) list,

> I put up mandelbrot.cvs and mandelbrot.newer at
> http://www.cs.cornell.edu/People/fluet/MLton
> If anyone wants to try them on their machine, just to see if the huge
> difference still shows up, I'd appreciate it.  Particularly, I'd like to
> see if its particular to PentiumIII's.

Here's the timings on a few machines around here.

newer	cvs	
30.8	21.1	400 MhZ Pentium II (Deschutes)
24.6	17.1	500 MhZ Pentium III (Katmai)
16.7	11.6	733 MhZ Pentium III (Coppermine)