* `pick` at -O1 keeps a phi. At -O3 the SimplifyCFG pass converts the * if/else into a `select` instruction (still SSA, but no phi node). * `running_sum` keeps a phi at ANY optimization level, because ...
This is my graduation project, I wrote it to learn something interesting about compilation theory. Using SSA form, and implements the constant folding, constant propagation, dead code elimination and ...
See page 447 in Modern Compiler Implementation in Java by Appel, Cambridge, 1998 or Kathryn S. McKinley's CS 710 lecture notes. The algorithm creates new Clef variable declarations for the renamed ...