Advanced Compiler Construction

Spring 2020 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  

  • 3/24/2020: Due to COVID-19, the second part of the course is held fully on-line. Check Piazza for the details.

  • 3/12/2020: Due to COVID-19, we have adjusted the schedule and moved the midterm after the spring break

  • 1/20/2020: The Piazza page is up!

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


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

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

 TA:
 Saikat Dutta
 PhD Student
 Computer Science, UIUC
 saikatd2@illinois.edu
 Office hours Monday 2pm-3pm

Overview  

This is an advanced graduate 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 20%
  • Near the half of the semester.

In-Class Exam 20%
  • At the end of the semester.

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


More details about the course administration are available here.

 

Tentative Schedule  


Date Topic Notes
1/21

Introduction and Control-Flow Review


Slides
1/23

SSA 1


Slides
1/28

SSA 2


Slides
1/30

SSA 3

Project 1 out (skeleton)
Slides
2/4

SSA Optimizations


Slides
2/6

Iterative Dataflow Framework 1


Slides
2/11

Iterative Dataflow Framework 2


Slides
2/13

Iterative Dataflow Framework 3

Project 1 due.
Slides
2/18

Iterative Dataflow Framework 4

Project 2 out.
Slides
2/20

Iterative Dataflow Framework 5


Slides
2/25

Dependence Analysis 1


Slides
2/27

Dependence Analysis 2


Slides
3/3

Dependence Transformations 1


Slides
3/5

Dependence Transformations 2


Slides
3/10

Compiler Testing and Validation


Slides
3/12

Midterm


3/17
Spring Break (no class)
3/19
3/24

Pointer Analysis 1


Slides
3/26

Pointer Analysis 2


Slides
3/31

Pointer Analysis 3


Slides
4/2

Interprocedural Analysis 1


Slides
4/7

Interprocedural Analysis 2


Slides
4/9

Midterm


4/14

Abstract Interpretation 1


Slides
4/16

Abstract Interpretation 2


Slides
4/21

Compilers in the World of Machine Learning


Slides
4/23

Efficient Compiling: JIT, Virtual Machines


Slides
4/28

Student Projects


4/30

Student Projects


5/5

Exam time


 

Resources  

-