skip to main content
article
Free Access

A safe approximate algorithm for interprocedural aliasing

Published:01 July 1992Publication History
Skip Abstract Section

Abstract

During execution, when two or more names exist for the same location at some program point, we call them aliases. In a language which allows arbitrary pointers, the problem of determining aliases at a program point is ρ-space-hard [Lan92]. We present an algorithm for the Conditional May Alias problem, which can be used to safely approximate Interprocedural May Alias in the presence of pointers. This algorithm is as precise as possible in the worst case and has been implemented in a prototype analysis tool for C programs. Preliminary speed and precision results are presented.

References

  1. Ban79 J. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. In Confer. ence Record of the Sixth Ann~tal A CM Symposium on Principles of Programming Languages, pages 29-41, January 19 79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bar78 J.M. Barth. A practical interprocedural data flow analysis algorithm. Communications of the A CM, 21(9):724-736, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Cal88 D. Callahan. The program summary graph and flowsensitive interprocedttral data flow analysis. In Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 47-56, June 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. CK89 K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the $izteenth Annual A CM Symposium on Principles of Programming Languages, pages 49-59, January 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Coo85 K. Cooper. Analyzing aliases of reference formal parameters. In Conference Record of the Twelfth Annual A CM Symposium on Principles of Programming Languages, pages 281-290, January 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Coo89 B.G. Cooper. Ambitious data flow analysis of procedural programs. Master's thesis, University of Minnesota, May 1989.Google ScholarGoogle Scholar
  7. Cou86 D.S. Content. Retargetable high-level alias analysis. In Conference Record of the Thirteenth Annual A CM Symposium on Principles of Programming Languages, pages 110-118, January 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. CR82 A. Chow and A. Rudmik. The design of a data tlow analyzer. In Proceedings of the A CM SIGPLAN Sympo. slum on Compiler Construction, pages 106-113, June 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. CWZ90 D.R. Chase, M. Wegman, and F. K. Zadeck. Analysis of pointers and structures. In Proceedings of the SIC- PLAN '90 Conference on Programming Language De. sign and Implementation, pages 296-310, June 1990. SiGPLAN Notices, Vol 25, No 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Deu90 A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Conference Record of the $e~en. teenth Annual A CM Symposium on Principles of Programming Languages, pages 157-168, January 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Deu92 Alain Deutsch. A storeless mode of aliasing and its abstractions using finite representation of right-regular equivalence relations, in Proceedings of the IEEE 1992 Conference on Computer Languages, April 1992.Google ScholarGoogle ScholarCross RefCross Ref
  12. Gua88 C.A. Guarna. A technique for analyzing pointer and structure references in parallel restructuring compilers. In Proceedings of the International Conference on Parallel Processing, pages 212-220, 1988.Google ScholarGoogle Scholar
  13. HA90 W.L. Harrison III and Z. Ammarguellat. Parcel and miprac: Parallelizers for symbolic and numeric programs. In International Workshop on Compilers for Parallel Computers, December 1990.Google ScholarGoogle Scholar
  14. HN89 L.J. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. In Proceedings of the 1989 International Conference on Parallel Processing, pages 49-56, August 1989.Google ScholarGoogle Scholar
  15. HPR89 S. Horwitz, P. Pfeiffer, and T. Reps. Dependence analysis for pointer variables. In Proceedings of the A CM SIGPLAN Symposium on Compiler Construe. tion, pages 28-40, June 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. JM79 N. Jones and S. Muchnlck. Flow analysis and op~imlzation of lisp-like structures. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, pages 102-131. Prentice Hall, 1979.Google ScholarGoogle Scholar
  17. JM82 N.D. Jones and S. S. Muchnick. A flexible approach to interprocedural data/low analysis and programs with recursive data structures. In Conference Record of the Ninth Annual A CM Symposium on Principles of Programming Languages, pages 66-74, January 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. KS86 H. Korth and A. Silberschatz. Database System Concepts. McGraw-Hill, New York, NY, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Lan92 W. Landi. Interprocedural Aliasing in the Presence of Pointers. PhD thesis, Rutgers University, January 1992. LCSR-TH-174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. LH88 J.R. Larus and P. N. Hilfinger. Detecting conflicts between structure accesses. In Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 21-34, July 1988. SIGPLAN NOTICES, Vol. 23, No. 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. LR91 W. Landl and B. G. Ryder. Pointer-induced aliaslng: A problem classlilcation. In Conference Record of the Eighteenth Annual A CM Symposium on Principles of Programming Languages, pages 93-103, January 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mye81 E.M. Myers. A precise interprocedural data flow al. gorithxqa. In Conference Record of the Eighth Annual A CM Symposium on Principles of Programming Languages, pages 219-230, January 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. NPD87 A. Neirynck, P. Panangaden, and A. Demers. Computation of aliases and support sets. In Conference Record of the Fourteenth Annual A CM Symposium on Principles of Programming Languages, pages 274-283, January 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. PRL91 H.D. Pande, B. G. Ryder, and W. Landi. }{nterprocedural def-use associations in c programs, in Proceedings of the Fifth Testing, Analysis, and Verification Symposium, October 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. RP88 B.G. Ryder and H. Pande. The interproeedural structure of c programs: An empirical study. Laboratory for Computer Science Research Technical Report LCSR-TR-99, Department of Computer Science, Rutgers University, February 1988.Google ScholarGoogle Scholar
  26. Ryd89 B. G. Ryder. Ismm: Incremental softwaxe maintenance manager. In Proceedings of the IEEE Computer Society Conference on Software Maintenance, pages 142-164~ October 1989.Google ScholarGoogle ScholarCross RefCross Ref
  27. Wei80 W.E. Weihl. Interprocedural data flow analysis in the presence of pointers, procedure variables and label variables. In Conference Record of the Seventh Annual A CM Symposium on Principles of Programming Languages, pages 83-94, January 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A safe approximate algorithm for interprocedural aliasing

          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 27, Issue 7
            July 1992
            352 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/143103
            Issue’s Table of Contents
            • cover image ACM Conferences
              PLDI '92: Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
              July 1992
              352 pages
              ISBN:0897914759
              DOI:10.1145/143095

            Copyright © 1992 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 July 1992

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader