Production compilers often do not include the latest compilation techniques proposed by the research community. This is because the latest techniques are often not yet as robust as they need to be to be included in a production compiler. My other compiler classes (COMP_SCI 322 and COMP_SCI 323) teach well-established compilation techniques included in production compilers (e.g., register allocation, instruction selection). This class, instead, focuses on the advanced compilation techniques the research community has proposed that are not yet included in production compilers.
This class covers the large number of compilation techniques proposed by the research community across several years. Specifically, we organize these compilation techniques in topics. Every year we will focus only on up to two topics (e.g., automatic parallelizing compilers, autotuning) to allow a deep dive study.
Syllabus
Department page
This class takes materials from many research papers published in compiler venues. Such papers and their codebase are distributed via Canvas. Finally, this class relies on the NOELLE compilation layer.
All the slides used in the 2023-2024 class are below. The rest of the material is available only on Canvas.
Materials are improved every year. They are updated on this website (atomically) only at the end of the class.
Week number | First lecture | Second lecture |
---|---|---|
Week 0 |
Welcome (
)
,
Quick refresh about LLVM from CS 323 ( ) |
Paper discussion for this year's topics |
Week 1 |
Introduction to NOELLE (
,
,
)
,
Dependences with NOELLE ( , ) , Data-flow analysis with NOELLE ( , ) |
Profiling code with NOELLE (
,
)
,
Looking at a single loop with NOELLE ( ) , Loop environment with NOELLE ( ) |
Week 2 |
Loop invariants with NOELLE (
)
,
Loop induction variables with NOELLE ( ) , Loop SCCs with NOELLE ( ) , Forest of loops with NOELLE ( , ) |
Call graph with NOELLE (
,
)
,
Task with NOELLE ( , ) , Gino: code parallelizer built upon NOELLE ( , ) |
Week 3 |
Metadata with NOELLE,
CFG analyses and transformations with NOELLE, NOELLEGym ( ) |
VIRGIL (
)
,
MemOIR ( ) |
Week 4 | Student presentations | |
Week 5 | Student presentations | |
Week 6 | Student presentations | |
Week 7 | Project presentations | |
Week 8 | Project presentations | |
Week 9 | Project presentations |
Next is the evaluation of this class done by its students.
Ratings are between 1 (lowest) and 6 (highest). NA = Not Available
Year | Number of students | Teacher | Course | Amount learned | Intellectual challenge | Stimulating interest |
---|---|---|---|---|---|---|
2023 - 2024 | 9 | 6.00 | 5.50 | 5.33 | 5.33 | 6.00 |
2022 - 2023 | 15 | 5.86 | 5.57 | 5.43 | 5.57 | 6.00 |
2021 - 2022 | 8 | 6.00 | 6.00 | 6.00 | 6.00 | 6.00 |
2020 - 2021 | 10 | 5.83 | 5.50 | 5.50 | 5.50 | 5.83 |
2019 - 2020 | 7 | 5.83 | 5.83 | 5.83 | 5.83 | 5.83 |
2018 - 2019 | 5 | 6.00 | 5.50 | 5.50 | 5.50 | 6.00 |
2017 - 2018 | 6 | 6.00 | 5.75 | 5.75 | 5.75 | 6.00 |
Average | 8.57 | 5.93 | 5.66 | 5.62 | 5.64 | 5.64 |
Total | 60 |
Next are all the comments about the class directly from its students. No filtering is performed among the comments. The next comments are the answers to the question "Did the course help you learn? Why or why not?"
2023 - 2024
In this course you dive deeper into existing compiler research (similar in content to 323). You explore a breadth of topics before choosing a topic to create a project on. Then you give a presentation of more papers on the topic you chose as well as a final project centered on the topic. Overall everything is very low stakes. |
Learned a lot. Enjoyed doing the project. Readings were interesting. Take this class if you like compilers. Its a good class, and Simone is an awesome professor. |
I really value collective discussions, which we always had throughout the course |
2022 - 2023
The NOELLE lectures were very good and helped me learn things about NOELLE that I had missed before. |
2021 - 2022
Yes, it's a fun class and you get to meet with the instructor frequently and this helps you get unstuck. |
2020 - 2021
Yes. The papers discussed were very educational, the project was fun, and for me, a really new area of programming. I really liked the meetings as well; I felt that I left all the meetings understanding many new things about the project, and with a better direction as well. |
Yes, this course involved a good deal of reading about cutting edge research on compilers. This helped me learn about the field while learning how to better read research papers |
Yes. Very fun course. If you liked Simone's other courses, and you like reading research papers, you will enjoy this. |
2019 - 2020
Yes, this course helped me to learn a lot on Compiler. Although there are still many concepts and stuff that I do not understand clearly now. However, at least I know what kind of topics that Compiler guys are caring about. |
This is a seminar class where you read research papers on compilers, with the benefit of having an expert (Prof. Campanoni) to explain you difficult concepts. |
2018 - 2019
We read tier 1 papers. This helped to broaden our knowledge in the compilers field. |
2017 - 2018
This course was a great delve into a very specific subset of compiler research: parallelization. The papers were interesting, the discussions extremely thorough, to the point of slowing down the reading pace. As always, Campanoni teaches not just material but how to analyze papers, how to nitpick them while appreciating whatever contributions they made. |
Simone is awesome, and I really enjoyed this seminar. It was pretty small since the pre-reqs are basically all the other compilers classes, but fun. We generally read a paper per lecture, and outside of those worked on projects related to active research efforts in Simone's group. |
We read and discussed a good amount of research papers. In every discussion we went in dept on the meaning of the concepts described in the paper. Quality as opposed to quantity is the key of this course. |
I learnt advanced compilers techniques and transformations. |
LinkedIn Twitter GitHub
Share this page with: