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.