SSA IL

Matthew Fluet fluet@CS.Cornell.EDU
Thu, 1 Nov 2001 22:28:40 -0500 (EST)


> So the `graph not connected' things are just coming from dead code that
> the dropped passes would have eliminated, correct?

I think so.  For example, some think like:

(n + m) + ((n + m) handle Overflow => 0)

will get constant propagated correctly, but will leave the block that
returns 0 for the second Overflow as unreachable.

Likewise, contifying a function that doesn't raise and doesn't make any
non-tail calls at a continuation with a handler might leave the handler as
unreachable.

I'm not quite sure what's happening when the CPS IL type-checks, but the
initial SSA translation isn't connected.  Probably more dead-code, but
the type-checker gets to it before we clean any of that unreachable code.