Advanced Compiler Techniques - CS 710

Web materials

All of the lecture notes, written homework assignments, and programming projects are available on the course web page.

Description

Advanced compiler techniques will study the construction of optimizing compilers with a focus on uniprocessor architectures. The course will cover data-flow analysis, program optimization, and code generation across basic blocks, procedures, and complete programs. Classical topics such as interprocedural and intraprocedural analysis, intermediate representations, register allocation, and scheduling will be presented in the context of modern uniprocessors. The course will also cover dependence analysis and loop transformations: the building blocks for optimizing for memory hierarchies and parallel machines.

Objective

This course focuses on the compilation techniques needed to obtain high performance on modern computer architectures. Analysis and optimization techniques are presented in class lectures. Programming projects provide experience with implementation issues and allow students to evaluate the impact of each technique.

Prerequisites

CMSC 610 or permission of instructor.

Course Materials

Topics

  1. Introduction
  2. Control flow analysis
  3. Data flow analysis
  4. More control flow analysis
  5. Static-single assignment
  6. Global optimizations
  7. Register allocation
  8. Instruction scheduling
  9. Interprocedural analysis
  10. Data dependence analysis
  11. Loop transformations

Grading