Advanced Compiler Construction

Spring 2024 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, including an introduction to machine learning-based compiler optimizations.

The class will be in person only, unless otherwise specified by the instructor in advance.

 

News  

  • 1/15/2024: Please join the CampusWire discussion forum here.

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

 Lectures:
 Tuesday/Thursday
 12:30pm-1:45pm
 Siebel Center, 1302

 Instructor:
 Charith Mendis
 Assistant Professor
 Computer Science, UIUC
 4118 Siebel Center  charithm@illinois.edu
 Office hours upon request

Overview  

This is an advanced graduate research-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:

Discussion forum: We will use CampusWire for class discussions. Please use this link to register.
 

Activity Grade Details
Mini-quizzes 10%
  • At the beginning of each lecture (starting from week 3); five minutes long.
  • Can skip 5 without penalty; each additional decreases the grade by 0.67%.
    • 50% of the grade is for correctness
    • 50% of the grade is for participation
Take-Home Quizzes 40%
  • In the middle (20%) and at the end of the semester (20%).

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

More details about the course administration are available here.
 

Tentative Schedule  

 
Date Topic Notes and Additional Material
1/16

Introduction

Slides
1/18

Control-Flow Review and SSA 1

Slides
1/23

SSA 2

Slides
1/25

SSA 3

Project 1 out (skeleton)
Slides
1/30

SSA Optimizations

2/1

Iterative Dataflow Framework 1

Slides
2/6

Iterative Dataflow Framework 2

2/8

Iterative Dataflow Framework 3

Project 1 due: 2/13
2/13

No classes

2/15

Iterative Dataflow Framework 4

2/20

Iterative Dataflow Framework 5

2/22

Dependence Analysis 1

Slides
2/27

Dependence Analysis 2

Project 2 out.

2/29

Dependence Transformations 1

Slides
3/5

Dependence Transformations 2

3/7

Take-home Exam (Midterm) - No Classes

Proposal due: 3/8

3/12


Spring Break (no class)

3/14
3/19

Dependence Transformations 3

3/21

Pointer Analysis 1

Slides
3/26

Pointer Analysis 2

3/28

Pointer Analysis 3

4/2

Interprocedural Analysis 1

Slides
4/4

Interprocedural Analysis 2

4/9

Vectorization 1

Progress report due: 4/9

Slides
4/11

Vectorization 2

4/16

Project 2 progress meetings

4/18

Machine Learning for Compilers 1

Slides
4/23

Machine Learning for Compilers 2

4/25

Student Project Presentations

Final report and code due: 4/29

5/3

Take-home Exam (Final) - No Classes

 

Resources  

Additional reading material relevant to a particular topic will be available alongside the notes under each class. Here are a few textbooks and classical papers you can read to get more background knowledge. 

-