arXiv · 2311.12883
LLVM Static Analysis for Program Characterization and Memory Reuse Profile Estimation
Abstract
Profiling various application characteristics, including the number of different arithmetic operations performed, memory footprint, etc., dynamically is time- and space-consuming. On the other hand, static analysis methods, although fast, can be less accurate. This paper presents an LLVM-based probabilistic static analysis method that accurately predicts different program characteristics and estimates the reuse distance profile of a program by analyzing the LLVM IR file in constant time, regardless of program input size. We generate the basic-block-level control flow graph of the target application kernel and determine basic-block execution counts by solving the linear balance equation involving the adjacent basic blocks' transition probabilities. Finally, we represent the kernel memory accesses in a bracketed format and employ a recursive algorithm to calculate the reuse distance profile. The results show that our approach can predict application characteristics accurately compared to another LLVM-based dynamic code analysis tool, Byfl.
Explore related subjects
Keep this discovery
Atanu Barai, Nandakishore Santhi, Abdur Razzak, Stephan Eidenbenz, Abdel-Hameed A. Badawy. 2023-11-20. LLVM Static Analysis for Program Characterization and Memory Reuse Profile Estimation. https://arxiv.org/abs/2311.12883
Cite the original work for its findings. Save a collection to share your selection of sources.