skip to main content
article
Free Access

Interprocedural side-effect analysis in linear time

Published:01 June 1988Publication History
Skip Abstract Section

Abstract

We present a new method for solving Banning's alias-free flow-insensitive side-effect analysis problem. The algorithm employs a new data structure, called the binding multi-graph, along with depth-first search to achieve a running time that is linear in the size of the call multi-graph of the program. This method can be extended to produce fast algorithms for data-flow problems with more complex lattice structures.

References

  1. Alle 74 F.E. Allen, "Interprocedural data flow analysis", Proc. of the 197d IFIP$ Congress, 1974.Google ScholarGoogle Scholar
  2. Bann 79 J.P. Banning, "An efficient way to find the side effects of procedure calls and the aliases of variables'', Proc. of the Sixth POPL, Jan., 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bart 78 J.M. Barth, "A practical interprocedural data flow analysis algorithm", CA CM 21(9), Sept., 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Burk 84 M. Burke, "An interval analysis approach toward interprocedural data flow", Report RC 10640, IBM T.J. Watson Research Center, Yorktown Heights, N.Y., July, 1984.Google ScholarGoogle Scholar
  5. BuCy 86 M. Burke and R. Cytron, "Interprocedural dependence analysis and parallelization", Proc. of the $IGPI, AN 86 Symposium on Compiler Construction, $IGPLAN Notice$, 21(7), July, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. CCKT 86 D. Callahan, K.D. Cooper, K. Kennedy, and L. Torczon, "Interprocedural constant propagation", Proc. of the $IGPLAN 86 Symposium on Compiler Construction, SIGPLAN Notices, 21(7), July, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. CaKe 87 D. Callahan and K. Kennedy, "Analysis of interprocedural side effects in a parallel programming environment", Proc, of First Int'l Conference on Supercomputing, Athens, Greece, June, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. CaRy 86 M.D. Carroll and B.C. Ryder, "An incremental algorithm for software analysis", Proc. of the SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, $IGPLAN Notices 22(1), Jan., 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Carr 87 M.D. Carroll, "Datafiow update via attribute and dominator update," Ph.D. Dissertation, Rutgers University, 1987.Google ScholarGoogle Scholar
  10. Coop 83 K.D. Cooper, "Interprocedura{ data flow analysis in a programming environment", Ph.D. dissertation Department of Mathematical Sciences, Rice University, April, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. CoKe 84 K.D. Cooper and K. Kennedy, "Efficient computation of flow insensitive interprocedural summary information", Proc. of the SIGPLAN 8d Symposium on Compiler Construction, $16PLAN Notices 19(6), June, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. CoKe 87a K.D. Cooper and K. Kennedy, "Efficient computation of flow-insensitive interprocedural summary information -- a correction", TR87-60, Department of Computer Science, Rice University, Oct., 1987.Google ScholarGoogle Scholar
  13. CoKe 87b K.D. Cooper and K. Kennedy, "Complexity of interprocedural side-effect analysis", TR87-61, Department of Computer Science, Rice University, Oct., 1987.Google ScholarGoogle Scholar
  14. GrWe 76 S. Graham and M. Wegman, "A fast and usually linear algorithm for global flow analysis", JA CM, Jan., 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. KaUl 76 J. Karn and J. Ullman, "Global data flow analysis and iterative algorithms", JACM, Jan., 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Myer 80 E. Myers, "A precise and efficient algorithm for determining existential summary data flow information'', Technical Report CU-CS- 175-80, Department of Computer Science, University of Colorado, March, 1980.Google ScholarGoogle Scholar
  17. Rose 79 B. Rosen, "Data flow analysis for procedural languages", JA CM 26(2), April, 1079. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ryde 87 B. Ryder, private communication, July 31, 1987.Google ScholarGoogle Scholar
  19. Spil 71 T.C. Spillman, "Exposing side-effects in a PL/I optimizing compiler", Proc. of the 1971 IFIPS Con#re,s, 1971.Google ScholarGoogle Scholar
  20. Tarj 72 R.E. Tarian, "Depth-first search and linear graph algorithms", SIAM J. Computing 1(2), 1972.Google ScholarGoogle Scholar
  21. Tarj 81a R.E. Tarjan, "A unified approach to path prot> Iems", JACM 28(3), July, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Tarj 81b R.E. Tarjan, "Fast algorithms for solving path problems", JACM28(3), July, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. TrIF 86 R. Triolet, F. Irgoin, and P. Feautrier, "Direct parallelization of call statements", Proc. of the $IGPLAN $8 Symposium on Compiler Construction, $IGPLAN Notices, 21(7), July, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Torc 85 L. Torczon, "Compilation dependences in an ambitious optimizing compiler", Ph.D. dissertation, Department, of Computer Science, Rice University, May, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Zade 84 F.K. Zadeck, "Incremental data flow analysis in a structured program editor", Proc. of the SIGPLAN '8d Symposium on Compiler Construction, SIC- PLAN Notices, 19(6), June 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Interprocedural side-effect analysis in linear time

          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

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 23, Issue 7
            Proceedings of the SIGPLAN '88 conference on Programming language design and implementation
            July 1988
            338 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/960116
            Issue’s Table of Contents
            • cover image ACM Conferences
              PLDI '88: Proceedings of the ACM SIGPLAN 1988 conference on Programming language design and implementation
              June 1988
              338 pages
              ISBN:0897912691
              DOI:10.1145/53990

            Copyright © 1988 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 June 1988

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader