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.