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 proba...
Gespeichert in:
Hauptverfasser: | , , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | 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. |
---|---|
DOI: | 10.48550/arxiv.2311.12883 |