week class date lectures
1 1 3-Sep compiler structure, IR, types of code optimization
2 5-Sep removing redandant computation
2 3 10-Sep value numbering, local
4 12-Sep value numbering, local
3 5 17-Sep value numbering, global
6 19-Sep data flow analysis, AVAIL and LIVE
4 7 24-Sep data flow analysis, general
8 26-Sep def-use chains
5 9 1-Oct SSA
10 3-Oct SSA, project assignment
Fall break, 10/7
6 11 8-Oct lazy code motion, dead code elimination, constant propogation
12 10-Oct partial redundancy elimination
7 13 15-Oct instruction scheduling, local, loop, and global
14 17-Oct mid-term exam
8 15 22-Oct register allocation
16 24-Oct introduction to compiling for high-performance architecture
9 17 29-Oct dependence theory
18 31-Oct dependence classification
10 19 5-Nov vectorization
20 7-Nov dependence testing I
11 21 12-Nov dependence testing II, parallelism
22 14-Nov control flow, array register allocation, unroll-and-jam
12 24 19-Nov loop fusion, data prefetching
25 21-Nov interprocedural analysis
13 26 26-Nov class review
Thanksgiving, 11/27-12/1
14 27 3-Dec functional languages, binding, environment, scope
28 5-Dec semantics
15 24 10-Dec semantics
25 12-Dec project presentation
Final exam, 12/18, 7:15pm