CS 380C: Lecture Schedule and Notes


    Copyright Notice I do not grant anyone the right to publish these materials for profit, in any form. These lecture notes are for a graduate course in "Advanced Optimizing Compilers" and you may use them for non-profit educational purposes without charge.

    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!


    Kathryn S. McKinley