15-745 Syllabus

Textbook

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.

Grading

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.

Schedule

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
Wed 01/18 Overview of Optimizations
[pdf]
ALSU 9.1
Fri 01/20 The LLVM Compiler: Getting Started
[pdf]
Assignment 1 out llvm.org/docs
Mon 01/23 The LLVM Compiler: Further Details
[pdf]
llvm.org/docs
Wed 01/25 Local Optimizations, Intro to SSA
[pdf]
ALSU 8.4-8.5, 6.2.4
Fri 01/27 Data Flow Analysis: Examples
[pdf]
ALSU 9.2
Mon 01/30 Data Flow Analysis: Theory
[pdf]
ALSU 9.3
Wed 02/01 Common Subexpressions, Constant Folding
[pdf]
Assignment 2 out ALSU 9.2.6, 9.4
Fri 02/03 Induction Variable Optimizations
[pdf]
ALSU 9.1.8, 9.6, 9.8.1
Mon 02/06 No class - Phil away
Assignment 1 due
Wed 02/08 Loop Invariant Code Motion
[pdf]
ALSU 9.5-9.5.2
Fri 02/10 Discussion of Assignment 1
Mon 02/13 Lazy Code Motion
[pdf]
ALSU 9.5.3-9.5.5
Wed 02/15 Static Single Assignment (SSA)
[pdf]
ALSU 6.2.4
Fri 02/17 Register Allocation
[pdf]
ALSU 8.8
Mon 02/20 Register Allocation: Coalescing
[pdf]
Wed 02/22 Pointer Analysis
[pdf]
Assignment 2 due; Assignment 3 out ALSU 12.4, 12.6-12.7
Fri 02/24 Dynamic Code Optimization
[pdf]
Whaley, OOPSLA 2001
Mon 02/27 Memory Hierarchy Optimizations
[pdf]
Discussion of Assignment 2 ALSU 7.4.2-7.4.3, 11.2-11.5
Wed 03/01 Array Dependence Analysis, Parallelization
[pdf]
ALSU 11.6
Fri 03/03 Recent Research on Optimization I
Handouts
Mon 03/06 Recent Research on Optimization II
Handouts
Wed 03/08 Recent Research on Optimization III
Handouts
Fri 03/10 No class - Mid-Semester break
Assignment 3 Homework problems due
Mon 03/13 No class - Spring break
Wed 03/15 No class - Spring break
Fri 03/17 No class - Spring break
Mon 03/20 Recent Research on Optimization: make-up session
Day of meetings to discuss Project Proposal ideas
Wed 03/22 Region-Based Analysis
[pdf]
Rest of Assignment 3 due ALSU 9.7
Fri 03/24 Instruction Scheduling
[pdf]
ALSU 10.1-10.3
Mon 03/27 Project Proposals
Proposal Report due before midnight tonight
Wed 03/29 Discussion of Assignment 3
Fri 03/31 Global Scheduling, Software Pipelining
[pdf]
ALSU 10.4-10.5
Mon 04/03 Prefetching Arrays
[pdf]
ALSU 11.11.4
Wed 04/05 Prefetching Pointer-Based Structures
[pdf]
Fri 04/07 No class
Mon 04/10 Thread-Level Speculation
[pdf]
Wed 04/12 No class
Fri 04/14 Project Milestone
Milestone Report due before midnight tonight
Mon 04/17 No class
Wed 04/19 Exam
Closed book, closed notes
Fri 04/21 No class - Spring Carnival
Mon 04/24 No class
Wed 04/26 No class
Fri 04/28 No class
Mon 05/01 No class
Wed 05/03 No class
Fri 05/05 Project Poster Session
Tue 05/09 Project Reports Due
Final Report due before midnight tonight

Last updated: Mon Apr 10 01:00:59 -0400 2017 [validate xhtml]