Overview
- Introduction
-
Data flow analysis
- Foundations
- reaching definitions
- available expressions and live variables
- static single assignment form
- dependency analysis
- inter procedural analysis
-
intermediate code optimization
- Foundations
- scalar optimizations
- control flow optimizations
- loop optimizations
- interprocedural optimizations
-
target processors
- CISC
- RISC
- super scalar
- DSP - digital signal processors
- VLIW - very long instruction word
- NPU - network processors
- ASIP - applications specific processors
-
register allocation
- Foundations
- register allocation for trees
- hierarchical local register allocation
- register allocation with graph coloring
-
Scheduling
- Foundations scheduling for basic blocks
- global scheduling procedures
-
Code optimization techniques
- software pipelining
- address code optimization
- simd instructions
- scheduling for clustered VLIW
-
Retargetable compilers
- Foundations
- examples systems: gcc, Cosy/LISA, SUIF, LANCE, lcc