common block elimination

Matthew Fluet mfluet@intertrust.com
Tue, 7 Aug 2001 09:06:56 -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.

Another pattern that would be nice to eliminate is the following:

fun L_X () []
  = return (global_y)

CPS functions that return booleans have this pattern -- particularly deep
equality functions where there are lots of branches to check.

This would actually be very easy to add into the current version (although
it means that I can't do the extract exn globals trick).