1 research outputs found
LLVM Static Analysis for Program Characterization and Memory Reuse Profile Estimation
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.Comment: This paper was accepted at the MEMSYS '23 conference, The
International Symposium on Memory Systems, October 02, 2023 - October 05,
2023, Alexandria, V