Advanced Compiler Construction2026HT, 9.0 credits
|
|
Course plan
Lectures
Ca. 30 h lectures (hybrid format on zoom) in 2 intensive weeks, prel. in early
autumn 2026 (e.g. early September 2026).
Additionally some lessons.
Presentation of a technical paper.
Optional labs with LLVM/MLIR (3hp).
Recommended for
Ph.D. students or practitioners in computer science and computer engineering.
The course was last given
in spring 2023. The course is usually given every second year only.
If the course does not reach the minimum number of LiU participants, it will
not be given and may be re-announced for 2027.
Goals
Give knowledge about advanced compiler technology, including program analysis, intermediate representations, compiler optimizations, code generation, compiler frameworks, run-time systems, and compilation techniques for embedded and parallel systems. Get hands-on insights into the internals of a modern compiler framework.
Prerequisites
Basic course in compiler construction, corresponding to the undergraduate
courses Compilers and Interpreters, or Compiler Construction.
Basic course in data structures and algorithms.
Basic knowledge in processor architecture.
Programming in C++/Linux for the Compiler framework labs.
Some background in combinatorial optimization may be useful.
Contents
Introduction: Short recapitulation of compilation flow, lowering process, code
generation.
Multi-level intermediate representations.
Foundations, e.g., control and data flow analysis, data dependence analysis.
Abstract interpretation.
Overview of optimizations.
SSA form and its construction.
SSA based optimizations.
Compiler generators.
Code selection. Instruction scheduling. Register allocation. Integrated code
generation.
Data dependence analysis. Loop transformations.
Automatic loop vectorization and parallelization.
Software pipelining.
Memory hierarchy optimization.
Program optimization for special processor architectures such as DSPs or GPUs.
Compiling for parallel computer systems.
Autotuning and feedback-directed optimizations.
Other topics as time permits.
Organization
2 intensive weeks of lecturing, including some lessons
(assistant-guided repetition + problem solving sessions).
One-day session for student presentations at the end of the course, 1.5hp.
Written or oral exam, 4.5hp.
Optional lab series with the LLVM/MLIR open-source compiler framework, 3hp.
Literature
See the
course home page.
Lecturers
Christoph Kessler, Welf Löwe, Guest lecturers
Examiner
Christoph Kessler, Welf Löwe
Examination
TEN1: Written or oral exam 4.5 hp
PRE1: Presentation, written summary, opposition 1.5 hp
LAB2: Compiler framework labs 3 hp
The exam must be passed in order to get any credits on the course.
The lab series is an optional moment.
Physical presence in at least 50% of the lectures and lessons is required in
order to be admitted to the exam.
Credit
9 hp if all three moments (TEN1, PRE1, LAB2) are completed.
6 hp if both TEN1 and PRE1 are completed.
It is not possible to get any points without passing the exam.
Organized by
IDA
Comments
IDA PhD course, given ca. every other year since 2002.
Course code: DF00100.
Location
Linköping.
See the course homepage for details.
Page responsible: Anne Moe
