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

Announcements

  • March 31, Assignment #3 posted
  • February 19, Project list posted
  • February 3, Assignment #2 Posted
  • January 29, Special Topics Posted
  • January 15, Assignment #1 posted
  • First class, Monday, January 6, MC 103 at 11:30
  • January 6, Assignment #0 posted

Sign up and follow the Google group

About this course

Time: Mondays and Wednesdays 11:35 - 12:55
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

  January 2014
S  M Tu  W Th  F  S
   *     *     
5  6  7  8  9 10 11 
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

    January 2014
 S  M Tu  W Th  F  S
 12 13 14 15 16 17 18
    *     *     
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

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

Week 4: More Dataflow Analysis and McLab Tutorial II

   January/February 2014 
 S  M Tu  W Th  F  S
26 27 28 29 30 31  1 
   *     *     

Week 5: Intro to optimizations

   Feb 2014
 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

   February 2014
 S  M Tu  W Th  F  S
 9  10 11 12 13 14 15 
     *     *     
    (ST)  (ST)
Introduction to interprocedural analysis and optimizations
Reading:
Class notes
Muchnick - Chapter 15 - Procedure Optimizations

Week 7: Points-to Analysis

February 2014
 S  M Tu  W Th  F  S
16 17 18 19 20 21 22 
    *     *   
  (ST)   (ST)
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, GPU optimizations

     February/March 2014
Su Mo Tu We Th Fr Sa
23 24 25 26 27 28 1  
   *     *     
  (ST)   (GL)
SSA form
SSA numbers
Compiling for GPUs Reading:
Extended SSA Numbering
Appel - Chapter 19 - SSA Form

Week 9: Register Allocation

     March 2014     
Su Mo Tu We Th Fr Sa
 9 10 11 12 13 14 15
    *     *     
  (ST)  (ST)
Interference Graphs
Graph Colouring
Register Allocation
Simple Instruction Scheduling
Reading:
Appel - Chapter 11 - Register Allocation

Week 10: Compiling Dynamic Languages

     March 2014     
Su Mo Tu We Th Fr Sa
16 17 18 19 20 21 22 
    *    *    
   (ST)  (ST)

Week 11: Project Presentations

     March 2014
 Su Mo Tu We Th Fr Sa
 23 24 25 26 27 28 29 
     *    *    
   (PP)  (PP)

Week 12: Project Presentations

     March/April 2014     
Su Mo Tu We Th Fr Sa
30 31 1  2  3  4  5  
   *     *
  (PP)  (PP)

Week 13: Project Presentations

     April 2014     
Su Mo Tu We Th Fr Sa
6  7  8  9  10 11 12
   *     *  
  (PP)  (PP)

Maintained by Laurie J. Hendren Last modified Sun Jan 6 18:47:15 EST 2013. [HOME]
Compiler research projects: Soot, a Java analysis, optimization and transformation toolkit ---- abc, an AspectJ compiler. ---- McLab, a compiler and VM toolkit for MATLAB