Removes side effect free statements in blocks and Defdef. Flattens blocks (except Closure-blocks) Note: BoxedUnit currently messes up this phase when run after erasure
Clears all the state of this optimisation, to be run last.
Does this tree has side effects? This is an approximation awaiting real purity analysis...
Does the actual Tree => Tree transformation.