COMP 621 Program Analysis and Transformations (Fall 2016)
This web page is for the Fall 2016 version of COMP 621. Please check back regularly for any changes.

Announcements

About this course

Time: Tuesdays and Thursdays 10:00-11:30
Place: McConnell 103
Course Outline (html) (pdf)

People

Lecturer - Professor Laurie Hendren
Teaching assistants

Assignments and Projects

Special Topic Slides


Week by week
(* = LECTURE, ** = SPECIAL DAY, ST = SPECIAL TOPIC, GL = GUEST LECTURE, PP = PROJECT PRESENTATIONS, NL = NO LECTURE)

Week 1: Introduction to Optimizations

  September 2016
S  M Tu  W Th  F  S
4  5  6  7  8  9 10 
      *     *
Reading:
Course Outline ((html) , (pdf) )
Aho - Chapters 1 and 2 (for those with no previous compiler course)
JIT compilation
Brief History of Fortran - first successful HLL and compiler

Week 2: Intermediate Reps, Control Flow Analysis

   September 2016 
 S  M Tu  W Th  F  S
11 12 13 14 15 16 17 
       *     *     
Intermediate Representations
Basic Blocks
Control Flow Graphs (CFGs)
Control Flow Analysis
Loops and Dominators

Reading:
Muchnick - Chapter 4 - Intermediate Representations
Control Flow Analysis Lecture Notes
MATLAB and McLAB Intro Lecture Notes

Week 3: Intro to Dataflow Analysis

    September 2016
 S  M  Tu  W Th  F  S
 18 19 20 12 22 23 24 
        *    GL    
Dataflow Analysis
Reading:
Appel - Chapter 17 - Dataflow Analysis

Week 4: More Dataflow Analysis

   September 2016 
 S  M Tu  W Th  F  S
25 26 27 28 29 30 31  
       *     *     

Week 5: Intro to optimizations

   October 2016 
 S  M Tu  W Th  F  S
 2  3  4  5  6  7  8  
       *     *    
More on dataflow analyses
Intro. to optimizations
Early optimizations
Reading:
Muchnick - Chapter 11 - Introduction to Optimizations
Muchnick - Chapter 12 - Early Optimizations

Week 6: Interprocedural Analysis

   October 2016
 S  M Tu  W Th  F  S
 9 10 11 12 13 14 15 
   TM  *    * 
Thanksgiving Monday
Introduction to interprocedural analysis and optimizations
Reading:
Class notes
Muchnick - Chapter 15 - Procedure Optimizations

Week 7: Points-to Analysis

  October 2016
 S  M Tu  W Th  F  S
16 17 18 19 20 21 22 
       *     *   
Alias pairs vs points-to relationships
Aliases due to call-by-reference
Aliases due to the & operator
Multi-level pointers
Handling Dynamically-allocated memory
Using the results of points-to analysis
Reading:

Context-Sensitive and Flow-Sensitive

Cont. Sens. Points-to Analysis (.ps)

Flow-Insensitive

Fast Points-to - POPL 96 (.ps)
Fast Points-to - McCAT (.ps)
Points-to and SPARK

Week 8: SSA, GVN

   October 2016 
Su Mo Tu We Th Fr Sa
23 24 25 26 27 28 29 
       *     *     
SSA form
SSA numbers
Global Value Numbering
Reading:
Extended SSA Numbering
GVN handouts for slides
GVN notes for slides
Appel - Chapter 19 - SSA Form

Week 9: Register Allocation

     November 2016     
Su Mo Tu We Th Fr Sa
       1  2  3  4  5  
       *     *     
Interference Graphs
Graph Colouring
Register Allocation
Simple Instruction Scheduling
Reading:
Appel - Chapter 11 - Register Allocation

Week 10: Compiling Dynamic Languages

   November 2016 
Su Mo Tu We Th Fr Sa
 6  7  8  9 10 11 12 
       *    *    

Week 11: Special Topics

  November 2016
Su Mo Tu We Th Fr Sa
13 14 15 16 17 18 19 
       *    *    

Week 12: Project Presentations

  November 2016
Su Mo Tu We Th Fr Sa
20 21 22 23 24 25 26 
   *     *

Weeks 13 and 14: Project Presentations

  November/December 2016
Su Mo Tu We Th Fr Sa
27 26 29 30 1  2  3  
       *     *   

Maintained by Laurie J. Hendren. Last modified Mon Sep 5 12:35:44 EDT 2016.
Compiler research projects: Soot, a Java analysis, optimization and transformation toolkit ---- abc, an AspectJ compiler. ---- McLAB, a compiler and VM toolkit for MATLAB