Theme: Programming

Advanced compilers

Level: Intermediate

Typical duration: 1 day

Lectures: 5h

Labs: 3h

Course code: PR02

This course provides a deep dive into the operation of compilers, their options and their construction. The wide range of available switches is discussed in depth, with partiular focus on options relevant to numerical processing and result safety. A refresher of compiler construction is also provided, and in that context scripting options are presented.

Training topics

Advanced compiler features
Exploiting modern hardware to its limits

Our hands-on lab demonstrates the concepts discussed in practice. We focus primarily GCC/G++ and the Intel C/C++ Compiler, and using LLVM as a supporting tool.



After the course, the students will:
- Use advanced options of compilers to speed up programs
- Deeply understand the wide range of available compiler switches, optimize floating point
- Take control of the compiler from within the source and write compiler independent code
- Understand how to extend compilers

Training concepts

Controlling features such as inlining, floating point switches, results from advanced optimization
Result safety and reproduction
Tapping into compilers and scripting them