Abstract
The high cost and growing importance of interprocedural data flow analysis have led to an increased interest in demand-driven algorithms. In this article, we present a general framework for developing demand-driven interprocedural data flow analyzers and report our experience in evaluating the performance of this approach. A demand for data flow information is modeled as a set of queries. The framework includes a generic demand-driven algorithm that determines the response to a query by iteratively applying a system of query propagation rules. The propagation rules yield precise responses for the class of distributive finite data flow problems. We also describe a two-phase framework variation to accurately handle nondistributive problems. A performance evaluation of our demand-driven approach is presented for two data flow problems, namely, reaching-definitions and copy constant propagation. Our experiments show that demand-driven analysis performs well in practice, reducing both time and space requirements when compared with exhaustive analysis.
Author supplied keywords
Cite
CITATION STYLE
Duesterwald, E., Gupta, R., & Soffa, M. L. (1997). A Practical Framework for Demand-Driven Interprocedural Data Flow Analysis. ACM Transactions on Programming Languages and Systems, 19(6), 992–1030. https://doi.org/10.1145/267959.269970
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.