W L Date Topic Required Reading Suggested Reading Note
112012-01-10Introduction, parallel computersChapter 1Why computer science does not matterSlides
22012-01-12ScanningChapter 2 (except Sections 2.4 and 2.6)Section 2.4Slides
232012-01-17ParsingChapter 3 (except Section 3.6)Slides
42012-01-19
352012-01-24
62012-01-26Context sensitive analysisChapter 4Slides
472012-01-31Intermediate representationsChapter 5
82012-02-02
592012-02-07Procedure abstractionChapter 6Slides
102012-02-09
6112012-02-14OO supportChapter 6Slides
122012-02-16Intro to optimizationChapter 8Slides
7132012-02-21
142012-02-23
8152012-02-28Data flow analysisChapter 9
162012-03-01
9172012-03-06
2012-03-08Midterm exam
102012-03-13No class (spring break)
2012-03-15No class (spring break)
11182012-03-20SSAChapter 9, SSA paperConditional constant propagation
192012-03-22
12202012-03-27
212012-03-29
13222012-04-03Dependence analysis and vectorizationChapter 2 in Allen and KennedySlides
232012-04-05
14242012-04-10
252012-04-12Dependence testingChapter 3 in Allen and KennedySlides
15262012-04-17Scalar optimizationsChapter 10Slides
272012-04-19
16282012-04-24

Unless noted otherwise, chapter and section numbers refer to the chapters and sections from the textbook. Some of the slides are in HTML, viewable in any standard browser. You must have Javascript enabled, which is usually enabled by default in most browsers. Navigate through the slides using arrow keys or PgUp and PgDn keys. You can toggle between slide-view and notes-view by pressing the key `t'. The slideshow should work on most modern browsers—it has been tested on Safari, Firefox, and Chrome.

Overview of the schedule

  1. Introduction (1 lecture)
  2. Parallel Computers (1 lecture)
  3. Scanning and Parsing (1 lecture)
  4. Dataflow analysis and traditional optimizations (6 lectures)
  5. SSA—Static Single Assignment and its applications (3 lectures)
  6. Dependence analysis (4 lectures)
  7. Scripting languages, virtual machines (3 lectures)
  8. Handling Object-oriented and Dynamic Features (6 lectures)
  9. Advanced topics, such as compiling advanced language constructs, type inference, dynamic compilation, etc. (2 lectures)

Note: The number of lectures indicated in the parentheses are approximate and only provided to give you an idea of the extent of coverage of a particular topic. The actual number of lectures devoted to a topic may vary.