Tilmann Scheller

Tilmann Scheller

About Tilmann Scheller

Tilmann Scheller is a principal compiler engineer working in the Samsung Open Source Group. His primary focus is on the ARM/AArch64 backends of LLVM. He has been working on LLVM since 2007 and has held previous positions involving LLVM at NVIDIA and Apple. He also focuses on lightweight JavaScript engines within the Open Source Group.

  • Projects

  • Role

    Principal Compiler Engineer

Posts by Tilmann Scheller

  • June 17, 2015 - Tilmann Scheller

    A Conclusion to Accelerating Your Build with Clang

    This is the second part of a series that explores improving the build process using Clang. This post will take a look at the remaining methods for speeding up the build and will conclude with an overall summary of the improved speeds. To read an introduction to this experiment as well as the build system we are using, take a look at part one of this series. Here is our list of ideas again: Generic: Build with Clang rather than GCC Use a faster linker, such as GNU gold Optimize our host compiler binary aggressively (LTO, PGO, LTO+PGO) Move parts of the debug info into separate files: split DWARF Use Ninja rather than GNU make in CMake-based projects Cache object files with ccache Use a shared library build instead of a static build for incremental debug builds Clang/LLVM-specific: Optimize TableGen for debug builds Build less: e.g. build only the backends we […]

    Read More
  • Building software is a time-consuming task, especially if you are working on large codebases such as Clang and LLVM (2.5M C++ lines combined). As an LLVM developer, a significant portion of my time is spent building the software because a clean build take several minutes to complete. The work outlined in this series started out as an experiment to see by how much we could speed up the build process by using different tools or build settings rather than simply upgrading our hardware, and the goal is to squeeze as much performance out of the toolchain as possible. The focus is on building Clang/LLVM, however most of the results and corresponding suggestions will apply to other large C++ projects as well, and this post expands on a lightning talk I recently gave at the EuroLLVM 2015 conference. Taking a Look at the Options So what can we actually do to speed up […]

    Read More