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.
1/15/2024: Please join the CampusWire discussion forum here.
1/15/2024: The website is up!
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% |
|
Take-Home Quizzes | 40% |
|
Project | 50% |
|
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 3Project 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 3Project 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 |
||
2/29 |
Dependence Transformations 1 |
Slides | |
3/5 |
Dependence Transformations 2 |
||
3/7 |
Take-home Exam (Midterm) - No ClassesProposal due: 3/8 |
||
3/12 |
|
||
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 1Progress 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 PresentationsFinal report and code due: 4/29 |
||
5/3 |
Take-home Exam (Final) - No Classes |
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.