## Automatic Generation of Solvers for Multisource Data Flow Analysis Problems (2004)

### BibTeX

@MISC{Lasseter04automaticgeneration,

author = {John H. E. F. Lasseter},

title = {Automatic Generation of Solvers for Multisource Data Flow Analysis Problems},

year = {2004}

}

### OpenURL

### Abstract

Much of the success of data flow analysis has come from a well-developed unified

### Citations

955 | Advanced Compiler Design and Implementation - Muchnick - 1997 |

686 |
Introduction to Metamathematics
- Kleene
- 1952
(Show Context)
Citation Context ...or a data flow framework D = (V, F) in which F is monotone, the MFP solution exists [Tar55]. Further if V has the DCC property, then MFP can be computed in finite time by a simple iterative algorithm =-=[Kle52]-=-: guess an initial 1 And in the entry/exit form, we swap the right hand sides of σIN and σ OUT . Alternately, we perform analysis on a flow graph G −1 , which is G with the direction of all arcs rever... |

639 |
Partial Evaluation and Automatic Program Generation. Available online: http://www.itu.dk/people/sestoft/pebook
- Jones, Gomard, et al.
- 1993
(Show Context)
Citation Context ... described in [FLY02], we can apply the ideas to the simpler syntax given here. The approach is based on a static analysis of the specification’s source code, in which we perform a partial evaluation =-=[JGS93]-=-, specializing each equational definition to a set of “influence functions”. Specifically, we associate with each equation definition σi a set of finite maps, d j i : N → 2 N , one for each parametric... |

529 |
A lattice-theorethic Fixpoint Theorem and its applications
- Tarski
- 1955
(Show Context)
Citation Context ..., y ∈ V : x � y =⇒ f(x) � f(y). 2 A function space F is monotone if every f ∈ F is monotone. It is well-known that for a data flow framework D = (V, F) in which F is monotone, the MFP solution exists =-=[Tar55]-=-. Further if V has the DCC property, then MFP can be computed in finite time by a simple iterative algorithm [Kle52]: guess an initial 1 And in the entry/exit form, we swap the right hand sides of σIN... |

355 |
Cousot and Radhia Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints
- Patrick
- 1977
(Show Context)
Citation Context ....1 Schedule The proof techniques for correctness properties of static analyses are well-established: in general, we will want to show a semantic correspondence in the style of abstract interpretation =-=[CC77]-=-. The recovery of individual algorithms, although time-consuming, should also be fairly straightforward. Including a written presentation of the results, I expect to complete both aspects of this exte... |

308 | A unified approach to global program optimization
- Kildall
- 1973
(Show Context)
Citation Context ...nalogous to parser generation, and like parser generation, the idea is hardly new. Indeed, the first such tool was developed by Kildall concomitantly with his seminal lattice-theoretic generalization =-=[Kil73]-=-. However, in contrast to the widespread embrace of automatic parser generation, the foundational study of data flow analysis has traditionally served, in a practical capacity, only as a guide, with t... |

302 |
Two approaches to interprocedural data flow analysis
- Sharir, Pnueli
- 1981
(Show Context)
Citation Context ...es, we will want to distinguish such call/return edges from those modeling ordinary control flow. One highly general model is the interprocedural flow graph (IFG), adapted here from Sharir and Pnueli =-=[SP81]-=-. For a procedure p, we define the flow graph Gp = (Np, Ep, sp, ep), with node set Np and entry/exit nodes sp, ep ∈ Np. We define Np to include a node for every call and non-call instruction in p, plu... |

298 |
Magic Sets and Other Strange Ways to Implement Logic Programs
- Bancilhon, Maier, et al.
- 1986
(Show Context)
Citation Context ...uation of Datalog programs [LS03]. More germane to the problem of dependence graph determination is the body of work on local 9 . . . either by using the magic sets transformation of Bancilhon et al. =-=[BMSU86]-=- with bottom-up evaluation on the transformed program that results, or else by evaluating the (original) Datalog program with a top-down tabulating evaluator [War92]. 17ssolvers, which have been appli... |

277 |
Flow Analysis of Computer Programs
- Hecht
- 1977
(Show Context)
Citation Context ...ly known as the MF P solution, defines the global abstract semantics for classical forward data flow analysis. Examples of this include the well-known reaching definitions and live variables analyses =-=[Hec77]-=-. For backward analyses (e.g. available expressions and very busy expressions), we replace P red(n) with Succ(n), and the test “n = s” with “n = e”. 1 Under certain conditions, we can guarantee that t... |

179 |
Global Optimizations by Suppression of Partial Redundancies
- Morel, Renvoise
- 1979
(Show Context)
Citation Context ...n74]. In practice, however, most of the interest in this technique arises from its application to problems of code motion, especially the partial redundancy elimination analysis of Morel and Renvoise =-=[MR79]-=-. This analysis unifies several traditional optimizations by composing a number of classical forms together. It is defined over a flow graph (N, E, s, e) by a set of data flow equations consisting of ... |

152 | Monotone data flow analysis frameworks - Kam, Ullman - 1977 |

125 |
Memoing for logic programs
- Warren
- 1992
(Show Context)
Citation Context ...ransformation of Bancilhon et al. [BMSU86] with bottom-up evaluation on the transformed program that results, or else by evaluating the (original) Datalog program with a top-down tabulating evaluator =-=[War92]-=-. 17ssolvers, which have been applied mainly to the abstract interpretation of logic programs ([CH94, FS98, FS99, Jør94, VWL94], although see also [CHY95]). In this approach, static determination of t... |

124 | Global data flow analysis and iterative algorithms - Kam, Ullman - 1976 |

119 | Program analysis via graph reachability - Reps - 1998 |

101 | Experimental evaluation of a generic abstract interpretation algorithm for Prolog - Charlier, Hentenryck - 1994 |

100 | A program data flow analysis procedure - Allen, Cocke - 1976 |

96 | The program summary graph and flow-sensitive interprocedural data flow analysis
- Callahan
- 1988
(Show Context)
Citation Context ...e formulations as framework instances (e.g. [MR79, Ten74, Cal88]). In the absence of a better choice, these equations are solved with a general fixpoint algorithm (e.g. [Mas95]). In other cases (e.g. =-=[Cal88]-=-), there is an ad hoc solver that improves on the basic strategy (usually a variant on the workset heuristic). One approach to a broader unified view of multisource data flow problems is the k-tuple f... |

85 | The Interprocedural Coincidence Theorem
- Knoop, Steffen
- 1992
(Show Context)
Citation Context ...nd takes care of assigning actual parameter values to formals. We omit the details. In isolation, neither of these approaches correctly handles the presence of local variables in recursive procedures =-=[KRS92]-=-, but they can be combined to do so. For example, Knoop et al. [KRS96] present a toolkit that implements a functional approach in which the flow value lattice is extended to incorporate stack frames f... |

79 | Cousot and Radhia Cousot. Systematic design of program analysis frameworks - Patrick - 1979 |

75 | A fast and usually linear algorithm for global flow analysis - Graham, Wegman - 1976 |

72 | An Approach for Exploring Code-Improving Transformations - Whitfield, Soffa - 1997 |

70 | Sharlit -- A Tool for Building Optimizers
- Tjiang, Hennessy
- 1992
(Show Context)
Citation Context ...ewval:= f (σ(i)); (i,j) i∈P red(j) if ( newval � σ(j) ) { σ(j) := newval; change := true; } } } (b) Round-robin [Las04]. Those designed for integration with industrial-grade compilers such as Sharlit =-=[TH92]-=- provide APIs which the user instantiates in a general-purpose programming language, while those that exist as free-standing systems to aid basic research such as PAG [Mar98] or System Z [YH93] provid... |

58 | Program derivation by fixed point computation - Cai, Paige - 1989 |

56 | How to Analyze Large Programs Efficiently and Informatively - Dhamdhere, Rosen, et al. - 1992 |

53 |
Static analysis of low-level synchronization
- Callahan, Subhlok
- 1988
(Show Context)
Citation Context ...s are executed independently (e.g. message passing and shared memory). As a consequence, there is little agreement on a standard flow graph model. Examples include the synchronized control flow graph =-=[CS88]-=-, event spanning graph [RS90], parallel flow graph [GS93], module interaction graph [DS91], Masticola and Ryder’s sync graph [MR90b] and sync hypergraph [MR91], and Dwyer and Clarke’s trace flow graph... |

53 | Elimination algorithms for data flow analysis
- Ryder, Paull
- 1986
(Show Context)
Citation Context ...s are discussed in more depth in Section 3.1. A comprehensive, high-level survey is given in [Las04], while detailed presentations of various algorithms can be found in Hecht [Hec77], Ryder and Paull =-=[RP86]-=-, and in most compilers textbooks [ASU86, Muc97]. 3 State of the Art The automatic generation of a data flow analyzer is analogous to parser generation, and like parser generation, the idea is hardly ... |

52 |
Non-concurrency analysis
- Masticola, Ryder
- 1993
(Show Context)
Citation Context ...mulations, including Morel and Renvoise’s partial availability analysis [MR79], Callahan’s interprocedural Gen/Kill problems [Cal88], and a component of Masticola and Ryder’s non-concurrency analysis =-=[MR93]-=-. 4 Generic Solvers for Multisource Data Flow Problems Perhaps the most crucial component of an efficient data flow analysis solver is the dependence graph between the flow equations that arise from i... |

49 | An efficient algorithm for computing MHP information for concurrent Java programs - Naumovich, Avrunin, et al. - 1998 |

48 |
Properties of data flow frameworks: a unified model
- Marlowe, Ryder
- 1990
(Show Context)
Citation Context ...f data flow analysis has come from a well-developed unified theory. This theory presents the technique of data flow analysis in terms of a family of algebraic structures known as data flow frameworks =-=[MR90a]-=-, providing a rigorous classification of problem families and a clear methodology for reasoning about the convergence, precision, and complexity of a given analysis. Coupled with generic solution algo... |

47 |
Practical adaption of the global optimization algorithm of Morel and Renvoise
- Dhamdhere
- 1991
(Show Context)
Citation Context ...onal analyses. Their framework accomodates singular data flow problems (i.e. those with a single confluence operator, as in Morel/Renvoise), but not nonsingular ones (e.g. the variant on MRA given in =-=[Dha91]-=-). The core insight in their work is that the flow of information in a bidirectional analysis can be classified in four ways—through nodes and through edges, both forward and backward. Consequently, t... |

46 | Parallelism for Free: Efficient and Optimal Bitvector Analyses for Parallel Programs - KNOOP, STEFFEN - 1996 |

45 |
A Simple Algorithm for Global Data Flow Analysis Problems
- Hecht, Ullman
- 1975
(Show Context)
Citation Context ... of every toolkit lies in the generic solution algorithms that are implemented. For intraprocedural analysis problems, the most commonly used solvers are the iterative workset [Kil73] and round-robin =-=[HU75]-=- algorithms, which are presented in Fig. 1. As its name suggests, the workset algorithm makes no commitment to a particular evaluation order, but avoids redundant effort by considering at each iterati... |

45 | Demand interprocedural program analysis using logic databases - Reps - 1993 |

44 | Data Flow Analysis in Software Reliability - Fosdick, D, et al. - 1976 |

42 |
PAG an efficient program analyzer generator
- Martin
- 1998
(Show Context)
Citation Context ... compilers such as Sharlit [TH92] provide APIs which the user instantiates in a general-purpose programming language, while those that exist as free-standing systems to aid basic research such as PAG =-=[Mar98]-=- or System Z [YH93] provide the user with high-level, domain-specific languages for analyzer construction. Systems designed for specialized applications of flow analysis such as the optimizer generato... |

42 | Solving demand versions of interprocedural analysis problems - Reps - 1994 |

41 | Data flow equations for explicitly parallel programs
- Grunwald, Srinivasan
- 1993
(Show Context)
Citation Context ...ared memory). As a consequence, there is little agreement on a standard flow graph model. Examples include the synchronized control flow graph [CS88], event spanning graph [RS90], parallel flow graph =-=[GS93]-=-, module interaction graph [DS91], Masticola and Ryder’s sync graph [MR90b] and sync hypergraph [MR91], and Dwyer and Clarke’s trace flow graph (TFG) [DC94]. In general, any such model must represent ... |

41 | Composing dataflow analyses and transformations
- Lerner, Grove, et al.
- 2002
(Show Context)
Citation Context ...ph rewriting problems [Aßm00, LGC02, Rep98]. Further, although it has not received much attention, these approaches appear to be closely related to each other, particularly as presented in [HR81] and =-=[LGC02]-=-. The significance to the present discussion is that these approaches offer performance improvements to flow analysis solvers, by pruning away irrelevant parts of the flow graph model. Consequently, t... |

40 | Concurrency analysis in the presence of procedures using a data-flow framework
- Duesterwald, Soffa
- 1991
(Show Context)
Citation Context ...here is little agreement on a standard flow graph model. Examples include the synchronized control flow graph [CS88], event spanning graph [RS90], parallel flow graph [GS93], module interaction graph =-=[DS91]-=-, Masticola and Ryder’s sync graph [MR90b] and sync hypergraph [MR91], and Dwyer and Clarke’s trace flow graph (TFG) [DC94]. In general, any such model must represent not only ordinary intraprocedural... |

40 | Basic compiler algorithms for parallel programs - Lee, Padua, et al. - 1999 |

39 | A conservative data flow algorithm for detecting all pairs of statement that may happen in parallel - Naumovich, Avrunin - 1998 |

38 | Analysis of event synchronization in a parallel programming tool - Callahan, Kennedy, et al. - 1990 |

35 |
Qualified data flow problems
- HOLLEY, ROSEN
- 1981
(Show Context)
Citation Context ...tricted graph rewriting problems [Aßm00, LGC02, Rep98]. Further, although it has not received much attention, these approaches appear to be closely related to each other, particularly as presented in =-=[HR81]-=- and [LGC02]. The significance to the present discussion is that these approaches offer performance improvements to flow analysis solvers, by pruning away irrelevant parts of the flow graph model. Con... |

33 |
A model of Ada programs for static deadlock detection in polynomial time
- Masticola, Ryder
- 1991
(Show Context)
Citation Context ...lude the synchronized control flow graph [CS88], event spanning graph [RS90], parallel flow graph [GS93], module interaction graph [DS91], Masticola and Ryder’s sync graph [MR90b] and sync hypergraph =-=[MR91]-=-, and Dwyer and Clarke’s trace flow graph (TFG) [DC94]. In general, any such model must represent not only ordinary intraprocedural control flow, but also information regarding the possible communicat... |

32 | Using Shape Analysis to Reduce Finite-State Models of Concurrent Java Programs
- Corbett
- 1998
(Show Context)
Citation Context ... outside of compile-time optimization. Beyond its traditional role, data flow analysis has been applied to a variety of problems including virtual coarsening of program state space for model checking =-=[Cor00]-=-, deadlock analysis [MR91, RS90], and behavioral/structural analysis of software architecture speci4sfications [NACO97, ZFLY03, ZYL04]. Some early non-traditional applications such as software verific... |

32 |
Complexity of flow analysis, inductive assertion synthesis and a language due to Dijkstra
- Jones, Muchnick
- 1981
(Show Context)
Citation Context ...: The reader should note that the use at each index c of the entire k-tuple of values (in the application g (m,n,c) (σ(m))) means that the general form of a k-tuple data flow problem is non-separable =-=[JM81]-=-. Such problems may have very high complexity. � This form is more in the spirit of our flow equations approach: in fact, it is a legal program in the syntax we have given above. An immediate corollar... |

30 | Flow graph reducibility - Hecht, Ullman - 1972 |

30 | A general scheme for the automatic inference of variable types - Kaplan, Ullman - 1980 |

30 | From Datalog rules to efficient programs with time and space guarantees
- Liu, Stoller
- 2003
(Show Context)
Citation Context ...n [CP87, CP89, CP93] and automatic data structure selection [CFH + 91, Goy00] for variants of the declarative language SETL. Recently, this work has been applied to the evaluation of Datalog programs =-=[LS03]-=-. More germane to the problem of dependence graph determination is the body of work on local 9 . . . either by using the magic sets transformation of Bancilhon et al. [BMSU86] with bottom-up evaluatio... |

30 | L.J.Osterweil, \Applying Static Analysis to Software Architectures - Naumovich, Avrunin, et al. - 1997 |