Advanced Compiler Construction

Spring 2022 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.

Please use this Zoom link when we meet online.

 

News  

  • 2/17/2022: Course Project 2 is out! Please refer to the handout for instructions.

  • 1/29/2022: Course Project 1 is out! Please refer to the schedule to find the handout and the skeleton code.

  • 1/10/2022: Important: The first week of classes (1/18 - 1/21) will be held online as per campus policy. Rest of the classes would be taught in person. Please use this Zoom link to join the class for the first week.

  • 1/10/2022: Piazza is up! Please signup at this link. We will be using Piazza to make major annouements. Please use it as a discussion forum to ask questions from the instructor and other students.

  • 1/10/2022: The website is up!

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

 Instructor:
 Charith Mendis
 Assistant Professor
 Computer Science, UIUC
 4118 Siebel Center  charithm@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 substational research project. We will compute the final grade using the following table:
 

Activity Grade Details
Miniquizzes 10%
  • At the beginning of each lecture (starting from week 2); 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 and at the end of the semester.

Project 50%
  • Part 1: second week of classes (10%)
  • Part 2: after four weeks (40%)
    • Submission form can be found here.

More details about the course administration are available here.

 

Tentative Schedule  

 
Date Topic Notes
1/18

Introduction and Control-Flow Review

Slides
1/20

SSA 1

Slides
1/25

SSA 2

Slides
1/27

SSA 3

Project 1 out (skeleton)
Slides
2/1

SSA Optimizations

Slides
2/3

Iterative Dataflow Framework 1

Slides
2/8

Iterative Dataflow Framework 2

Slides
2/10

Iterative Dataflow Framework 3

Project 1 due: 2/14
Slides
2/15

Iterative Dataflow Framework 4

Slides
2/17

Iterative Dataflow Framework 5

Project 2 out.

Slides
2/22

Dependence Analysis 1

Slides
2/24

No Classes

3/1

Dependence Analysis 2

Slides
3/3

Dependence Transformations 1

Proposal due: 3/6

Slides
3/8

Dependence Transformations 2

Slides
3/10

Take-home Exam (Midterm) - No Classes

3/15
Spring Break (no class)
3/17
3/22

Dependence Transformations 3

Slides
3/24

Pointer Analysis 1

Slides
3/29

Pointer Analysis 2

Slides
3/31

Pointer Analysis 3

Slides
4/5

Interprocedural Analysis 1

Slides
4/7

Interprocedural Analysis 2

Progress report due: 4/7

Slides
4/12

Vectorization 1

Slides
4/14

Vectorization 2

Slides
4/19

Project 2 progress meetings

4/21

Machine Learning in Compilers 1

Slides
4/26

Machine Learning in Compilers 2

Slides
4/28

Student Project Presentations

Final report and code due: 5/1

5/3

Take-home Exam (Final) - No Classes

 

Resources  

-