COMP 512: Advanced Compiler Construction

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


This page contains both the PDF format copies of the lecture notes, and a lecture-by-lecture bibliography for the class. Some of the reading materials are available on the Rice Only readings page; others will require you to visit the ACM Digital Library or the university's library.

Finally, you can often find papers on Google Scholar. Look up the paper by author or title, then check to see if it has a copy of the actual document.

Lecture Notes

  1. Introduction to Optimization, or packed version


  2. Experience Paper: The Fortran H Compiler, or packed version


  3. Value Numbering as an Introduction to Optimization, or packed version (two lectures)


  4. Global Analysis (& Optimization), or packed version


  5. More on Data-flow Analysis, or packed version


  6. Allen-Cocke Interval Analysis, or packed version


  7. Proliferation of Data-flow Analysis Problems, or packed version


  8. Static Single Assignment Form


  9. Using SSA: Dead Code Elimination and Constant Propagation


  10. Order from Chaos: The COMP 512 Taxonomy, or packed version


  11. Profile-guided Code Positioning, or packed version


  12. CLEAN: Removing Useless Control Flow, or packed version


  13. Operator Strength Reduction


  14. Lazy Code Motion, or packed version


  15. Algebraic Reassociation of Expressions, or packed version


  16. Code Replication, or packed version


  17. Code Motion of Control Structures, or packed version


  18. Optimization of Range Checking, or packed version


  19. IBM's PL.8 Compiler, or packed version


  20. Compiling for Reduced Energy Consumption, or packed version


  21. Register Allocation Via Graph Coloring, or packed version


  22. Instruction Scheduling: Introduction & Local List Scheduling, or packed version


  23. Instruction Scheduling: Randomization, Register Pressure, and More, or packed version


  24. Balanced scheduling, or packed version


  25. Instruction Scheduling: Software Pipelining, or packed version


  26. Instruction Scheduling: More Software Pipelining and Other Superlocal Techniques, or packed version


  27. Ten Hardware Features that Affect Optimization, or packed version


  28. Register Allocation via Hierarchical Graph Coloring


  29. Interprocedural Analysis and Optimization, or packed version (2 lectures)


  30. Dynamic Compilation in an OOL: The Deutsch-Schiffman Impementation of Smalltalk-80, or packed version


  31. Dynamic (or runtime) Optimization , or packed version


This site is maintained by Keith D. Cooper.
He is a terrible e-mail correspondent.