Tree of optimizations

The ability to get an optimization tree where the parent optimization node corresponds to some chunk of code over which it is applied, and the child one on which it depends.
For example: if at first constant propagation worked on a part of the code, and after dead code elimination. That the first node will coresponding of CP and the second DCE.