Leveraging LLVM's ScalarEvolution for Symbolic Data Cache Analysis
Valentin Touzeau, Jan Reineke

TL;DR
This paper introduces a symbolic control-flow graph abstraction derived from LLVM's ScalarEvolution to improve data cache analysis accuracy and efficiency over traditional methods, especially for dynamic memory access patterns.
Contribution
It proposes a novel symbolic control-flow graph abstraction and a corresponding symbolic data cache analysis, enhancing precision and performance over classical approaches.
Findings
Outperforms classical LRU must analysis in accuracy
Reduces analysis runtime significantly
Provides more precise cache behavior predictions
Abstract
While instruction cache analysis is essentially a solved problem, data cache analysis is more challenging. In contrast to instruction fetches, the data accesses generated by a memory instruction may vary with the program's inputs and across dynamic occurrences of the same instruction in loops. We observe that the plain control-flow graph (CFG) abstraction employed in classical cache analyses is inadequate to capture the dynamic behavior of memory instructions. On top of plain CFGs, accurate analysis of the underlying program's cache behavior is impossible. Thus, our first contribution is the definition of a more expressive program abstraction coined symbolic control-flow graphs, which can be obtained from LLVM's ScalarEvolution analysis. To exploit this richer abstraction, our main contribution is the development of symbolic data cache analysis, a smooth generalization of classical…
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 · Ferroelectric and Negative Capacitance Devices · Advanced Memory and Neural Computing
