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.