| Date | Day | Lecture | Topic | Readings | Handouts | Due |
| Foundations | ||||||
| Jan 21 | Wed | 1 | Introduction |   | Syllabus |   |
| Jan 26 | Mon | 2 | Undergrad Compilers in a Day |   | Assignment 1 |   |
| Jan 28 | Wed | 3 | Control Flow Analysis |   |   |   |
| Feb 2 | Mon | 4 | Data Flow Analysis |   | Assignment 2 |   |
| Feb 4 | Wed | 5 | Generalizing Dataflow Analysis |   |   |   |
| Feb 9 | Mon | 6 | Lattice Theoretic Foundation for DFA | Reading 1: CSmith |   |   |
| Feb 11 | Wed | 7 | Static Single Assignment form |   |   |   |
| Feb 16 | Mon | 8 | SSA (cont) |   |   |   |
| Feb 18 | Wed | 9 | SSA, LLVM, Partial SSA   | Wegman and Zadeck |   |   |
| Feb 23 | Mon | 10 | Reuse Optimizations I |   |   |   |
| Feb 25 | Wed | 11 | Partial Redundancy Elimination |   | Assignment 3 |   |
| Interprocedural Analysis | ||||||
| Mar 2 | Mon | 12 | Introduction to Alias Analysis |   |   |   |
| Mar 4 | Wed | 13 | Interprocedural Analysis |   |   |   |
| Mar 9 | Mon | 14 | Flow-Insensitive Pointer Analysis |   |   |   |
| Mar 11 | Wed | 15 | Context-Sensitive Pointer Analysis | Demand Interprocedural DFA |   |   |
| Mar 16 | Mon |   | Spring Break | |||
| Mar 18 | Wed |   | Spring Break | |||
| Modern Uses | ||||||
| Mar 23 | Mon | 16 | Domain-Specific Compilation |   |   |   |
| Mar 25 | Wed | 17 | Adaptive Pointer Analysis |   |   |   |
| Mar 30 | Mon | 18 | Flow-Sensitive Pointer Analysis |   |   |   |
| Apr 1 | Wed | 19 | Compiling OO Programs |   |   |   |
| Apr 6 | Mon | 20 | Data Reorganization |   |   |   |
| Apr 8 | Wed | 21 | Field Analysis |   |   |   |
| Traditional Uses | ||||||
| Apr 13 | Mon | 22 | Register Allocation   |   |   |   |
| Apr 15 | Wed | 23 | More Register Allocation |   |   |   |
| Apr 20 | Mon | 24 | Instruction Sechduling |   |   |   |
| Apr 22 | Wed | 25 | Predication and Speculation |   |   |   |
| Apr 27 | Mon | 26 | Compiling for Parallelism and Locality |   |   |   |
| Apr 29 | Wed | 27 | Loop Transformations |   |   |   |
| May 4 | Mon | 28 | Dynamic Compilation |   |   |   |
| May 6 | Wed | 29 |   | Dynamic Translation  |   |   |