Results 1 -
7 of
7
Demand-driven Computation of Interprocedural Data Flow
, 1995
"... This paper presents a general framework for deriving demanddriven algorithms for interprocedural data flow analysis of imperative programs. The goal of demand-driven analysis is to reduce the time and/or space overhead of conventional exhaustive analysis by avoiding the collection of information tha ..."
Abstract
-
Cited by 76 (9 self)
- Add to MetaCart
This paper presents a general framework for deriving demanddriven algorithms for interprocedural data flow analysis of imperative programs. The goal of demand-driven analysis is to reduce the time and/or space overhead of conventional exhaustive analysis by avoiding the collection of information that is not needed. In our framework, a demand for data flow information is modeled as a set of data flow queries. The derived demand-driven algorithms find responses to these queries through a partial reversal of the respective data flow analysis. Depending on whether minimizing time or space is of primary concern, result caching may be incorporated in the derived algorithm. Our framework is applicable to interprocedural data flow problems with a finite domain set. If the problem's flow functions are distributive, the derived demand algorithms provide as precise information as the corresponding exhaustive analysis. For problems with monotone but non-distributive flow functions the provided dat...
On the Computational Complexity of Dynamic Graph Problems
- THEORETICAL COMPUTER SCIENCE
, 1996
"... ..."
A framework for partial data flow analysis
- Proceedings IEEE International Conference on Software Maintenance (ICSM
, 1994
"... Although data pow analysis was first developed for use in compilers, its usefulness is now recognized in many software tools. Because of its compiler origins, the computation of data pow for software tools is based on the traditional exhaustive data flow framework. However, although this framework i ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
Although data pow analysis was first developed for use in compilers, its usefulness is now recognized in many software tools. Because of its compiler origins, the computation of data pow for software tools is based on the traditional exhaustive data flow framework. However, although this framework is useful for computing data pow for compilers, it is not the most appropriate for sofsware tools, particularly those used in the maintenance stage. In maintenance, testing and debugging is typically performed in response to program changes. As such, the data pow required is demand driven from the changed program points. Rather than compute the data flow exhaustively using the traditional data flow framework, we present a framework for partial analysis. The framework includes a specification language enabling the specification of the demand driven data flow desired by a user. From the specification, a partial analysis algorithm is automatically generated using an L-attributed definition for the grammar of the specification language. A specification of a demand driven data pow problem expresses characteristics that define the kind of traversal needed in the partial analysis and the type of dependencies to be captured. The partial analyses algorithms are eficient in that only as much of the program is analyzed as actually needed, thus reducing the time and space requirements over exhaustively computing the data flow information. The algorithms are shown to be useful when debugging and testing programs during maintenance. Keywords- control pow graph (CFG), program debugging, program testing, code optimization. 1
A new framework for exhaustive and incremental data flow analysis using DJ graphs
- ACM SIGPLAN Conf. on PLDI
, 1995
"... In this paper we propose a new framework for elimination-based exhaustive and incremental data flow analysis using DJ graphs. In this paper we give an overview of our framework. The details can be found in our two long reports [SGL95a, SG95a]. These two reports are available from our WWW URL http:/ ..."
Abstract
-
Cited by 10 (0 self)
- Add to MetaCart
In this paper we propose a new framework for elimination-based exhaustive and incremental data flow analysis using DJ graphs. In this paper we give an overview of our framework. The details can be found in our two long reports [SGL95a, SG95a]. These two reports are available from our WWW URL http://www-acaps.cs.mcgill.ca/~sreedhar/pubs.html OR http://www-acaps.cs.mcgill.ca/doc/memos.html i Contents 1 Introduction 1 2 Exhaustive Data Flow Analysis 3 2.1 The Eager Elimination Method : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.1.1 Correctness of Eager Elimination : : : : : : : : : : : : : : : : : : : : : : : 8 2.2 The Delayed Elimination Method : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.3 The Complexity of Our Exhaustive Elimination Methods : : : : : : : : : : : : : 11 3 Handling Irreducibility 13 4 Incremental Data Flow Analysis 13 4.1 Updating the Final Flow Equations: Non-Structural Changes : : : : : : : : : : : 14 4.2 Updating the Final Flow Equa...
A Demand-Driven Approach for Efficient Interprocedural Data Flow Analysis
- IBM RESEARCH
, 1996
"... ..."
Efficient data flow analysis using DJ-graphs: Elimination methods revisited
, 1995
"... In this paper we present a new approach to elimination based data flow analysis that uses a program representation called the DJ Graph. The skeleton of the DJ graph of a program is the dominator tree of its flowgraph (whose edges are called D edges in this paper), and the tree skeleton is augmented ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
In this paper we present a new approach to elimination based data flow analysis that uses a program representation called the DJ Graph. The skeleton of the DJ graph of a program is the dominator tree of its flowgraph (whose edges are called D edges in this paper), and the tree skeleton is augmented with join edges (called J edges in this paper). Unlike the previous elimination methods, which first reduce a flowgraph to a single node, our approach only eliminate J edges from the DJ graph in a bottom-up fashion during the reduction process, while maintainting the dominator tree structure (which may be compressed). We propose two methods for eliminating variables: (1) eager elimination method, and (2) delayed elimination method. With eager elimination, we first perform variable elimination on the DJ-graph in a bottom-up manner. Once we determine the solution for the root node, we propagate this information in a top-down fashion on the dominator tree and determine the corresponding solutio...

