Advanced Compiler Construction


This is an advanced graduate course in compiler technology. The course has several goals. First, it aims to develop a fundamental understanding of the major approaches to program analysis and optimization. Second, it aims to help students understand published research on various novel compiler techniques. Third, during the duration of the course, the students will solve a significant compiler problem, which includes reading the literature and implementing the solution in LLVM. Finally, the students will learn about recent research directions.

 

News  

  • 2/19/2017: The project 2 is on-line. Submit your proposals by March 2.

  • 1/26/2017: The project 1 is on-line (skeleton).

  • 1/16/2017: The website is up!



 


 Lectures:
 Tuesday/Thursday 11-12:15
 Siebel Center, 1304

 Instructor:
 Sasa Misailovic
 Assistant Professor, CS UIUC
 4110 Siebel Center  misailo@illinois.edu

 Office Hours:
 4110 Siebel Center
 By appointment

Overview  

This is an advanced graduate course reasearch-oriented course. It will include lectures, reading literature and original materials, and a substational research project. We will compute the final grade using the following table:

Activity Grade Details
Miniquizzes 10%
  • At the beginning of each lecture; five minutes long.
  • Can skip 5 without penalty; each additional decreases the grade by 0.5%.
Midterm 15%
  • Near the half of the semester.

Final 25%
  • At the end of the semester

Project 50%
  • Part 1: second week of classes (10%)
  • Part 2: after four weeks (40%)

 

Tentative Schedule  


Date Topic Notes
1/17 Introduction
Slides
1/19 Control Flow Review Slides
1/24 SSA 1
Slides
1/26 SSA 2
Project 1 out (skeleton)
Slides
1/31 SSA 3
Slides
2/2 SSA Optimizations
Slides
2/7 No class (work on the project)
2/9 Iterative Dataflow Framework 1
Slides
2/14 Iterative Dataflow Framework 2
Slides (continued)
2/16 Iterative Dataflow Framework 3
Project 1 due.
Project 2 out.
Slides
2/21 Iterative Dataflow Framework 4
Slides
2/23 Iterative Dataflow Framework 5
Slides (cont)
2/28 Dependence Analysis 1
Slides
3/2 Dependence Analysis 2
Slides
3/7 Dependence Transformations 1
Slides
3/9 Dependence Transformations 2
Slides
3/14 Dependence Transformations 3
Slides
3/16 Midterm
3/21 Spring Break
3/23 Spring Break
3/28 Pointer Analysis 1
Slides (updated)
3/30 Pointer Analysis 2
Slides (cont)
4/4 Compiler Validation (Daejun)
4/6 Abstract Interpretation 1
Slides
4/11 Abstract Interpretation 2
Slides (cont)
4/13 Abstract Interpretation 3`
Slides (cont)
4/18 Approximate and Probabilistic Compilation
4/20 NPVM (Maria)
4/25 Interprocedural analysis 1
Slides
4/27 Interprocedural analysis 2
Slides (cont)
5/2 Wrap-Up
 

Resources  

-