8/16
* Live range splitting reduces register pressure
* In SSA form, each variable is assigned to only once
* SSA uses Φ-functions to handle control-flow merges
* SSA aids register allocation and many optimisations
* Optimal ordering of compiler phases is difficult
* Algebraic identities enable code improvements
* Strength reduction uses them to improve loops