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.
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!
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% |
|
Take-Home Quizzes | 40% |
|
Project | 50% |
|
Date | Topic | Notes | |
---|---|---|---|
1/18 |
Introduction and Control-Flow Review |
Slides | |
1/20 |
SSA 1 |
Slides | |
1/25 |
SSA 2 |
Slides | |
1/27 |
SSA 3Project 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 3Project 1 due: 2/14 |
Slides | |
2/15 |
Iterative Dataflow Framework 4 |
Slides | |
2/17 |
Iterative Dataflow Framework 5 |
Slides | |
2/22 |
Dependence Analysis 1 |
Slides | |
2/24 |
No Classes |
||
3/1 |
Dependence Analysis 2 |
Slides | |
3/3 |
Dependence Transformations 1Proposal 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 2Progress 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 PresentationsFinal report and code due: 5/1 |
||
5/3 |
Take-home Exam (Final) - No Classes |