Integration and Optimization of a Variability-Aware LLVM-Based Toolchain for Highly Configurable Software

In system software, programs are usually developed as software product families. This enables developers to tailor their programs to different use cases while maintaining only a single code base. However, these synergy effects are only utilized for the source code itself. The following steps in the software life cycle, building, testing, and deploying, are performed for each configuration independently, resulting in poor scalability and enormous costs.

Therefore, we developed multiple tools, each solving the problem for a different step in the software life cycle. Some of the tools are stand-alone, others are implemented as plugins for LLVM.

The goal of this thesis is to integrate these tools into a toolchain utilizing synergy effects between them and improving scalability, efficiency, and effectiveness even further. This can be evaluated by applying the toolchain to various C/C++ open-source software projects.

USENIX Conference A Best Paper Award
cHash: Detection of Redundant Compilations via AST Hashing
Christian Dietrich, Valentin Rothberg, Ludwig Füracker, Andreas Ziegler, Daniel LohmannProceedings of the 2017 USENIX Annual Technical Conference (USENIX '17)USENIX Association2017Best Paper Award.
PDF Details Slides Raw Data [BibTex]
ICSOFT Conference B Best Student Paper
TASTING: Reuse Test-case Execution by Global AST Hashing
Tobias Landsberg, Christian Dietrich, Daniel LohmannProceedings of the 17th International Conference on Software Technologies - ICSOFTSciTePress2022Best Student Paper.
PDF 10.5220/0011139200003266 [BibTex]
SPLC Conference B
Should I Bother? Fast Patch Filtering for Statically-Configured Software Variants
Tobias Landsberg, Christian Dietrich, Daniel LohmannProceedings of the 28th ACM International Systems and Software Product Line ConferenceAssociation for Computing Machinery2024.
PDF 10.1145/3646548.3672585 [BibTex]