| Date | Day | Lecture | Topic | Readings | Handouts | Due |
| Foundations | ||||||
| Jan 18 | Wed | 1 | Introduction |   | Syllabus |   |
| Jan 23 | Mon | 2 | Undergrad Compilers in a Day |   | Assignment 1 |   |
| Jan 25 | Wed | 3 | Control Flow Analysis | Binary Translation |   |   |
| Jan 30 | Mon | 4 | Data Flow Analysis |   | Projects |   |
| Feb 1 | Wed | 5 | Generalizing Dataflow Analysis |   | Assignment 2 | Assignment 1 |
| Feb 6 | Mon | 6 | Lattice Theoretic Foundation for DFA | DFA Handout |   |   |
| Feb 8 | Wed | 7 | Static Single Assignment form |   |   |   |
| Feb 13 | Mon | 8 | Reuse Optimizations |   |   | Assignment 2 |
| Feb 15 | Wed | 9 | Reuse Optimizations II |   | Assignment 3 |   |
| Feb 20 | Mon | 10 | Introduction to Alias Analysis |   |   |   |
| Interprocedural Analysis | ||||||
| Feb 22 | Wed | 11 | Intro to Interprocedural Analysis | Pointer Analysis Overview |   |   |
| Feb 27 | Mon | 12 | Flow-Insensitive Pointer Analysis |   |   |   |
| Mar 1 | Wed | 13 | Context-Sensitive Pointer Analysis |   |   |   |
| Mar 6 | Mon | 14 | Adaptive Pointer Analysis |   |   |   |
| Modern Uses | ||||||
| Mar 8 | Wed | 15 | Domain-Specific Analysis |   |   |   |
| Mar 13 | Mon |   | Spring Break | |||
| Mar 15 | Wed |   | Spring Break | |||
| Mar 20 | Mon | 16 | Program Slicing |   |   |   |
| Mar 22 | Wed | 17 | Optimizing OO languages | Adaptive Optimization |   |   |
| Mar 27 | Mon | 18 | Code and Data reorganization |   |   |   |
| Mar 29 | Wed | 19 | Field Analysis |   |   |   |
| Traditional Uses | ||||||
| Apr 3 | Mon | 20 | Register Allocation |   |   |   |
| Apr 5 | Wed | 21 | More Register Allocation | SSA-Based Register Allocation | Background for reading |   |
| Apr 10 | Mon | 22 | Instruction Scheduling |   |   |   |
| Apr 12 | Wed | 23 | No class |   |   |   |
| Apr 17 | Mon | 24 | Dynamic Optimizations |   |   |   |
| Apr 19 | Wed | 25 | More Dynamic Optimizations |   |   |   |
| Apr 24 | Mon | 26 | Speculation and Predication |   | Dynamo paper |   |
| Apr 26 | Wed | 27 | Locality and Parallelism |   |   |   |
| May 1 | Mon | 28 | Loop Transformations |   |   |   |
| May 3 | Wed | 29 | Conclusions |   |   |   |