Schedule
January 25 |
Lesson 1: Welcome & Overview
|
|
---|---|---|
January 27 |
Performance and Measurement
(Adrian)
|
|
February 1 |
Lesson 2: Representing Programs
|
|
February 3 |
Lesson 3: Local Analysis & Optimization
|
|
February 8 |
Lesson 3: Local Analysis & Optimization
|
|
February 10 |
Lesson 4: Data Flow
|
|
February 15 |
Lesson 4: Data Flow
|
|
February 17 |
Lesson 5: Global Analysis
|
|
February 22 |
Profiling
(Niansong Zhang, Jiajie Li)
|
|
February 24 |
Lesson 6: Static Single Assignment
|
|
March 1 | February break |
|
March 3 |
Lesson 7: LLVM
|
|
March 8 |
Automatic Verification
(Aaron Tucker)
|
|
March 10 |
Lesson 8: Loop Optimization
|
|
March 15 |
Lesson 9: Interprocedural Analysis
|
|
March 17 |
Lesson 10: Alias Analysis
|
|
March 22 |
Alias-Based Optimization
(Andrew Butt, Andrey Yao)
|
|
March 24 |
Lesson 11: Memory Management
|
|
March 29 |
GC & Reference Counting
(Michael Maitland and Orko Sinha)
|
|
March 31 |
Modern GC
(Shubham Chaudhary and Ayaka Yorihiro)
|
|
April 5 | Spring break |
|
April 7 | Spring break |
|
April 12 |
Lesson 12: Dynamic Compilers
|
|
April 14 |
Dynamic Languages
(Charles Sherk)
|
|
April 19 |
Tracing
(Yulun Yao)
|
|
April 21 |
Lesson 13: Program Synthesis
|
|
April 26 |
Superoptimization
(Victor Giannakouris and Jonathan Tran)
|
|
April 28 |
Synthesis-Aided Compilers
(Hongzheng Chen)
|
|
May 3 |
Lesson 14: Concurrency & Parallelism
|
|
May 5 |
Safe Parallelism
(Nikita Lazarev and Susan Garry)
|
|
May 10 |
Interactive Verification
(Anshuman Mohan and Alaia Solko-Breslin)
|
|
May 19 | Final project due (no class) |
|