Abstract
A store operation is called "silent" if it writes in memory a value that is already there. The ability to detect silent stores is important, because they might indicate performance bugs, might enable code optimizations, and might reveal opportunities of automatic parallelization, for instance. Silent stores are traditionally detected via profiling tools. In this article, we depart from this methodology and instead explore the following question: Is it possible to predict silentness by analyzing the syntax of programs? The process of building an answer to this question is interesting in itself, given the stochastic nature of silent stores, which depend on data and coding style. To build such an answer, we have developed a methodology to classify store operations in terms of syntactic features of programs. Based on such features, we develop different kinds of predictors, some of which go much beyond what any trivial approach could achieve. To illustrate how static prediction can be employed in practice, we use it to optimize programs running on nonvolatile memory systems.
Author supplied keywords
Cite
CITATION STYLE
Pereira, F. M. Q., Leobas, G. V., & Gamatié, A. (2019). Static prediction of silent stores. ACM Transactions on Architecture and Code Optimization, 15(4). https://doi.org/10.1145/3280848
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.