CS 738 - Advanced Compiler Optimization (2011-12 II Semester)

This course aims to teach advanced topics in compiler optimizations.


NEW: Check your performance HERE

Code of Ethics

Any report/program/assignment you submit must clearly distinguish your contribution from others (webpages, softwares, report, discussions with other students). The penalty for copying in any form will be severe.


Important : All emails either to the instructor or the TAs should begin with subject line "[CS738]" -- without any spaces in the course code (and without quotes). Email not complying to this rule will NOT be entertained. Dates following the announcement corresponds to the date when the announcement was made. DO NOT confuse it with submission deadlines. Keep checking the announcement section regularly.

Course Outline

The course will mainly cover topics from the following list (not necessarily in the same order). Not all topics listed below will be covered, and depending on class feedback, new topics may be added.


Assignments 5%
Paper presentation and critique 20%
Course Project 40%
--Proposal(5%)+Report(20%) +Presentation(15%)
End semester exam 30%
Class Discussions 5%

Topics Covered and Slides

The slides are not suitable for taking prints as there is lot of redundancy due to overlays. Use handouts if you really need a print.

  1. Introduction [handouts] [slides]
  2. Optimization Overview [handouts] [slides]
  3. Dataflow Analysis [handouts] [slides]
  4. ... (contd) [handouts] [slides]
  5. Foundations of Data Flow Analysis [handouts] [slides]
  6. ... (contd) [handouts] [slides]
  7. Flow Graph Theory [handouts] [slides] (Reading Assignment)
  8. Constant Propagation [handouts] [slides]
  9. Static Single Assignment Form [handouts] [slides] [paper]
  10. ... (contd) [handouts] [slides]
  11. Conditional Constant Propagation [handouts] [slides] [paper]
  12. SSA PRE [handouts] [slides] [paper]
  13. ... (contd) [handouts] [slides]
  14. Interprocedural Analysis [handouts] [slides]
  15. ... (Functional Approach) [handouts] [slides]
  16. ... (Call Strings Approach) [handouts] [slides] (Prof Uday Khedker's notes)
  17. Pointer Analysis [handouts] [slides] [Streensgaard] [Anderson]
  18. ... (contd)
  19. Heap Reference Analysis [handouts] [slides] [paper]
  20. ... (contd)
  21. ... (contd)


There will be short assignments to give you a chance to apply the lecture material. Assignments will have some written and some programming tasks.

Course Project

The course project gives you a chance to explore a specific area of compiler implementation in more depth. You will be required to implement some compiler feature, and perform an experimental evaluation of your implementation. You may do your implementation within any freely-available compiler infrastructure (e.g. Soot, JikesRVM, LLVM, gcc, Eclipse, Frama-C, etc.) (Some Details about each infrastructure.)

You will report on your project in a paper in the style of a PLDI research paper (approx. 10 pages), and give a presentation/demo of your project to the class. LaTeX and MS Word templates for the PLDI paper format are available from SIGPLAN.

Supporting Material

Research Material

Take me Home

powered by Pandoc

Last Modified at : Fri Nov 2 22:03:58 IST 2012