CGO 2024
Sat 2 - Wed 6 March 2024 Edinburgh, United Kingdom
Tue 5 Mar 2024 10:40 - 11:00 at Tinto - Compiler Construction Chair(s): Jose Nelson Amaral

Incremental builds are commonly employed in software development, involving minor changes to existing source code that is then frequently recompiled. Speeding up incremental builds not only enhances the software development workflow but also improves CI/CD systems by enabling faster verification steps.

Current solutions for incremental builds primarily rely on build systems that analyze file dependencies to avoid unnecessary recompilation of unchanged files. However, for the files that do undergo changes, these build systems simply invoke compilers to recompile them from scratch. This approach reveals a fundamental asymmetry in the system: while build systems operate in a stateful manner, compilers are stateless. As a result, incremental builds are applied only at a coarse-grained level, focusing on entire source files, rather than at a more fine-grained level that considers individual code sections.

In this paper, we propose an innovative approach for enabling the fine-grained incremental build by introducing statefulness into compilers. Under this paradigm, the compiler leverages its profiling history to expedite the compilation process of modified source files, thereby reducing overall build time. Specifically, the stateful compiler retains dormant information of compiler passes executed in previous builds and uses this data to bypass dormant passes during subsequent incremental compilations.

We also outline the essential changes needed to transform conventional stateless compilers into stateful ones. For practical evaluation, we modify the Clang compiler to adopt a stateful architecture and evaluate its performance on real-world C++ projects. Our comparative study indicates that the stateful version outperforms the standard Clang compiler in incremental builds, accelerating the end-to-end build process by an average of 6.72%.

Tue 5 Mar

Displayed time zone: London change

10:00 - 11:00
Compiler ConstructionMain Conference at Tinto
Chair(s): Jose Nelson Amaral University of Alberta
10:00
20m
Talk
One Automaton to Rule Them All: Beyond Multiple Regular Expressions Execution
Main Conference
Luisa Cicolini Politecnico di Milano, Filippo Carloni Politecnico di Milano, Marco D. Santambrogio Politecnico di Milano, Davide Conficconi Politecnico di Milano
Pre-print Media Attached
10:20
20m
Talk
Whose Baseline Compiler Is It Anyway?
Main Conference
Ben L. Titzer Carnegie Mellon University
Pre-print
10:40
20m
Talk
Enabling Fine-Grained Incremental Builds by Making Compiler Stateful
Main Conference
Ruobing Han Georgia Institute of Technology, Jisheng Zhao Georgia Institute of Technology, Hyesoon Kim Georgia Institute of Technology
Pre-print