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