Program Optimization with LLVM

Advisors Dr. Michael Petter, Michael Schwarz
Location MI 02.07.051
Date daily, 4th Nov - 22rd Nov 9:00-17:00
Module IN2106, IN0012

Contents

In this practical course we will integrate a basic program analysis in the LLVM Opt tool, and explore the generated IR code for potential optimizations.

Last semester, students have worked on an initial program analysis, inferring value set overapproximations intraprocedurally.
This semester, we will tackle interprocedural program analysis, i.e. call-string and functional analysis.

General Concept

This course is held as a blocked course during the first 3 weeks of November. During this time, You are expected to be present to join the programming efforts for the equivalent of at least 10x6h. Since you might be required to attend other courses, You can strech this over the aforementioned 3 weeks.

This course consists in applying the abstract interpretation techniques from the module Program Optimization to a practical project. We have a basic framework already prepared in the form of a C++ based LLVM Plugin, to be found in a git project .

In order to work on this project successfully, You need to be familiar with both C++ programming as well as Program Optimization. We will not have the time to introduce basic concepts in either of these topics, so please make sure, that You meet these requirements.