The presenter has five working days after the presentation to submit a write-up on the paper. These write-ups will be available from the class web page for the benefit of all the students.
| Class | Topic and readings | Presenter and notes |
| 1 | Introduction to data flow analysis
Readings: Data-flow analysis in favorite compiler text (e.g., Aho, Sethi, and Ullman Sections 10.1 to 10.6; or Muchnick Sections 8.1 to 8.4) |
Diwan DFA lecture , SUIF lecture |
| 2 | A selection of data-flow problems
Readings: Same as previous lecture |
Diwan |
| 3 | Static-single assignment form
Readings: Cytron et al. (TOPLAS Oct 91) Supplimental readings: Brandis and Mossenbock (TOPLAS Nov 94), Knobe and Sarkar (POPL98) |
Stevens ( notes ) |
| 4 | Applications of SSA form
Readings: Kennedy et al.(PLDI 1997) |
Levis ( notes ) |
| 5 | Demand driven analysis
Readings: Duesterwald et al. (TOPLAS Nov 1997) |
Hirzel ( notes ) |
| 6 | Demand driven analysis via graph reachability
Readings: Horwitz et al. (SIGSOFT 95) Supplimentary readings: Reps et al. (POPL 95) |
Lin Xia ( notes ) |
| 7 | Set constraint-based program analysis
Readings: Aiken (Science of computer programming, to appear) |
Soukup ( notes ) |
| 8 | Flow insensitive pointer analysis 1
Readings: Steensgaard (POPL96), Steensgaard with structures (International conference on compiler construction 1996) |
Lewis ( notes ) |
| 9 | Flow insensitive pointer analysis 2
Readings: Shapiro and Horwitz (POPL 97) |
Casmira ( notes ) |
| 10 | Flow insensitive pointer analyses 3
Readings: Aiken and Faehndrich (SAS 97) |
Lee ( notes ) |
| 11 | Speeding up pointer analyses
Readings: Fahndrich et al. (PLDI 98) |
Casmira ( notes ) |
| 12 | Flow and context-sensitive pointer analysis 1
Readings: Emami and Hendren (PLDI 94) |
Levis ( notes ) |
| 13 | Flow and context-sensitive pointer analysis 2
Readings: Wilson and Lam (PLDI 95) |
Hirzel ( notes ) |
| 14 | Flow and context-sensitive pointer analysis 3
Readings: Chatterjee et al. (POPL 99) |
Xia ( notes ) |
| 15 | Using pointer analysis 1
Readings: Ghiya and Hendren (POPL 98) |
Lee ( notes ) |
| 16 | Using pointer analysis 2
Readings: Diwan et al. (Submitted for publication) |
Hirzel ( notes ) |
| 17 | Simple heap analysis
Readings: Ghiya and Hendren (IJPP 96) |
Soukup ( notes ) |
| 18 | Shape analysis 1
Readings: Sagiv et al. (TOPLAS Jan 1998) |
Lewis ( notes ) |
| 19 | Shape analysis 2
Readings: Sagiv et al. (POPL 99) |
Brinkman-Davis ( notes ) |
| 20 | Escape analysis
Readings: Choi et al. |
Diwan |
| 21 | Path profiling
Readings: Ball and Larus (International symposium on microarchitecture 1996), Ammons and Larus (PLDI 1998) |
Lee |
| 22 | Continuous profiling
Readings: Anderson et al. (TOCS 1997) |
Soukup |
| 23 | Reverse execution
Readings: Netzer and Weaver (PLDI 1994) |
Xia ( notes ) |
| 24 | Reverse execution in functional languages
Readings: Tolmach and Appel (Journal of functional programming Apr 1995) |
Deleted |
| 25 | Memory system optimizations
Readings: Roth et al. (ASPLOS 98) |
Diwan |
| 26 | More memory system optimizations
Luk and Mowry (ISCA 99) |
Lewis ( notes ) |
| 27 | Simultaneous multithreading
Readings: Tullsen et al. (ISCA 95), Lo et al. |
Levis ( notes ) |
| 28 | Low-power computing
Readings : Bellas et al. |
Casmira |