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 [pdf] |
ALSU 9.1 | |
Wed 01/13 | The LLVM Compiler: Getting Started [pdf] |
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 [pdf] |
llvm.org/docs | |
Fri 01/22 | Local Optimizations [pdf] |
ALSU 8.4-8.5 | |
Mon 01/25 | Data Flow Analysis: Examples [pdf] |
ALSU 9.2 | |
Wed 01/27 | Data Flow Analysis: Theory [pdf] |
ALSU 9.3 | |
Fri 01/29 | Common Subexpressions, Constant Folding [pdf] |
Assignment 2 out | ALSU 9.2.6, 9.4 |
Mon 02/01 | Static Single Assignment (SSA) [pdf] |
ALSU 6.2.4 | |
Wed 02/03 | Loop Invariant Code Motion [pdf] |
Assignment 1 due | ALSU 9.6 |
Fri 02/05 | No class |
||
Mon 02/08 | Induction Variables, Strength Reduction [pdf] |
ALSU 9.1.8 | |
Wed 02/10 | Partial Redundancy Elimination [pdf] |
ALSU 9.5-9.5.2 | |
Fri 02/12 | Lazy Code Motion [pdf] |
ALSU 9.5.3-9.5.6 | |
Mon 02/15 | Region-Based Analysis [pdf] |
ALSU 9.7 | |
Wed 02/17 | Register Allocation [pdf] |
Assignment 2 due; Assignment 3 out | ALSU 8.8 |
Fri 02/19 | Instruction Scheduling [pdf] |
ALSU 10.1-10.3 | |
Mon 02/22 | Pointer Analysis [pdf] |
ALSU 12.4, 12.6-12.7 | |
Wed 02/24 | Dynamic Code Optimization [pdf] |
Whaley, OOPSLA 2001 | |
Fri 02/26 | No class - prepare for student-led discussions |
||
Mon 02/29 | Recent Research on Optimization I |
Handouts | |
Wed 03/02 | Recent Research on Optimization II |
Handouts | |
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 [pdf] |
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 [pdf] |
ALSU 11.6 | |
Wed 03/23 | Global Scheduling, Software Pipelining [pdf] |
ALSU 10.4-10.5 | |
Fri 03/25 | No class |
||
Mon 03/28 | Prefetching Arrays [pdf] |
ALSU 11.11.4 | |
Wed 03/30 | Prefetching Pointer-Based Structures [pdf] |
||
Fri 04/01 | No class |
||
Mon 04/04 | Register Allocation: Coalescing [pdf] |
||
Wed 04/06 | Thread-Level Speculation [pdf] |
||
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]