Semantics-preserving program transformations that make code run faster or smaller. Classical optimisations operate on basic blocks or control-flow graphs and are framed as data-flow analyses.
Key facts
Data-flow analyses solve fixpoints over a lattice on the CFG.