Advanced Compiler Construction

Spring 2021 Edition



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 a real-world compiler, such as LLVM. Finally, the students will learn about recent research directions.

 

News  

  • 1/23/2021: Piazza is set up. It contains the Zoom link for the lectures.

  • 1/15/2021: The website is up!


 Lectures:
 Tuesday/Thursday
 11:00am-12:15pm
 Online: See Piazza for the link

 Instructor:
 Sasa Misailovic
 Assistant Professor
 Computer Science, UIUC
 4110 Siebel Center  misailo@illinois.edu
 Office hours upon request

Overview  

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

Activity Grade Details
Programming Assignment 10%
  • Coding exercise: second week of classes (10%)
Take-Home Quizzes 40%
  • In the middle and at the end of the semester.

Project 50%
  • Part 1: Project Proposal mid-semester (10%)
  • Part 2: Project Report and Presentation (40%)
Extra Credit 10%
  • TBD


More details about the course administration are available here.

 

Tentative Schedule  


Date Topic Notes
1/26

Introduction and Control-Flow Review


Slides
1/28

SSA 1


Slides
2/2

SSA 2


Slides
2/4

SSA 3

Project 1 out (skeleton)
Slides
2/9

SSA Optimizations


Slides
2/11

Iterative Dataflow Framework 1


Slides
2/16

Iterative Dataflow Framework 2


Slides
2/18

Iterative Dataflow Framework 3

Project 1 due.
Slides
2/23

Iterative Dataflow Framework 4

Project 2 out.
Slides
2/25

Iterative Dataflow Framework 5


Slides
3/2

Dependence Analysis 1


Slides
3/4

Dependence Analysis 2


Slides
3/9

Dependence Transformations 1


Slides
3/11

Dependence Transformations 2


Slides
3/16

Compiler Testing and Validation


Slides
3/18

Take-home Exam (no class)


3/23

Pointer Analysis 1


Slides
3/25

Pointer Analysis 2


Slides
3/30

Pointer Analysis 3


Slides
4/1

Interprocedural Analysis 1


Slides
4/6

Interprocedural Analysis 2


Slides
4/8

Compilers in the World of Machine Learning


Slides
4/13

No Class Day (University Holiday)


4/15

No Class Day (Work on Your Projects)


4/20

Abstract Interpretation 1


Slides
4/22

Abstract Interpretation 2


Slides
4/27

Efficient Compiling: JIT, Virtual Machines


Slides
4/29

Student Projects


5/4

Take-home Exam


 

Resources  

-