- Introduction to existing open source compilers (GCC, LLVM, Open64, etc.)
- Representing program in the intermediate language
- Control Flow Graph
- SSA form
- Basic optimizations using SSA form (constant propagation, global value numbering, etc.)
- Alias Analysis and optimizing memory accesses
- Loop detection and optimization
- Optimizing for memory hiearchy
- Interprocedural optimization (linktime optimization, inlining, constant propagation, etc.)
- Profile directed optimization, dynamic optimization
Open source compilers, middle-end, intermediate representations, dataflow, SSA form, alias analysis, global optimization, interprocedural optimization.