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 2021-2022 class are below.
The rest of the material is available only on Canvas.
Week number | First lecture | Second lecture |
---|---|---|
Week 0 |
Welcome, LLVM (from 323) |
Introduction to NOELLE, Paper discussion |
Week 1 |
Dependences with NOELLE, Loops with NOELLE |
Profiling code with NOELLE, Data-flow analysis with NOELLE |
Week 2 |
Call graph with NOELLE, Paper discussion |
Paper discussion |
Week 3 | Paper discussion | Project discussion |
Week 4 | Paper discussion | Project discussion |
Week 5 | Paper discussion | Paper discussion |
Week 6 | Paper discussion | Paper discussion |
Week 7 | Paper discussion | Paper discussion |
Week 8 | Project discussion | Project discussion |
Week 9 | Project discussion | Project discussion |
Share this page with: