CS 380C: Lecture Schedule and Notes
Kathryn S. McKinley, The University of Texas at Austin
Date | Topics | Reading & Assignments | |||
---|---|---|---|---|---|
Wed 8/26 | Course Overview | Course goals, syllabus, and workload. | |||
Why am I in graduate school? Why am I taking this course? | |||||
Mon 8/31 | 1. Program Analysis and Optimization | Backus, Beeber, Best, Goldberg, Haibt, Herrick, Nelson, Sayre, Sheridan, Stern, Ziller, Hughes, and Nutt, The Fortran Automatic Coding System, Proceedings of the Western Joint Computer Conference, pp. 187-198, Los Angeles, CA, February, 1957. | |||
What a compiler does and why we care. | |||||
Wed 9/2 | 2. Program Representation | Graph Theory Basics (Wikipedia) | |||
Control Flow, Loops | |||||
Mon 9/7 | Holiday - No Class | ||||
Wed 9/9 | 3. Data Flow Analysis | T.J. Marlowe and B.G. Ryder Properties of Data Flow Frameworks, pp. 121-163, ACTA Informatica, 28, 1990. | |||
Fri 9/11 | Due 5pm: Programming Assignment 1 | Basic translation: 3 address IR (Intermediate Representation) to C code | |||
Mon 9/14 | 4. More Data Flow Analysis | ||||
Why it works, what it computes | |||||
Wed 9/16 | 5. Putting Dataflow Analysis to Work | Wegman & Zadeck, Constant Propagation with Conditional Branches, ACM Transactions on Programming Languages and Systems, 13(2):181-210, April 1991. | |||
Live Variables & Constant Propagation | |||||
Mon 9/21 | 6. More Program Representation | K. D. Cooper, T. Harvey, and K. Kennedy, A Simple, Fast Dominance Algorithm, Software Practice and Experience, 2001:4:1-28. | |||
Dominators, Control Dependence | |||||
Wed 9/23 | 7. Static Single Assignment | Cytron et al. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph, ACM Transactions on Programming Languages and Systems, 13(4):451-490, Oct 1991. You may skip: 463-469 and 476-486. | |||
Mon 9/28 | 8. Optimizations using SSA | ||||
Loop Induction Variables, | |||||
Loop Invariant Code Motion | |||||
Wed 9/30 | 9. Optimizing Expressions | P. Briggs, K. D. Cooper, L. Taylor Simpson, Value Numbering, Software-Practice & Experience, 27(6): 701-724, 1997. | |||
CSE & Value Numbering | |||||
Fri 10/2 | Due 5pm: Programming Assignment 2 | Data flow analysis and scalar optimization | |||
Mon 10/5 | 10. Scheduling | Proebsting & Fischer, Linear-time, Optimal Code Scheduling for Delayed-Load Architectures, ACM Conference on Programming Language Design and Implementation, pp. 256-267, Toronto, Canada, June 1991. | |||
Scheduling & register allocation | |||||
Wed 10/7 | 11. More on Expressions | Hunt, Maher, Coons, Burger, McKinley, Optimal Huffman Tree-Height Reduction for Instruction Level Parallelism , Department of Computer Sciences, The University of Texas at Austin, TR-08-34, 2008. | |||
Tree Height Reduction | |||||
Mon 10/12 | 12. Register Allocation | P. Briggs, Register Allocation via Graph Coloring, Phd dissertation, Rice University, April 1992, Chapters 1, 2, 3, 6, 7, 8 & 9. | |||
Graph Coloring | |||||
Wed 10/14 | 13. More Graph Coloring | ||||
Mon 10/19 | 14. Linear Scan Register Allocation | Traub, Holloway, & Smith, Quality and Speed in Linear-scan Register Allocation, ACM Conference on Programming Language Design and Implementation, pp. 142-151, June 1998, Montreal Canada. | |||
Wed 10/21 | 15. Dynamic Compilation | M. Arnold, S. Fink, D. Grove, M. Hind, P. Sweeney, A Survey of Adaptive Optimization in Virtual Machines, IEEE Computer, 92(2):449-466, February 2005. | |||
Fri 10/23 | Due 5pm: Programming Assignment 3 | SSA and scalar optimizations | |||
Mon 10/26 | 16. Inlining | K. Hazelwood, and D. Grove, Adaptive Online Context-Sensitive Inlining Conference on Code Generation and Optimization, pp. 253-264, San Francisco, CA March 2003. | |||
Wed 10/28 | 17. Garbage Collection | Blackburn, Cheng, and McKinley, Myths and Realities: The Performance Impact of Garbage Collection, SIGMETRICS, pp. 25-36, New York, NY, June 2004. | |||
Mon 11/2 | 18. Mark-Region Garbage Collection | Blackburn and McKinley, Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance, ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 22-32, Tucson AZ, June 2008. | |||
Wed 11/4 | 19. Online Object Reordering | X. Huang, S. M. Blackburn, K. S. McKinley, J. E. B. Moss, Z. Wang, and P. Cheng, The Garbage Collection Advantage: Improving Program Locality, ACM Conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 69-80, Vancouver, Canada, October 2004. | |||
Mon 11/9 | 20. Software, Experiments, & Testing | Blackburn et al., Wake Up and Smell the Coffee: Evaluation Methodology for the 21st Century, Communications of the ACM, Research Highlights (Invited), 51(8): 83-89, August, 2008. | |||
Wed 11/11 | 21. Alias Analysis | A. Diwan, K. S. McKinley, and J. E. B. Moss, Using Types to Analyze and Optimize Object-Oriented Programs, ACM Transactions on Programming Languages and Systems, 23(1): 30-72, January 2001. | |||
Optional Reading: M. Hind and A. Pioli, Which Pointer Analysis Should I Use? ACM International Symposium on Software Testing and Analysis, pp. 113-123, Portland, OR, August 2000. | |||||
Mon 11/16 | 22. Interprocedural Analysis | Grove & Torczon, Interprocedural Constant Propagation: A Study of Jump Function Implementations, ACM Conference on Programming Language Design and Implementation, pp. 90-99, Albuquerque NM, June 1993. | |||
Overview & Constant Propagation | |||||
Wed 11/18 | 23. Dependence Analysis | Goff, Tseng, & Kennedy, Practical Dependence Testing, ACM Conference on Programming Language Design and Implementation, pp. 15-29, Toronto, Canada, June 1991. | |||
Fri 11/20 | Due 5pm: Programming Assignment 4 | Register Allocation | |||
Mon 11/23 | 24. Loop Transformations | McKinley, Carr, & Tseng, Improving Data Locality with Loop Transformations, ACM Transactions on Programming Languages and Systems, 18(4):424-453, July 1996. | |||
Improving Locality | |||||
Wed 11/25 | Happy Thanksgiving - No Class | ||||
Mon 11/30 | 25. Compiling for EDGE Architectures | D. Burger et al., Compiling for TRIPS Scaling to the End of Silicon with EDGE Architectures, IEEE Computer, pp. 44-55, July 2004. | |||
Wed 12/2 | 25. Spatial Scheduling | K. Coons, X. Chen, S. Kushwaha, D. Burger, and K. S. McKinley, A Spatial Path Scheduling for EDGE Architectures, ACM Conference on Architecture Support for Programming Languages and Operating Systems, pp. 129-140, San Jose CA, October 2006. | |||
26. The End. | |||||
Acknowledgments. Some of these lecture notes have mutated from others by Keith Cooper, Lori Pollock, Chau-Wen Tseng, and Amer Diwan. The lab assignments are based on ones developed by Keshav Pingali and the csc tool used in the lab was developed by Martin Burtscher. Thanks!