common block elimination

Matthew Fluet
Mon, 6 Aug 2001 17:59:36 -0700 (PDT)

> > I didn't bother running the benchmarks -- this should have no effect on
> > performance.  But, it did save about .3MB off the size of a self-compile
> > executable.
> Nice win for such a simple opt.

The next pattern I'd like to get is the following:

fun L_X () [L_H, ...]
  = L_H (global_y)

which arises when you do handle the Overflow exception, but only by
wrapping a large arithmetic expression.  This requires an analysis and an
rewrite pass, because the common block can't just be floated all the way
up to the top of the CPS function.