Optimizing Compilers for Modern Architectures

Course ID 15745

Doctoral Breadth Course: Computer Systems - (*)
Classes marked with "*" (star) are appropriate for any CSD doctoral or 5th year master's student.

Description

Theoretical and practical aspects of building optimizing compilers that e¿ectively exploit modern architectures. The course will begin with the fundamentals of compiler optimization, and will build upon these fundamentals to address issues in state-of-the-art commercial and research machines.

Key Topics
intermediate representations, basic blocks and flow graphs, data flow analysis, partial evaluation and redundancy elimination, loop optimizations, register allocation, instruction scheduling, interprocedural analysis, memory hierarchy optimizations, extracting parallelism, and dynamic optimizations

Required Background Knowledge
The course is geared toward students who have already had such a course as undergraduates. If you have not taken a compilers course already, it is still possible to take this course provided that you are willing to spend some additional time catching up on your own. It will also be helpful if you have some familiarity with the features of modern processor architectures (e.g., the memory hierarchy, pipelining, branch prediction, and instruction issue mechanisms).

Course Relevance
For CS or ECE graduate students - If you are not a graduate student in either the CS or ECE program, you need permission to take this class.

Course Goals
The course will begin with the fundamentals of compiler optimization, and will build upon these fundamentals to address issues in state-of-the-art commercial and research machines.

Learning Resources
Piazza, lecture notes, textbook: Compilers: Principles, Techniques, and Tools (2nd Edition). Addison Wesley, 2006. ISBN: 978-0321486814. (NOTE: It is important to use the 2nd Edition, rather than an earlier edition.)

Assessment Structure
Exam: 35%; Homework: 20%; Project: 35%; Class Participation: 10%

Course Link
https://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15745-s23/www