A practical framework for demand-driven interprocedural data flow analysis
- 1 November 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 19 (6) , 992-1030
- https://doi.org/10.1145/267959.269970
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 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.Keywords
This publication has 18 references indexed in Scilit:
- Context-sensitive interprocedural points-to analysis in the presence of function pointersPublished by Association for Computing Machinery (ACM) ,1994
- A type-based framework for program analysisPublished by Springer Nature ,1994
- On the efficient engineering of ambitious program analysisIEEE Transactions on Software Engineering, 1994
- Automated assistance for program restructuringACM Transactions on Software Engineering and Methodology, 1993
- Extending typestate checking using conditional liveness analysisIEEE Transactions on Software Engineering, 1993
- Enabling efficient schedulability analysis through conditional linking and program transformationsControl Engineering Practice, 1993
- Properties of data flow frameworksActa Informatica, 1990
- An incremental version of iterative data flow analysisIEEE Transactions on Software Engineering, 1989
- Incremental Context-Dependent Analysis for Language-Based EditorsACM Transactions on Programming Languages and Systems, 1983
- The method of attributes for data flow analysisActa Informatica, 1978