LLVM Static Analysis for Program Characterization and Memory Reuse Profile Estimation
Atanu Barai, Nandakishore Santhi, Abdur Razzak, Stephan Eidenbenz and, Abdel-Hameed A. Badawy

TL;DR
This paper introduces an LLVM-based static analysis technique that efficiently predicts program characteristics and memory reuse profiles with high accuracy, enabling rapid analysis regardless of input size.
Contribution
It proposes a novel probabilistic static analysis method that accurately estimates program features and reuse distances directly from LLVM IR in constant time.
Findings
Accurately predicts application characteristics compared to dynamic analysis.
Estimates reuse distance profile efficiently from static analysis.
Operates in constant time regardless of program input size.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Advanced Data Storage Technologies · Cloud Computing and Resource Management
