Hide menu

Advanced Compiler Construction

2023VT

Status Active - open for registrations
School IDA-gemensam (IDA)
Division SAS
Owner Christoph Kessler
Homepage http://www.ida.liu.se/~chrke/courses/ACC/ACC.shtml

  Log in  




Course plan

Lectures

Ca. 30 h lectures in 2 intensive weeks, prel. in March 2023.
Additionally some lessons.
Presentation of a technical paper.
Probably no lab sessions in 2023, thus only 6hp (decision pending).

Recommended for

Ph.D. students or practitioners in computer science and computer engineering.

The course was last given

in spring 2021. The course is usually given every second year only.

If the course does not reach the minimum number of participants,
it will not be given and may be reannounced for 2024.

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.
(If labs are included: 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.
If included (not 2023), optional lab series with the LLVM open-source compiler framework, 3hp.

Literature

See the

course home page
.

Lecturers

Christoph Kessler, Welf Löwe

Examiner

Christoph Kessler

Examination

TEN1: Written or oral exam 4.5 hp
PRE1: Presentation, written summary, opposition 1.5 hp
(Not 2023: LAB2: Compiler framework labs 3 hp)

The exam must be passed to get any credits on the course, while lab and presentation are optional moments.

Physical presence in at least 50% of the lectures and lessons is required in order to be admitted to the exam.

Credit

6 hp (if both TEN1 and PRE1 are completed), assuming that the labs are not included in the course in 2023.

(If the labs were offered (decision pending), the entire course would have 9hp.)

Organized by

IDA

Comments

IDA PhD course. It used to be a CUGS advanced course since 2002.
Course code: DF00100.

Location

Linköping.
See the course homepage for details.


Page responsible: Director of Graduate Studies