| Date | Topic | Paper | Student | Due | |
| Jan 17 (W) | Introduction (slides) | Syllabus, How to Read an Engineering Research Paper and Basic Research Skills in Computer Science | |||
| Understanding the Problems | |||||
| Jan 22 (M) | Performance (slides) | Quantifying Behavioral Differences Between C and C++ Programs by Brad Calder, Dirk Grunwald, and Benjamin Zorn, GPGPU Computing and the Heterogeneous Multi-Core Future by B. Scott Michel | Paper critique (for remaining weeks, there is a paper critique due once a week, either before Tuesday class or before Thursday class) | ||
| Jan 24 (W) | Program Safety (or lack thereof) | Defect Detection at Microsoft - Where the Rubber Meets the Road by Manuvir Das, Software Bugs Can be Lethal at CBS News April 29, 2003; Software Hell at Business Week December 6, 1999; also see Well Known Software Failures and Sony CD copy protection controversy | |||
| Analysis Examples and Compiler Infrastructures for Performing Analysis | |||||
| Jan 29 (M) | Dataflow analysis Examples | Finding Bugs is Easy by David Hovemeyer and Bill Pugh and Bidwidth analysis with application to silicon compilation by Stephenson et al. | |||
| Jan 31 (W) | Cetus compiler | Experiences in Using Cetus for Source-to-Source Transformations by Johnson et al. | Select an open paper for presentation to class by Friday | ||
| Feb 5 (M) | LLVM compiler | LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation by Lattner and Adve and Automatic Pool Allocation: Improving Performance by Controlling Data Structure Layout in the Heap by Lattner and Adve | open | ||
| Feb 7 (W) | GCC Compiler | Generic and Gimple: A New Tree Representation for Entire Functions by Merrill and in the same file "Tree SSA: A New Optimization Framework for GCC" by Novillo (the papers were extracted from the Proceedings of the GCC Developers Summit 2003). Also Design and Implementation of Tree SSA by Novillo (the paper was extracted from the Proceedings of the GCC Developers Summit 2004). | open | ||
| Feb 12 (M) | Writing a Project Proposal (PDF) | How to Write a Master's Thesis in Computer Science | Proposed tool example, preliminary project proposal | ||
| Static Single Assignment | |||||
| Feb 14 (W) | SSA(slides) | Efficiently Computing Static Single Assignment Form and the Control Dependence Graph by Cytron et. al. | open | ||
| Feb 19 (M) | Out-of-town, reschedule for 23rd | ||||
| Feb 21 (W) | Out-of-town, students should discuss and select mini research exam topics | ||||
| Feb 23 (F) | Makeup class | Unified Analysis of Array and Object References in Strongly Typed Languages by Fink, Knobe, and Sarkar | open | ||
| Precision versus Efficiency Tradeoff | |||||
| Feb 26 (M) | Pointer Analysis Survey | Pointer Analysis: Haven't We Solved This Problem Yet? by Michael Hind | Andy | ||
| Feb 28 (W) | Importance of context and flow sensitivity | Client-Driven Pointer Analysis by Samuel Z. Guyer and Calvin Lin | Arun | ||
| March 5 (M) | How to give a talk (PDF) | Project proposal, tool example | |||
| March 7 (W) | Shape analysis | Connection Analysis: A Practical Interprocedural Heap Analysis for C by Rakesh Ghiya and Laurie J. Hendren | open | ||
| Mar 12 (M) | Spring Break | ||||
| Mar 14 (W) | Spring Break | ||||
| March 19 (M) | Improving on Unification-based precision | Unification-based pointer analysis with directional assignments by Manuvir Das | open | Mini research exam proposal | |
| Dynamic Analysis | |||||
| March 21 (W) | Static and Dynamic Analysis | Program Analysis: A Hierarchy by Zeller and Static and Dynamic Analysis: Synergy and Duality by Ernst | open | ||
| Mar 26 (M) | Project status reports | Verbal status report | |||
| Mar 28 (W) | Path Profiling | Efficient Path Profiling by Thomas Ball and James R. Larus | Batsukh | ||
| April 2 (M) | Finishing the project | The Elevator Speech | |||
| April 4 (W) | Profiling and Dataflow Analysis | Improving Data- Flow Analysis with Path Profiles by Glenn Ammons and James Larus | open | ||
| Data Dependence Analysis | |||||
| April 9 (M) | Data dependence analysis | Advanced compiler optimizations for supercomputers by David A. Padua and Michael J. Wolfe | David | ||
| Apr 11 (W) | Connection between data dependence analysis and the polyhedral model | A Dataflow Analysis of Array and Scalar References by Paul Feautrier | open | Intermediate project report | |
| Static/Dynamic Data Dependence Analysis | |||||
| Apr 16 (M) | Non-affine references | Nonlinear Array Dependence Analysis by Bill Pugh and David Wonnacott | open | ||
| Apr 18 (W) | Hybrid Analysis | Hybrid analysis: static and dynamic memory reference analysis by Silvius Rus and Lawrence Rauchwerger and Jay Hoeflinger | open | Mini Research Exam writeups | |
| April 23 (M) | Two Mini Research exams | Mini-Research Exam | |||
| April 25 (W) | Two Mini Research exams | Mini-Research Exam | |||
| Domain-Specific Code Generation | |||||
| April 30 (M) | PHiPaC and ATLAS | Optimizing Matrix Multiply using PHiPAC: a Portable, High-Performance, ANSI C Coding Methodology by Jeff Bilmes, Krste Asanovic, Chee-whye Chin, and Jim Demmel and ATLAS paper entitled "Automated Empirical Optimization of Software and the ATLAS project" | open | ||
| May 2 (W) | OSKI | OSKI: A library of automatically tuned sparse matrix kernels by Vudoc et al., Related site: Automatic Tuning of Whole Applications: A LACSI Symposium Workshop | open | Elevator speeches and Final project report | |