EECS 583: Advanced Compilers

Fall 2007  Syllabus

 

Class and Instructor

Class: Mon/Wed, 10:30-12:30, 1006 Dow
Prof. Scott Mahlke                                           Email: mahlke@umich.edu
Office: 4633 CSE Bldg.                                    Office hrs: MW after class, Wed 4-5pm

Course Description

An in-depth study of compiler backend design for high-performance architectures.  Topics include control-flow and dataflow analysis, optimization, instruction scheduling, and register allocation. Advanced topics include memory hierarchy management, optimization for instruction-level parallelism, automatic thread extraction, modulo scheduling, and predicated/speculative execution. The focus is backend compilation, thus a familiarity with both computer architecture and compilers is recommended.

Reference Books

Advanced Compiler Design & Implementation, Muchnick, Morgan Kaufmann, 1997.
Compilers: Principles, Techniques, and Tools
, Aho, Sethi, Ullman, Addison-Wesley, 1988.

Prerequisites

Strong C++ programming skills (EECS 281), good background in computer architecture (EECS 370 at minimum, EECS 470 is desirable), some familiarity with compilers (EECS 483 is desirable but not needed).

Grade

Midterm exam - 25%
Project - 45%
Homeworks - 10%
Paper presentation – 10%
Class participation – 10%

Midterm exam - There will be one in-class (2 hour) exam at about the 3/4 point of the class.  The exact date is TBD.  The exam will be open book/notes.

Project - The projects will consist of designing and implementing an advanced compiler technique within the Trimaran compiler infrastructure.  A report describing the project should be submitted along with a brief presentation and/or demonstration of the resulting implementation.   Typical projects consist of 1-3 students.

Homeworks – Several programming assignments will be done throughout the semester. Each homework will consist of implementing a particular technique within the Trimaran compiler system and showing its operation on several test programs.  Each student must turn in their own assignment (but working together is fine).

Paper presentation - Each student will have the opportunity to present a research paper of their choosing to the class.  Presentations should be about 20 minutes in length. More details will be given in class regarding the topics and format.

Class participation - Students are encouraged to take an active role in this class by asking questions or providing comments. 

Special interest groups

The SIG meetings are intended to be discussion groups in which we will go into more depth about one particular aspect of compiler backends.  You should come prepared to discuss things and participate in the discussion.  Projects will be defined and discussed at the SIG meetings.

Topic list