The LLVM Compiler Infrastructure

When and where


7 September 2015 - 11 September 2015, 18:00 - 20:00




LLVM is an open-source compiler infrastructure used in many commercial and academic projects . It is written in C++ and has a very modular design which allows all sorts of tools to be built on top of it: compilers, interpreters, static analyzers and so on.

We intend to introduce you to the world of compilers and related tools by using LLVM as a case study.

At the end of this workshop, you will know:

  • How compilers in general work
  • How to write compiler-based tools using LLVM's libraries
  • What kind of optimizations to expect from a compiler
  • How to write better C code


The phases of the compilation process

  • Learn what steps the compiler takes in order to translate high level code into machine code

The general structure of LLVM

  • See how LLVM is organized and why

Compiler-based tools

  • Learn how to use various parts of LLVM in order to implement or support tools such as source-to-source translators or editors with syntax highlighting

C tips & tricks

  • Look at what the compiler generates for various snippets of code and see how different constructs help or hinder the compiler


You can find the virtual machine that we'll be using for the workshop here. The password is studentllvm. If you're going to import it in VirtualBox, you may need to disable the USB controller in the VM's Settings in order to get it to start.


You can tell us what you thought about the workshop by filling in this form. Any suggestions or comments are more than welcome.


  • Good knowledge of C/C++


Ramon Adrian Nastase
Ioana Ciornei
Alexandru Grad
Alexandru Elisei
Cristi Alexandru Vasile
Andreea Daniela Chivu
Mihai Cristian Pirvu
Anca-Maria Pavelescu
Irina Sargu
Horia-Razvan Enescu
Tudor Emil Coman
Tudor Dasco
Marius Ungureanu
Cosmin-Ioan Petrisor
Roxana Gabriela Stan
Teodor Mihai Cotet
Dragos Dospinescu
Theodor Stoican


Diana Picuș

Silviu Grigore

sesiuni/llvm.txt · Last modified: 2015/09/12 12:25 by freescale