COMP 512: Advanced Compiler Construction

Professor Keith D. Cooper
Department of Computer Science
Rice University
Houston, Texas, USA
Fall 2002: Room 1046, Duncan Hall, Monday, Wednesday, Friday, 10am


Lecture Notes

  1. Introduction
  2. The Fortran H Compiler
  3. First Principles, Illustrated With Local Value Numbering
  4. Optimization Through Different Scopes
  5. Global Redundancy Elimination
  6. Iterative Data-flow Analysis, with mention of the lab exercises
  7. More Data-flow Analysis
  8. Definition-Use Chains
  9. Building SSA form ( This set of notes will undoubtedly require two lectures ...)
  10. Using SSA Form: Dead code elimination and Optimistic Constant Propagation
  11. Order from Chaos: the COMP 512 Taxonomy
  12. Lazy Code Motion
  13. Simplifying the Control-flow Graph (CLEAN)
  14. Algebraic Reassociation of Expressions
  15. Optimizing for Energy
  16. Operator Strength Reduction
  17. Optimizing for Code Size (two classes)
  18. Eliminating Array Bounds Checks
  19. Alpern, Wegman, & Zadeck's Partitioning Algorithm
  20. Code Replication
  21. Code Motion of Control Structures, a la Cytron, Lowry, and Zadeck (be sure to read the paper)
  22. Loop Transformations
  23. Investigating Adaptive Compilation Using The MIPSPro Compiler
  24. Profile Guided Code Positioning
  25. Register Allocation (Beyond the Undergraduate Course) (2 lectures)
  26. Experience papers: the PL.8 compiler
  27. Experience papers: the Deutsch-Schiffman Smalltalk-80 system
  28. Experience papers: Adaptive Compilation
  29. Post-compilation Optimization
  30. Experience papers:The Dynamo System
  31. Instruction Scheduling: local, superlocal, & regional
  32. Instruction Scheduling: software pipelining
  33. Interprocedural Analysis and Optimization (2 lectures)
  34. Ten Hardware Features That Affect Optimization
  35. The Last Lecture

Lecture by Lecture Bibliography

Here is a breakdown, by lecture, of relevant reading material. I am certain that you can gain all of the requisite knowledge by attending lecture, asking clever questions, and reading the sources mentioned in the slides. Still, some of you may want more material...