Overview

  1. Introduction
  2. Data flow analysis

    • Foundations
    • reaching definitions
    • available expressions and live variables
    • static single assignment form
    • dependency analysis
    • inter procedural analysis
  3. intermediate code optimization

    • Foundations
    • scalar optimizations
    • control flow optimizations
    • loop optimizations
    • interprocedural optimizations
  4. target processors

    • CISC
    • RISC
    • super scalar
    • DSP - digital signal processors
    • VLIW - very long instruction word
    • NPU - network processors
    • ASIP - applications specific processors
  5. register allocation

    • Foundations
    • register allocation for trees
    • hierarchical local register allocation
    • register allocation with graph coloring
  6. Scheduling

    • Foundations scheduling for basic blocks
    • global scheduling procedures
  7. Code optimization techniques

    • software pipelining
    • address code optimization
    • simd instructions
    • scheduling for clustered VLIW
  8. Retargetable compilers

    • Foundations
    • examples systems: gcc, Cosy/LISA, SUIF, LANCE, lcc