English

LLVM Static Analysis for Program Characterization and Memory Reuse Profile Estimation

Software Engineering 2023-11-28 v1 Performance Programming Languages

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.

Keywords

Cite

@article{arxiv.2311.12883,
  title  = {LLVM Static Analysis for Program Characterization and Memory Reuse Profile Estimation},
  author = {Atanu Barai and Nandakishore Santhi and Abdur Razzak and Stephan Eidenbenz and Abdel-Hameed A. Badawy},
  journal= {arXiv preprint arXiv:2311.12883},
  year   = {2023}
}

Comments

This paper was accepted at the MEMSYS '23 conference, The International Symposium on Memory Systems, October 02, 2023 - October 05, 2023, Alexandria, VA

R2 v1 2026-06-28T13:27:48.579Z