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

Announcements

About this course

Time: Mondays and Wednesdays 13:05 - 14:25
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 2015
S  M Tu  W Th  F  S
               *     
      1  2  3  4  5
         *
6  7  8  9 10 11 12
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 2015 
 S  M Tu  W Th  F  S
 13 14 15 16 17 18 19
    *     *     
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 and McLab Tutorial I

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

Week 4: More Dataflow Analysis and McLab Tutorial II

   September 2015 
 S  M Tu  W Th  F  S
27 28 29 30 31  
   *     *     

Week 5: Intro to optimizations

   October 2015 
 S  M Tu  W Th  F  S
 4  5  6  7  8  9 10
    *     *    
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 2015
 S  M Tu  W Th  F  S
11 12 13 14 15 16 17
    **    *     
   (NL)  
Thanksgiving Monday
Introduction to interprocedural analysis and optimizations
Reading:
Class notes
Muchnick - Chapter 15 - Procedure Optimizations

Week 7: Points-to Analysis

  October 2015
 S  M Tu  W Th  F  S
18 19 20 21 22 23 24
    *     *   
  (ST1)   (ST2)
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 2015 
Su Mo Tu We Th Fr Sa
25 26 27 28 29 30 31  
   *     *     
  (ST3)  (ST4)
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 2015     
Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7
    *     *     
  (ST5)  (ST6)
Interference Graphs
Graph Colouring
Register Allocation
Simple Instruction Scheduling
Reading:
Appel - Chapter 11 - Register Allocation

Week 10: Compiling Dynamic Languages

   November 2015 
Su Mo Tu We Th Fr Sa
 8  9 10 11 12 13 14 
    *    *    
   (ST7)  (ST8)

Week 11: Special Topics

  November 2015
Su Mo Tu We Th Fr Sa
15 16 17 18 19 20 21 
     *    *    
   (ST9)  (ST10 and ST11)

Week 12: Project Presentations

  November 2015
Su Mo Tu We Th Fr Sa
22 23 24 25 26 27 28 
   *     *
  (NL)  (PP)

Weeks 13 and 14: Project Presentations

  December 2015
Su Mo Tu We Th Fr Sa
29 30 1  2  3  4  5  
   *     *   
  (PP)  (PP)
6  7  8  9 10 11 12
   *       
  (PP)  

Maintained by Laurie J. Hendren. Last modified Fri Sep 4 11:47:57 EDT 2015.
Compiler research projects: Soot, a Java analysis, optimization and transformation toolkit ---- abc, an AspectJ compiler. ---- McLAB, a compiler and VM toolkit for MATLAB