common block elimination

Matthew Fluet mfluet@intertrust.com
Mon, 6 Aug 2001 15:57:57 -0700 (PDT)


> However, here's what has me really puzzled:
>
>             commonBlock starting
>                inferHandlers starting
>                inferHandlers finished in 0.26 + 0.0 (0.0% GC)
>             commonBlock finished in 9.58 + 1.73 (15% GC)
>
> This is a dirt simple pass -- a single walk over the program looking for
> the pattern above and doing the appropriate rewrite.  I also got an "Out
> of memory" the first time I ran it.  Perhaps the problem is the fact that
> I need to reset a property on all of the globals for each CPS function.  I
> could extract the set of globals that are of type exn, which are all that
> I ever need in for this pass.

This is a bit better, only resetting globals of type exn, but it still
seems a little long for a 100 line pass.

            commonBlock starting
               inferHandlers starting
               inferHandlers finished in 0.26 + 0.0 (0.0% GC)
            commonBlock finished in 1.59 + 1.90 (54% GC)