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.9 and 7.0. Anything that can run in parallel - runs in parallel. I will cover the following topics:
Build system: on supporting multiple LLVM versions and building against sources or precompiled binary. Parallelization: which parts of the tool can be parallelized and which should run in one thread Testing: how to build robust test suite for the tool Bitcode: on several ways to convert a program into LLVM bitcode, that can be used by the tool.