skip to main content
10.1145/96709.96728acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

An efficient hybrid algorithm for incremental data flow analysis

Authors Info & Claims
Published:01 December 1989Publication History

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.

References

  1. 1.A.V. Aho, R. Sethi, J.D. UIiman. Compilers: principles, techniques, and tools. Addison-Wesley, Reading, MA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.F.E. Allen, J. Cooke. A program data flow analysis procedure. Communications of the ACM 19:137-147, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 7.J. Cai, R. PaJge. Program derivation by fixed point computation. Science of Computer Programming 11(3):197-261, April, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.K.D. Cooper. Interprocedural data/low analysis in a programming environment. PhD thesis, Department of Mathematical Sciences, Rice University, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.V. Ghodssi. Incremental analysis of programs. PhD thesis, Dept. of Computer Science, Central Florida University, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.M.S. HechL Ftow analysis of computer programs. Elsevier North-Holland, Amsterdam, Neth., 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.S. Horwitz, A. Demers. T. Teitelbaum. An effident general iterative algorithm for data-flow analysis. Acta lnformatica 24(6):679-694, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.T.J. Marlowe. Incremental iteration and data flow analysis. PhD thesis, Department of Computer Science, Rutgers University, 1989.Google ScholarGoogle Scholar
  17. 17.T.J. Marlowe, B.G. Ryder. Properties of data flow frameworks: A unified model. Acta InformatJca. 1989. to appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.L. Pollock, M.L Sofia. An incremental version of iterative data flow analysis. IEEE Transaclions on Software Engineering 15(12), December, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.B. Rosen. A lubricant for data flow analysis. SIAM Journal of Computing 11(3):493-511, 1982.Google ScholarGoogle ScholarCross RefCross Ref
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.B.G. Ryder, M.C. Pauii. Elimination algorithms for data flow analysis. ACM Computing Surveys 18(3):277-316, September, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle Scholar
  29. 29.R.E. Tarjan. Fast algorithms for solving palh problems. Joumat of the ACM28(3):594-614, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30.R.E. Tadan. A unified approach to path problems. Journal of the ACM 28(3):576-593, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An efficient hybrid algorithm for incremental data flow analysis

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                December 1989
                401 pages
                ISBN:0897913434
                DOI:10.1145/96709

                Copyright © 1989 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 December 1989

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • Article

                Acceptance Rates

                Overall Acceptance Rate824of4,130submissions,20%

                Upcoming Conference

                POPL '25

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader