| 
 | |||
| About this courseTime: Tuesdays and Thursdays 10:00-11:30Place: McConnell 103 Course Outline (html) (pdf) | PeopleLecturer - Professor Laurie HendrenTeaching assistants 
 | ||
| Assignments and Projects
 | Special Topic Slides
 | ||
| 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 RepresentationsBasic 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 AnalysisReading:  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 analysesIntro. to optimizations Early optimizations Reading:  Muchnick - Chapter 11 - Introduction to Optimizations Muchnick - Chapter 12 - Early Optimizations | Week 6: Interprocedural AnalysisOctober 2016 S M Tu W Th F S 9 10 11 12 13 14 15 TM * * Thanksgiving MondayIntroduction 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 relationshipsAliases 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-SensitiveCont. Sens. Points-to Analysis (.ps)Flow-InsensitiveFast 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 formSSA 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 GraphsGraph 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 PresentationsNovember 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 |