Schedule
September 2 |
Lesson 1: Welcome & Overview
|
---|---|
September 7 |
Performance and Measurement
(Adrian)
|
September 9 |
Lesson 2: Representing Programs
|
September 14 |
Lesson 3: Local Analysis & Optimization
|
September 16 |
Lesson 3: Local Analysis & Optimization
|
September 21 |
Lesson 4: Data Flow
|
September 23 |
Lesson 4: Data Flow
|
September 28 |
Lesson 5: Global Analysis & SSA
|
September 30 |
Profiling
(Ted Bauer)
|
October 5 |
Lesson 5: Global Analysis & SSA
|
October 7 |
Lesson 6: LLVM
|
October 12 |
Automatic Verification
(Goktug Saatcioglu & Samwise Parkinson)
|
October 14 |
Fall break
|
October 19 |
Lesson 7: Loop Optimization
|
October 21 |
Lesson 8: Interprocedural Analysis
|
October 26 |
Lesson 9: Alias Analysis
|
October 28 |
Alias-Based Optimization
(Kenneth Li)
|
November 2 |
Lesson 10: Memory Management
|
November 4 |
GC & Reference Counting
(Mark Moeller)
|
November 9 |
Modern GC
(Patrick LaFontaine)
|
November 11 |
Lesson 11: Dynamic Compilers
Dynamic Languages
(Evan Adler)
|
November 16 |
Semi-Finals Study Period
|
November 18 |
Semi-Finals
|
November 23 |
Semi-Finals
|
November 25 |
Thanksgiving break
|
November 30 |
Superoptimization
(Socrates Wong)
|
December 2 |
Synthesis-Aided Compilers
(Jie Liu)
Tracing
(Will Smith)
|
December 7 |
Lesson 13: Concurrency & Parallelism
|
December 9 |
Vectorization
(Ankush Rayabhari)
|
December 14 |
Safe Parallelism
(Hanchen Jin, Xinwen Wang)
|
December 16 |
Interactive Verification
(Priya Srikumar)
|
December 18 |
Final project due (no class)
|