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/14 | Overview of Optimizations; Course Overview [pdf] |
ALSU 9.1 | |
Wed 01/16 | The LLVM Compiler: Getting Started [pdf] |
Assignment 1 out | llvm.org/docs |
Fri 01/18 | Local Optimizations; Intro to SSA [pdf] |
ALSU 8.4-8.5, 6.2.4 | |
Mon 01/21 | No class - Martin Luther King Jr. Day |
||
Wed 01/23 | The LLVM Compiler: Further Details [pdf] |
llvm.org/docs | |
Fri 01/25 | Data Flow Analysis: Examples [pdf] |
ALSU 9.2 | |
Mon 01/28 | Data Flow Analysis: Theory [pdf] |
ALSU 9.3 | |
Wed 01/30 | No class - Classes cancelled due to polar vortex |
||
Fri 02/01 | Common Subexpressions; Constant Folding [pdf] |
Assignment 2 out | ALSU 9.2.6, 9.4 |
Mon 02/04 | Induction Variable Optimizations [pdf] |
ALSU 9.1.8, 9.6, 9.8.1 | |
Wed 02/06 | Loop Invariant Code Motion [pdf] |
Assignment 1 due | ALSU 9.5-9.5.2 |
Fri 02/08 | Lazy Code Motion [pdf] |
ALSU 9.5.3-9.5.5 | |
Mon 02/11 | Static Single Assignment (SSA) [pdf] |
ALSU 6.2.4 | |
Wed 02/13 | Register Allocation [pdf] |
Assignment 2 Homework problems due | ALSU 8.8 |
Fri 02/15 | Pointer Analysis [pdf] |
ALSU 12.4, 12.6-12.7 | |
Mon 02/18 | Dynamic Code Optimization [pdf] |
Whaley, OOPSLA-01; Stadler et al., CGO-14 | |
Wed 02/20 | Memory Hierarchy Optimizations [pdf] |
Rest of Assignment 2 due; Assignment 3 out | ALSU 7.4.2-7.4.3, 11.2-11.5 |
Fri 02/22 | Discussion of Assignments 1 and 2 |
Sign up for Discussion Leads | |
Mon 02/25 | Array Dependence Analysis; Parallelization [pdf] |
ALSU 11.6, 11.7.8 | |
Wed 02/27 | Guest lecture - Chris Fallin on Data-Structure Aware Distinctness Analysis [pdf] |
||
Fri 03/01 | Recent Research on Optimization I |
Handouts | |
Mon 03/04 | Recent Research on Optimization II |
Handouts | |
Wed 03/06 | Recent Research on Optimization III |
Handouts | |
Fri 03/08 | No class - Mid-Semester break |
Assignment 3 Homework problems due | |
Mon 03/11 | No class - Spring break |
||
Wed 03/13 | No class - Spring break |
||
Fri 03/15 | No class - Spring break |
||
Mon 03/18 | Region-Based Analysis [pdf] |
Rest of Assignment 3 due | ALSU 9.7 |
Wed 03/20 | No class - Day of meetings to discuss Project Proposal ideas |
||
Fri 03/22 | Instruction Scheduling + Discussion of Assignment 3 [pdf] |
ALSU 10.1-10.3 | |
Mon 03/25 | Project Proposal |
Proposal Report due before midnight tonight | |
Wed 03/27 | Global Scheduling [pdf] |
ALSU 10.4 | |
Fri 03/29 | Software Pipelining and Prefetching [pdf] |
ALSU 10.5, 11.11.4 | |
Mon 04/01 | No class - Phil away |
||
Wed 04/03 | Locality Analysis and Prefetching [pdf] |
ALSU 11.5 | |
Fri 04/05 | Register Allocation: Coalescing [pdf] |
||
Mon 04/08 | Domain Specific Languages [pdf] |
||
Wed 04/10 | Project Milestone |
Milestone Report due before midnight tonight | |
Fri 04/12 | No class - Spring Carnival |
||
Mon 04/15 | No class - Day of meetings to discuss Project Milestones |
||
Wed 04/17 | No class |
||
Fri 04/19 | Exam |
Closed book, closed notes | |
Mon 04/22 | No class |
||
Wed 04/24 | No class |
||
Fri 04/26 | No class |
||
Mon 04/29 | No class |
||
Wed 05/01 | No class |
||
Fri 05/03 | Project Poster Session |
Project posters due at class time | |
Wed 05/08 | Project Final Report |
Final Report due before midnight tonight |
Last updated: 2019-04-07 23:56:09 -0400 [validate xhtml]