CSI6522 Compiler Design

This course focuses on the interpretation and compilation techniques needed to obtain high performance on modern computer architectures. Program analysis and optimization techniques are presented in class lectures. The programming projects provide experience with implementation issues and allow students to evaluate the impact of many of the techniques covered in the course in the context of an actual compiler.

Synopsis:

  • Introduction to compilers and interpreters
  • Optimizing compilers
  • The LLVM compiler infrastructure
  • Analyses:
    • Control flow analysis
    • Data flow analysis
      • Static single assignment form
    • Interprozedural analysis
  • Optimizations:
    • Code compaction
    • Loop optimizations
  • Programming language and compiler support for multicore architectures