Optimising Compilers: Static single-assignment and strength reduction

Optimising Compilers: Static single-assignment and strength reduction

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

Cd9b247e4507fed75312e9a42070125d?s=128

Tom Stuart

February 23, 2007
Tweet