W | L | Date | Topic | Required Reading | Suggested Reading | Note |
---|---|---|---|---|---|---|
1 | 1 | 2012-01-10 | Introduction, parallel computers | Chapter 1 | Why computer science does not matter | Slides |
2 | 2012-01-12 | Scanning | Chapter 2 (except Sections 2.4 and 2.6) | Section 2.4 | Slides | |
2 | 3 | 2012-01-17 | Parsing | Chapter 3 (except Section 3.6) | Slides | |
4 | 2012-01-19 | |||||
3 | 5 | 2012-01-24 | ||||
6 | 2012-01-26 | Context sensitive analysis | Chapter 4 | Slides | ||
4 | 7 | 2012-01-31 | Intermediate representations | Chapter 5 | ||
8 | 2012-02-02 | |||||
5 | 9 | 2012-02-07 | Procedure abstraction | Chapter 6 | Slides | |
10 | 2012-02-09 | |||||
6 | 11 | 2012-02-14 | OO support | Chapter 6 | Slides | |
12 | 2012-02-16 | Intro to optimization | Chapter 8 | Slides | ||
7 | 13 | 2012-02-21 | ||||
14 | 2012-02-23 | |||||
8 | 15 | 2012-02-28 | Data flow analysis | Chapter 9 | ||
16 | 2012-03-01 | |||||
9 | 17 | 2012-03-06 | ||||
2012-03-08 | Midterm exam | |||||
10 | 2012-03-13 | No class (spring break) | ||||
2012-03-15 | No class (spring break) | |||||
11 | 18 | 2012-03-20 | SSA | Chapter 9, SSA paper | Conditional constant propagation | |
19 | 2012-03-22 | |||||
12 | 20 | 2012-03-27 | ||||
21 | 2012-03-29 | |||||
13 | 22 | 2012-04-03 | Dependence analysis and vectorization | Chapter 2 in Allen and Kennedy | Slides | |
23 | 2012-04-05 | |||||
14 | 24 | 2012-04-10 | ||||
25 | 2012-04-12 | Dependence testing | Chapter 3 in Allen and Kennedy | Slides | ||
15 | 26 | 2012-04-17 | Scalar optimizations | Chapter 10 | Slides | |
27 | 2012-04-19 | |||||
16 | 28 | 2012-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
- Introduction (1 lecture)
- Parallel Computers (1 lecture)
- Scanning and Parsing (1 lecture)
- Dataflow analysis and traditional optimizations (6 lectures)
- SSA—Static Single Assignment and its applications (3 lectures)
- Dependence analysis (4 lectures)
- Scripting languages, virtual machines (3 lectures)
- Handling Object-oriented and Dynamic Features (6 lectures)
- 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.