Slides will be uploaded the day after class
Schedule is tentative and topics may change depending on interest and discussions
Module 1: Parsing Overview/Refresher
| Date | Topic | Slides | Reading | Notes |
|---|---|---|---|---|
| Friday, Sept. 24 | syllabus and introduction | slides | EAC Chapter 1 | |
| Monday, Sept. 27 | tokenizing | slides | EAC Chapter 2 | |
| Wednesday Sept. 29 | parsing 1 (CFGs) | slides | ||
| Friday Oct. 1 | parsing 2 (Trees and Ambiguity) | slides | EAC Chapter 3 | |
| Monday Oct. 4 | Python Lex and Yacc (PLY) | slides | PLY docs | homework 1 assigned |
| Wednesday Oct. 6 | PLY cont. Symbol Tables | slides | ||
| Friday Oct. 8 | parsing with derivatives | slides | parsing with derivatives paper (first 7 pages) |
Module 2: Flow Analysis
| Date | Topic | Slides | Reading | Notes |
|---|---|---|---|---|
| Monday, Oct. 11 | abstract syntax trees and traversals | slides | EAC Chapter 5 | |
| Wednesday, Oct. 13 | 3 address code and local value numbering | slides | EAC Chapter 8 (up to 8.5) | |
| Friday, Oct. 15 | local value numbering and data flow analysis | slides | EAC Chapter 8.5 and Chapter 9 (up to 9.3); | |
| Monday, Oct. 18 | Flow analysis (live variable analysis) | slides | EAC Chapter 9.3 | homework 1 due. homework 2 assigned |
| Wednesday, Oct. 20 | Class canceled! | Work on homework 2! | EAC Chapter 9.3, | |
| Friday, Oct. 22 | Flow analysis continued | slides | EAC Chapter 9.3 | class will be remote due to OOPLSA |
| Monday, Oct. 25 | Conversion to SSA | slides | EAC Chapter 9 (through the end) | |
| Wednesday, Oct. 27 | SSA optimizations | slides | EAC Chapter 9 (through the end) | midterm assigned |
Module 3: Parallelization
| Date | Topic | Slides | Readings | Notes |
|---|---|---|---|---|
| Friday, Oct. 29 | instruction level parallelism (ILP) | slides | Dragon Book Chapter 10 | |
| Monday, Nov. 1 | Do-all loops | slides | Dragon Book Chapter 11 (first half) | homework 2 due |
| Wednesday, Nov. 3 | safety analysis of Do-all Loops | slides | Dragon Book Chapter 11 (second half) | homework 3 assigned, and Midterm due |
| Friday, Nov. 5 | reordering loops and blocking | slides | ||
| Monday, Nov. 8 | implementing parallelism | slides | ||
| Wednesday, Nov. 10 | Compiling relaxed memory models | slides | ||
| Friday, Nov. 12 | Class canceled! | |||
| Monday, Nov. 15 | decoupled access/execute | slides | DAE paper | paper/project proposed |
Module 4: DSLs and Optimizations
| Date | Topic | Slides | Readings | Notes |
|---|---|---|---|---|
| Wednesday, Nov. 17 | array processing 1 | slides | Halide | homework 3 due, homework 4 assigned |
| Friday, Nov. 19 | array processing 2 | slides | ||
| Monday, Nov. 22 | Guest Lecture: Aviral Goel | |||
| Wednesday, Nov. 24 | graph processing | slides | IrGL | paper/project proposals approved |
| Monday, Nov. 29 | optimization impact | slides | Stabilizer |
Module 5: Final Projects
| Date | Topic | Slides | Readings | Notes |
|---|---|---|---|---|
| Wednesday, Dec. 1 | Class canceled to work on final project or study | |||
| Friday, Dec. 3 | final project presentations | homework 4 due. Paper review due, class will be extended an optional hour |
Final
| Date | Official time | Provided time | Notes |
|---|---|---|---|
| Thursday Dec. 9 | 8 - 11 AM | 8 AM - 8 PM | Final project report due. |