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
Steven Muchnick, Advanced Compiler Design Implementation,
Morgan Kaufmann. (Required.)