Avoidance of Redundant Recompilations by Propagation of Semantic Fingerprints
- Typ der Arbeit: Bachelorarbeit
- Status der Arbeit: abgeschlossen
- Projekte: cHashCADOS
- Betreuer: Christian Dietrich, Daniel Lohmann
- Ende der Arbeit: 01. Dec 2017
During the compilation process, many build systems support incremental
builds. This means that the compiler is only invoked, if any of the
dependencies have changed. For example, if types.h
changes in the
given example, the build system will invoke the compiler to regenerate
main.o
. Furthermore, the linking process that will result in
program
must also be redone, since main.o
changed (and has a newer
timestamp).
In recent research, we have build a clang
compiler plugin, that can avoid, in some circumstances, the full
compilation process for main.o
. However, the subsequent linking
process for program
must still be done. To avoid this unnecessary
recompilation, we have to give the information that, although the
timestamp changed, main.o
was not semantically changed.
The goal of the thesis is to integrate the interaction between a semantic fingerprinting compiler and the build system to avoid subsequent tool invocations.
Relevant Publications
-
USENIX
Conference
A
Best Paper Award
cHash: Detection of Redundant Compilations via AST Hashing -
Proceedings of the 2017 USENIX Annual Technical Conference (USENIX '17)USENIX Association2017Best Paper Award.
PDF Details Slides Raw Data [BibTex]