SSA IL

Stephen Weeks MLton@sourcelight.com
Thu, 1 Nov 2001 13:57:58 -0800


> I don't know if this should be considered a bug, but I've been able to
> generate CPS programs that type-check, translate into SSA, but don't pass
> the initial type-check in the SSA simplify.fun (the dominator analysis for
> check-scopes fails with "graph not connected"). 

I just checked in a fix for this.  Graphs are no longer required to be
connected for dominator computations.

> Some of them also fail with "Raise must have one var".

This is a bit more troubling, but I think will go away once everything
makes it to SSA.

> and a segFault on exnHistory2; various other run-time errors.

These are a bit more scary.  Maybe you could track one down?

> There is a hack in the SSA simplifier that runs removeUnused between every
> pass as a "poor-man's shrinker".  Really, I just need somthing to clean up
> unreachable roots in the call graphs so that the the dominators can be
> computed.  Unfortunately, removeUnused has the side effect of inserting
> lots of "wrapper" blocks that should be eliminated by the real shrinker. 
> So, the resulting programs just get bigger and bigger.  The x86-codegen
> should get rid of most of these extraneous gotos, but they're hanging
> around. 

I have one more minor hack on my todo before the shrinker.  Hopefully
I will start on that tomorrow.