ISSTA2024

Panda: A Concurrent Scheduler for Compiler-Based Tools

Xutong Ma, Jiwei Yan, Jun Yan, Jian Zhang

摘要

The widely-used Compiler-Based Tools (CBT), such as static analyzers, process input source code using data structures inside a compiler. CBTs can be invoked together with compilers by injecting the compilation process. However, it is seldom the best practice for the inconvenience of running various CBTs, the unexpected failures due to interference with compilers, and the efficiency degradation under compilation dependencies. To fill this gap, we propose Panda, an efficient scheduler for C/C++ CBTs. It executes various CBTs in a compilation-independent manner to avoid mutual interference with the build system, and parallelizes the process based on an estimated makespan to improve the execution efficiency. The assessment indicates that Panda can reduce the total execution time by 19%-47% compared with compilation-coupled execution, with an average 39.03×-52.15× speedup with 64 parallel workers. CCS Concepts • Software and its engineering → Development frameworks and environments.