15-745 Syllabus


Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman.
Compilers: Principles, Techniques, and Tools (2nd Edition).
Pearson Addison Wesley, 2006. ISBN: 978-0321486814.
(Note: It is important to use the 2nd Edition, rather than an earlier edition.)

This is a graduate-level course. If you need to brush up on the material covered in undergraduate-level compiler courses, please review the earlier chapters of this book and take a peek at the CMU undergrad compilers course: 15-411.


Your final grade for the course will be based on the following weights:

The project in 15-745 is an open-ended research project, done in groups of two (or three, with special permission). The project requires a proposal report, a milestone report, a final report, and a poster presentation.


Also available as an ical file that you can subscribe to.

Note: Class will meet on average two times per week, but we will frontload the lectures at the begining of the semester. This schedule is subject to change, so please hold all three days (Mon, Wed, Fri) open each week.

Date Topic Assignments Reading
Mon 01/11 Overview of Optimizations
ALSU 9.1
Wed 01/13 The LLVM Compiler: Getting Started
Assignment 1 out llvm.org/docs
Fri 01/15 No class - Phil out of town
Mon 01/18 No class - Martin Luther King Day
Wed 01/20 The LLVM Compiler: Further Details
Fri 01/22 Local Optimizations
ALSU 8.4-8.5
Mon 01/25 Data Flow Analysis: Examples
ALSU 9.2
Wed 01/27 Data Flow Analysis: Theory
ALSU 9.3
Fri 01/29 Common Subexpressions, Constant Folding
Assignment 2 out ALSU 9.2.6, 9.4
Mon 02/01 Static Single Assignment (SSA)
ALSU 6.2.4
Wed 02/03 Loop Invariant Code Motion
Assignment 1 due ALSU 9.6
Fri 02/05 No class
Mon 02/08 Induction Variables, Strength Reduction
ALSU 9.1.8
Wed 02/10 Partial Redundancy Elimination
ALSU 9.5-9.5.2
Fri 02/12 Lazy Code Motion
ALSU 9.5.3-9.5.6
Mon 02/15 Region-Based Analysis
ALSU 9.7
Wed 02/17 Register Allocation
Assignment 2 due; Assignment 3 out ALSU 8.8
Fri 02/19 Instruction Scheduling
ALSU 10.1-10.3
Mon 02/22 Pointer Analysis
ALSU 12.4, 12.6-12.7
Wed 02/24 Dynamic Code Optimization
Whaley, OOPSLA 2001
Fri 02/26 No class - prepare for student-led discussions
Mon 02/29 Recent Research on Optimization I
Wed 03/02 Recent Research on Optimization II
Fri 03/04 No class - Mid-Semester break
Mon 03/07 No class - Spring break
Wed 03/09 No class - Spring break
Fri 03/11 No class - Spring break
Mon 03/14 Meetings to discuss Project Proposal ideas
Assignment 3 due
Wed 03/16 Memory Hierarchy Optimizations
ALSU 7.4.2-7.4.3, 11.2-11.5
Fri 03/18 Project Proposals
Proposal Report due before midnight tonight
Mon 03/21 Array Dependence Analysis, Parallelization
ALSU 11.6
Wed 03/23 Global Scheduling, Software Pipelining
ALSU 10.4-10.5
Fri 03/25 No class
Mon 03/28 Prefetching Arrays
ALSU 11.11.4
Wed 03/30 Prefetching Pointer-Based Structures
Fri 04/01 No class
Mon 04/04 Register Allocation: Coalescing
Wed 04/06 Thread-Level Speculation
Fri 04/08 No class
Mon 04/11 Project Milestone
Milestone Report due before midnight tonight
Wed 04/13 Exam
Closed book, closed notes
Fri 04/15 No class - Spring Carnival
Mon 04/18 No class - Phil out of town
Wed 04/20 No class
Fri 04/22 No class
Mon 04/25 No class
Wed 04/27 No class
Fri 04/29 Project Poster Session
Tues 05/03 Project Reports Due
Final Report due before midnight tonight

Last updated: Mon May 02 00:50:56 -0400 2016 [validate xhtml]