Data flow frequency analysis

Conventional dataflow analysis computes information about what facts may or will not hold during the execution of a program. Sometimes it is useful, for program optimization, to know how often or with what probability a fact holds true during program execution. In this paper, we provide a precise formulation of this problem for a large class of dataflow problems --- the class of finite bi-distributive subset problems. We show how it can be reduced to a generalization of the standard dataflow analysis problem, one that requires a sum-over-all-paths quantity instead of the usual meet-overall-paths quantity. We show that Kildall's result expressing the meet-over-all-paths value as a maximal-fixed-point carries over to the generalized setting. We then outline ways to adapt the standard dataflow analysis algorithms to solve this generalized problem, both in the intraprocedural and the interprocedural case.

[1]  Barbara G. Ryder,et al.  Static Type Determination and Aliasing for C , 1990 .

[2]  James R. Larus,et al.  Static branch frequency and program profile analysis , 1994, MICRO 27.

[3]  John Cocke,et al.  A program data flow analysis procedure , 1976, CACM.

[4]  Thomas W. Reps,et al.  Precise interprocedural dataflow analysis via graph reachability , 1995, POPL '95.

[5]  Bernhard Steffen,et al.  The Interprocedural Coincidence Theorem , 1992, CC.

[6]  Thomas W. Reps,et al.  Precise Interprocedural Dataflow Analysis with Applications to Constant Propagation , 1995, TAPSOFT.

[7]  Jason R. C. Patterson,et al.  Accurate static branch prediction by value range propagation , 1995, PLDI '95.

[8]  Michael A. Harrison,et al.  Accurate static estimators for program optimization , 1994, PLDI '94.

[9]  David Grove,et al.  Selective specialization for object-oriented languages , 1995, PLDI '95.

[10]  Jeffrey D. Ullman,et al.  Global Data Flow Analysis and Iterative Algorithms , 1976, J. ACM.

[11]  James R. Larus,et al.  Optimally profiling and tracing programs , 1992, POPL '92.

[12]  Barbara G. Ryder,et al.  Elimination algorithms for data flow analysis , 1986, CSUR.

[13]  C. V. Ramamoorthy,et al.  Analysis of computational systems: Discrete Markov analysis of computer programs , 1965, ACM '65.

[14]  Michel Minoux,et al.  Graphs and Algorithms , 1984 .

[15]  Charles N. Fischer,et al.  Probabilistic register allocation , 1992, PLDI '92.

[16]  P. Carini ReportFlow-Sensitive Type Analysis for C + + , 1995 .

[17]  Robert E. Tarjan,et al.  Fast Algorithms for Solving Path Problems , 1981, JACM.

[18]  Barbara G. Ryder,et al.  Static Type Determination for C++ , 1994, C++ Conference.

[19]  Neil D. Jones,et al.  Program flow analysis - theory and applications , 1981, Prentice Hall software series.

[20]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[21]  Satoshi Sekiguchi,et al.  LANGUAGE DESIGN AND IMPLEMENTATION OF , 1995 .