• Input: Intermediate code
• Output: Optimized intermediate code
• Method:
• Optimizer makes more efficient version of
  intermediate code called optimized intermediate code:
• Constant propagation: (a := 1; b := 2; c := a + b Þ c := 3)
Note: Variables a, b have no next use
• Copy propagation: (b := a; c := b; d := c Þ d := a)
Note: Variables b, c have no next use
• Dead code elimination: (while false do … Þ nothing)
Optimizer
 Note: Some compilers have no optimizer
14/17
Textovι pole: