|
| Date | Subject | Student Prep | Notes | Suggested Exercises |
August 25 | Introduction | Read Ch. 1 in Purple Dragon Book | lecture01-Intro.ppt.pdf | Read the Syllabus and learn tools described in Project 0. |
| August 27 | Undergraduate compilers review | Reach Ch. 2 in Purple Dragon Book | 02-ugrad-review.txt, lecture02-ugradreview.ppt.pdf | 2.2.1, 2.2.2, 2.3.1, and questions in lecture notes |
| September 1 | Compiling Object-Oriented Programming Languages | | lecture03-OOP.ppt.pdf, lecture04-GC.ppt.pdf | |
| September 3 | Implementing Garbage Collection | Ch 7 especially Ch 7.6-7.6.3 | lecture04b-GCproj.txt | 7.4.1, what would heap look like with a singly-linked free list? how would the best-fit algorithm work on the example? ; 7.5.2, how does type safety or lack thereof affect GC? |
| September 8 | Implementing Garbage Collection cont... | project2-GC.pdf | GC-example.pdf | |
| September 10 | Liveness and Register Allocation | Ch 8.4, 9.2-9.25 | lecture05-DFintro.ppt.pdf, lecture05-DFintro.txt | 8.4.1, 9.2.1, 9.2.3 |
| September 15 | Register Allocation | Ch. 8.8, [Briggs] | lecture06-regalloc-cont.ppt.pdf, lecture06-regalloc.txt | 8.8.1 |
| September 17 | Instruction Scheduling | Ch. 10 | lecture07-instrSched.ppt.pdf, lecture07-instrsched.txt | See slides for exercises and 10.2.1, 10.2.3, and 10.3.2 in book |
| September 22 - October 6 | Data-flow analysis and Optimizations | Ch. 9 through 9.5 | lecture08-dataflow.ppt.pdf, lecture08-DFA.txt, lecture09-lattice.ppt.pdf, lecture09-lattice.txt, lecture10-dataflowopts.ppt.pdf, lecture11-PRE.ppt.pdf | From book 9.2.1, 9.2.2, 9.2.6 |
| October 8 | NO CLASS due to conference | | | |
| October 13 | Midterm in class | midterm-553-2006.pdf, midterm-553-2006.pdf | | |
| October 15 | Control-flow analysis, induction variables | Ch 9.6, 9.7 through 9.7.4, 9.7.6, 9.1.8 | lecture12-control.ppt.pdf, lecture12-control.txt | 9.6.1, 9.6.2, for both problems label the control flow graph with the terms header, preheader, exit node, exit edge, and back edge, 9.7.1, (induction vars #1) Write a MiniJava program that benefits from induction variable elimination and show all the steps of performing it. What changes must you make to the Assem to make induction variable elimination work? (induction vars #2) Perform strength reduction and induction variable elimination on Figure 9.3 in book. |
| October 20 - October 22 | SSA | Ch 6.2.4, SSA wikipedia entry, [Alpern and Zadeck 1992] | lecture13-SSA.ppt.pdf, lecture13-SSA.txt, lecture14-SSA.ppt.pdf | Translate Figures 9.5 and 9.10 in book to SSA. Also see slides for suggested exercises. |
| October 27 | Parallelism and data locality using loop transformation frameworks | Ch 11 through 11.3 | lecture15-localnparallel.ppt.pdf, lecture15-parlocal.txt | 11.3.2, 11.3.3, 11.6.2, 11.6.5, examples in slides |
| October 29 | Loop transformation | Ch 11.4-11.6, Ch 11.7.8 | lecture16-looptransform.ppt.pdf, lecture16-looptransform.txt | |
| November 3 - 5 | Loop transformation frameworks, Skewing, and Fourier-Motzkin Elimination | Ch. 11.3 and 11.4 | lecture17-unimod-FM.ppt.pdf | 11.3.4 and suggested exercise in text notes |
| November 10 - November 12 | Loop transformation frameworks and Parallelization | [Kelly and Pugh 1993], Ch. 11.7 | lecture18-fusion-KellyPugh.ppt.pdf, lecture18-pugh.txt, lecture19-parallel.ppt.pdf, lecture19-parallel.txt | |
| November 17 - November 19 | Tiling and Run-time Reordering Transformations | book pgs. 877-880, [Strout03] | lecture20-tiling.ppt.pdf | |
| November 24 and 26 | Fall Recess | | | |
| December 1 - December 8 | Interprocedural analysis and optimization | | | |
| December 10 | Emerging Topics and Review | | | |
| Monday December 14 from 1:30-3:30pm | Final | | | |