| Date | Topic | Reading | Handouts | Due | |
| Basics | |||||
| Aug 22 (M) | Introduction (PDF) | Ch. 1.1-1.5 | syllabus | ||
| Aug 24 (W) | Scanning and Parsing (PDF) | Bison Manual Sections 1.1-1.4 | |||
| Aug 26 (F) | Undergrad compilers review (PDF) | ||||
| Aug 29 (M) | Data-flow analysis, Room 110, 2:10-3:45 (PDF) | Ch 8.1 | |||
| Aug 31 (W) | Control-flow analysis (PDF) | Ch 7-7.5 | |||
| Sept 2 (F) | Michelle out-of-town, will schedule a make-up lecture | ||||
| Sept 5 (M) | Labor Day -- No Class | ||||
| Sept 7 (W) | Michelle out-of-town, will schedule a make-up lecture | ||||
| Sept 9 (F) | Canceled due to FutureVision 2010 | Project 1 | |||
| Sept 12 (M) | C-Breeze compiler, Generalizing data-flow analysis, and Lattice-theoretic data-flow analysis, Room 110, 2:10-3:45 (PDF) | Using C-Breeze | |||
| Sept 14 (W) | Finish data-flow analysis (PDF) | [Stephenson00] | |||
| Analyses, Representations, and Transformations | |||||
| Sept 16 (F) | Static single assignment (PDF) | Ch 8.11 | |||
| Sept 19 (M) | Static single assignment Technicalities (PDF) | [Cytron et al 1991] (Optional) | |||
| Sept 21 (W) | Using SSA (PDF) | Ch 12.6, 14.1, 13.2 | Schedule for Project 2 | ||
| Sept 23 (F) | Loop Invariant Code Motion (PDF) | Ch 8.10, 13.2 | HW1 | ||
| Sept 26 (M) | Reuse Optimizations: Value Numbering (PDF) | Ch 12.4, [Alpern and Zadeck 1992] | |||
| Sept 28 (W) | Reuse Optimizations: Common Sub-Expr Elim (PDF) | Ch 13.1 | |||
| Sept 30 (F) | Reuse Optimizations: PRE (PDF) | Ch 13.3 | |||
| Oct 3 (M) | Pointer and Alias Analysis I (PDF) | Ch 10.1 | |||
| Oct 5 (W) | Pointer and Alias Analysis II (PDF) | [Emami 94] | |||
| Oct 7 (F) | Midterm Review (PDF) | HW2 | |||
| Oct 10 (M) | Midterm Exam (in class) | Oct 12 (W) | Interprocedural Analysis ( PDF) | Ch 19.1, 19.3 | |
| Oct 14 (F) | Interprocedural Analysis and Optimization ( PDF) | ||||
| Low-Level Topics | |||||
| Oct 17 (M) | Register allocation I (PDF) | Ch. 16, especially 16.3.11 | |||
| Oct 19 (W) | Register allocation II (PDF) | [Briggs] | |||
| Oct 21 (F) | Finish Register Allocation (PDF) | Ch. 19.6.1 | |||
| Oct 24 (M) | Instruction Scheduling I (PDF) | Project 2 | |||
| Oct 26 (W) | Instruction Scheduling II (PDF) | Ch. 17 | |||
| Oct 28 (F) | Profile-guided Optimization (PDF) | ||||
| Oct 31(M) | Predication and Speculation (PDF) | [Mahlke 92] | |||
| Nov 2 (W) | Dynamic compilation (PDF) | ||||
| High-Level Topics | |||||
| Nov 4 (F) | Parallelism and Locality (PDF) | [PaduaWolfe96] | |||
| Nov 7 (M) | Array Data Dependence Analysis (PDF) | Ch. 19.3, 19.4 | Project 3 | ||
| Nov 9 (W) | Value Dependence Analysis (PDF) | ||||
| Nov 11 (F) | Loop transformations (PDF) | Ch 20.4.2 | |||
| Nov 14 (M) | Transformation Frameworks (PDF) | ||||
| Nov 16 (W) | Michelle at SC05 -- No Class | ||||
| Nov 18 (F) | Tiling (PDF) | [LamWolf91] | Project 3 | ||
| Nov 21 (M) | Fall Recess -- No Class | ||||
| Nov 23 (W) | Fall Recess -- No Class | ||||
| Nov 25 (F) | Fall Recess -- No Class | ||||
| Nov 28 (M) | Compiling OO languages (PDF) | ||||
| Nov 30 (W) | Garbage collection, 2:10-3:50 (PDF) | Garbage Collection Basics | HW3 | Dec 2 (F) | Dr. Sanjay Rajopadhye |
| Emerging Topics | |||||
| Dec 5 (M) | Run-time reordering transformations (PDF) | ||||
| Dec 7 (W) | Beyond optimization - Bug Detection (PDF) | ||||
| Dec 9 (F) | Wrap up (PDF) | Project 3 | |||
| Dec 16 (F) | Final Exam (7am-9am) | ||||
These slides originated from a collaboration between Calvin Lin at the University of Texas and E Christopher Lewis at the University of Pennsylvania. They have been modified with their permission.