Brussels / 2 & 3 February 2019


Building an LLVM-based tool

Lessons Learned

In this talk, I want to share my experience in building an LLVM-based tool.

For the last three years, I work on a tool for mutation testing. Currently, it works on Linux, macOS, and FreeBSD and the source code is compatible with any LLVM version between 3.8 and 7.0. Anything that can run in parallel - runs in parallel. I will cover the following topics:

  • How to support multiple LLVM versions
  • How to support different operating systems (Linux, macOS, FreeBSD)
  • How to build against precompiled LLVM and sources at the same time
  • How to parallelize everything
  • How to test things
  • Different ways to get bitcode from any project


Photo of Alex Denisov Alex Denisov