common-subexpression elimination (cse)

Henry Cejtin henry@sourcelight.com
Tue, 24 Jul 2001 16:13:28 -0500


I'm impressed.  What do you do in the CSE stuff to avoid getting confused
about things that are delayed in a lambda?  I'm thinking of an expression
which raises an exception, and so you can't lift it out if the lambda
could be called in a context with a different handler.  Perhaps none of this
is a problem with our first-order language.
The big win in this stuff has to be code-invariant hoisting, but again
the possibility of an exception makes this tricky, especially since the
loop may not run even once.