ABSTRACT
Our exhaustive and incremental hybrid data flow analysis algorithms, based on iteration and elimination techniques, are designed for incremental update of a wide variety of monotone data flow problems in response to source program changes. Unlike previous incremental iterative methods, this incremental algorithm efficiently computes precise and correct solutions. We give theoretical results on the imprecision of restarting iteration for incremental update by fixed point iteration which provided motivation for our algorithm design. Described intuitively, the main algorithm idea is to factor the data flow solution on strong connected components of the flow graph into local and external parts, solving for the local parts by iteration and propagating these effects on the condensation of the flow graph to obtain the entire data flow solution. The incremental hybrid algorithm re-performs those algorithm steps affected by the program changes.
- 1.A.V. Aho, R. Sethi, J.D. UIiman. Compilers: principles, techniques, and tools. Addison-Wesley, Reading, MA, 1986. Google ScholarDigital Library
- 2.F.E. Allen, J. Cooke. A program data flow analysis procedure. Communications of the ACM 19:137-147, 1977. Google ScholarDigital Library
- 3.R. Allen, K. Kennedy. Automatic translation of FORTRAN programs to vector form. ACM Transactions on Programming Languages and Systems 9(4):491-542, 1987. Google ScholarDigital Library
- 4.M. Burke. An interval analysis approach toward exhaustive and incremental interprocedural data flow analysis. Technical Report RC 12702, IBM Thomas J. Watson Research Center, Yorktown Heights, N.Y., July, 1987.Google Scholar
- 5.M. Burke, R. Cytron. Interprocedural dependance analysis and parallelization. In Proceec#ngs of the ACM SIGPLAN Symposium on Compiler ConstnJction, pages 162-175. June, 1 986. SIGPLAN Notices, Vol 21, No 6. Google Scholar
- 6.M. Burke, B.G. Ryder. Incrementa/ iterative data flow analysis algorithms, Laboratory for Computer Sckmce Research Technical Report LCSR-TR-96, Rutgers University, New Brunswick, N.J., 1987.Google Scholar
- 7.J. Cai, R. PaJge. Program derivation by fixed point computation. Science of Computer Programming 11(3):197-261, April, 1989. Google ScholarDigital Library
- 8.M. Carroll, B, Ryder. Incremental data flow update via attribute and dominator updates. In Conference Record of the Fifleenth Annual ACM Symposium on Principles of Programming Languages, pages 274-284. Association for Computing Machinery - SIGPLAN, january, 1988. Google ScholarDigital Library
- 9.K.D. Cooper. Interprocedural data/low analysis in a programming environment. PhD thesis, Department of Mathematical Sciences, Rice University, 1983. Google ScholarDigital Library
- 10.K. Cooper. Analyzing aliases of reference formal parameters. In Conference Record of the Eleventh Annual ACM Symposium on Prindples of Programming Languages, pages 281-290. June, 1984. Google ScholarDigital Library
- 11.K. Cooper, K. Kennedy. Efficient computation of flow insensitive interprocedural summary information. In Conference Record of the Eleventh Annual ACM Symposicrn on Principles of Programming Languages, pages 247-258. June, 1984. SIGPLAN Notices, Vol. 19, No. 6. Google ScholarDigital Library
- 12.K. Cooper, K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual A CM Symposium on Principles of Programming Languages, pages49-59. January, 1989. Google ScholarDigital Library
- 13.V. Ghodssi. Incremental analysis of programs. PhD thesis, Dept. of Computer Science, Central Florida University, 1983. Google ScholarDigital Library
- 14.M.S. HechL Ftow analysis of computer programs. Elsevier North-Holland, Amsterdam, Neth., 1977. Google ScholarDigital Library
- 15.S. Horwitz, A. Demers. T. Teitelbaum. An effident general iterative algorithm for data-flow analysis. Acta lnformatica 24(6):679-694, 1987. Google ScholarDigital Library
- 16.T.J. Marlowe. Incremental iteration and data flow analysis. PhD thesis, Department of Computer Science, Rutgers University, 1989.Google Scholar
- 17.T.J. Marlowe, B.G. Ryder. Properties of data flow frameworks: A unified model. Acta InformatJca. 1989. to appear. Google ScholarDigital Library
- 18.E.W. Myers. A precise interprocedural data flow algorithm. in Conference Record of the Eighth Annum ACM Symposium on Prino'ples of Programming Languages, pages 219-230. Association for Computing Machinery- SIGPLAN, January, 1981. Google ScholarDigital Library
- 19.L. Pollock, M.L. Sofia. INCROMINT- An INCRemental Optimizer for Machine Independent TransformalJons. In Proceedng$ of SOFTFAIR II. A Second Conference on Software Development Tools, Tecl~iques and Alternatives, pages 162-171. December, 19~5. Google ScholarDigital Library
- 20.L. Pollock, M.L Sofia. An incremental version of iterative data flow analysis. IEEE Transaclions on Software Engineering 15(12), December, 1989. Google ScholarDigital Library
- 21.S. Rapps, E. Weyuker. Selecting software test data using data flow information. IEEE Transac~'ons on Software Engineering SE-11(4):367-375, April, 1985. Google ScholarDigital Library
- 22.T, Reps. Optimal-time incremental semantic analysis for syntaxdirected editors. In Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages, pages 169-176. Association for Computing Machinery - SIGPLAN, January. 1982. Google ScholarDigital Library
- 23.B. Rosen. A lubricant for data flow analysis. SIAM Journal of Computing 11(3):493-511, 1982.Google ScholarCross Ref
- 24.B.G. Ryder, M. Carroll. An incremental algorithm for software analysis. in Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineenng Symposium on Practical Software Development Environments, pages 171-179. Association for Computing Machinery, December, 1986. SIGPLAN Notices, vol 21, 1, January 1987. Google ScholarDigital Library
- 25.B.G. Ryder. T.J. Marlowe, M.C. Paull. Conditions for incremental iteration: examples and counterexamples. Science of Computer Programming 11(1 ):t-15, October, 1988. Google ScholarDigital Library
- 26.B.G. Ryder, M.C. Pauii. Elimination algorithms for data flow analysis. ACM Computing Surveys 18(3):277-316, September, 1986. Google ScholarDigital Library
- 27.B.G. Ryder, M.C. PaulL Incremental data flow analysis algorithms. ACM Transactions on Programming Languages and Systems 10(1):1-,50, January, 1988. Google ScholarDigital Library
- 28.J.T. Schwartz, M. Shadr. A design for optimizations of the bitvectoring class. Courant Computer Science Report 17, New York University, New York. N.Y., 1979.Google Scholar
- 29.R.E. Tarjan. Fast algorithms for solving palh problems. Joumat of the ACM28(3):594-614, 1981. Google ScholarDigital Library
- 30.R.E. Tadan. A unified approach to path problems. Journal of the ACM 28(3):576-593, 1981. Google ScholarDigital Library
- 31.F.K. Zadeck. Incremental data flow analysis in a structured program editor. In Proceecings of the A CM SIGPLAN Symposium on Compiler Construc~on, pages t 32-143. June, 1984. SIGPLAN Notices, Vol 19, No 6. Google ScholarDigital Library
Index Terms
- An efficient hybrid algorithm for incremental data flow analysis
Recommendations
Incremental data-flow analysis algorithms
An incremental update algorithm modifies the solution of a problem that has been changed, rather than re-solving the entire problem. ACINCF and ACINCB are incremental update algorithms for forward and backward data-flow analysis, respectively, based on ...
An Incremental Version of Iterative Data Flow Analysis
A technique is presented for incrementally updating solutions to both union and intersection data-flow problems in response to program edits and transformations. For generality, the technique is based on the iterative approach to computing data-flow ...
Incremental data flow analysis via dominator and attribute update
POPL '88: Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe present an algorithm for updating data flow information derived from a program, in response to program edits. Our algorithm, applicable to intraprocedural or interprocedural data flow problems, is more general than previous methods because it can ...
Comments