Back-end architecture.
High-, medium-, and low-level intermediate representation.
Routines, basic blocks, control-flow, data-flow.
Sequential, semi-sequential, and non-sequential intermediate code, SSA.
Variable live-range, detection algorithm.
Register allocation by graph coloring.
Instruction selection.
Scheduling, list scheduling, trace scheduling.
Software pipelining, modulo scheduling.
Vectorization.
Overview of other optimization methods.
Compiler back-ends. Architecture, intermediate representation, basic algorithms of code generation and optimization.
Modern processor features. Interaction between the programmer and the compiler in code optimization.