EECS 583: Advanced Compilers

Winter 2005 Syllabus

 

Instructor

Prof. Scott Mahlke                                     Email: mahlke at umich.edu
Office: 2223 EECS Bldg.                          Office hrs: MW, 3:00 – 3:30 or by appointment

Course Description

An in-depth study of compiler backend design for high-performance architectures.  Topics include control-flow and data-flow analysis, classical optimization, instruction scheduling, and register allocation. Advanced topics include memory hierarchy management, optimization for instruction-level parallelism, modulo scheduling, predicated and speculative execution. The class focus is processor-specific compilation, thus 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 - 30%
Project - 40%
Homeworks - 15%
Paper presentation – 10%
Class participation – 5%

Midterm exam - There will be one in-class (2 hour) exam after 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 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.

Paper presentation - Each student will have the opportunity to present a research paper of their choosing to the class.  Presentations should be about 30 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.  Each group will identify several topics within their specific category to investigate.

Topic list