Data flow analysis
intermediate code optimization
target processors
register allocation
Scheduling
Code optimization techniques
Retargetable compilers