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  |   |   |