skip to main content
article
Free Access

Interprocedural modification side effect analysis with pointer aliasing

Published:01 June 1993Publication History
Skip Abstract Section

Abstract

We present a new interprocedural modification side effects algorithm for C programs, that can discern side effects through general-purpose pointer usage. Ours is the first complete design and implementation of such an algorithm. Preliminary performance findings support the practicality of the technique, which is based on our previous approximation algorithm for pointer aliases [LR92]. Each indirect store through a pointer variable is found, on average, to correspond to a store into 1.2 locations. This indicates that our program-point-specific pointer aliasing information is quite precise when used to determine the effects of these stores.

References

  1. All74 F.E. Allen. Interprocedttral data flow analysis. In Proceedings of 1974 IFIP Congress, pages 398-402, Amsterdam, Holland, 1974. Institute of Electrical and Electronics Engineers, Inc., North Holland Publishing Company.Google ScholarGoogle Scholar
  2. ASU86 A.V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ban79 J. Barming. An efficient way to find the side effects of procedure calls and the aliases of variables. In Conference Record of the Sizth Annual A CM Symposium on Principles of Programming Languages, pages 29- 41, January 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Ban88 Utpal Bemerjee. Dependence Analysis for Supercom. puting. Kluwer Academic Publishers, Norwell, MA, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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
  6. BC86 M. Burke and R. Cytron. l. nterprocedural depenodence analysis and parallelization. In Proceedings of the A CM SIGPLAN Symposium on Compiler Construction, pages 162-175, June 1986. SIGPLAN Norices, Vol 21, No 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bur90 M. Burke. An interval-based approach to exhaustive and incremental interprocedural data flow analysis. A CM Transactions on Programming Languages and Systems, 12(3):341-395, July 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cal88 D. Callahan. The program summary graph and flowsensitive interprocedural 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
  9. CB Jong-Deok Choi and Michael Burke. personal communication.Google ScholarGoogle Scholar
  10. CBC93 Jong-Deok Choi, Michael Burke, and Paul Carird. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Conterence Record of the Twentieth Annual A CM Symposium on Principles of Programming Languages, pages 232-245, January 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. CK84 K. Cooper and K. Kennedy. Efficient computation of How insensitive interprocedural summary information. In Proceedings of the A CM SIGPLAN Symposium on Compiler Construction, pages 247-258, June 1984. SIGPLAN Notices, Vol 19, No 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. CK87 K. Cooper and K. Kennedy. Complexity of interprocedural side-effect analysis. Computer Science Department Techx~ical Report TR87-61, Rice University, October 1987.Google ScholarGoogle Scholar
  13. Coo85 K. Cooper. Analyzing aliases of reference formal parameters. In Conference Record of the Twelfth Annual A CM Symposium on Principles of Programruing Languages, pages 281-290, January 1985, Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Hec77 M.S. Hecht. Flow Analysis of Computer Programs. Elsevier North-Holland, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. HRB88 Susan Horwitz, Thomas Reps, and David Binkley. Interprocedural slicing using dependence graphs. In Proceedings of the SIGPLAN '88 Conference on Protramming Language Design and Implementation, pages 35-46, June 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. JM82 N.D. Jones and S. S. Muclmick. A flexible approach to interprocedural data flow analysis and programs with recursive data structtwes. 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
  17. LR91 W. Landi and B. G. Ryder. Pointer-induced aliasing: A problem classification. L-x Conference Record of the Eighteenth Annual A CM Symposium on Principles of Programming Languages, pages 93-103, January 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. LR92 W. Landi and B. O. Ryder. A safe approximation algorithm for interprocedural pointer aliasing. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, pages 235-248, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. LRZ93 W. Landi, B. G. Ryder, and S. Zhang. interprocedural modification side effect analysis with pointer alia.sing. Teclmical Report LCSR-TR-201, Laboratory for Computer Science Research Technical Report, March 1993. This report supersedes LCSI~ TR-195 and is an expansion of our ACM SIGPLAN PLDI'93 paper. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. MLR+93 Thomas J. Marlowe, William Landi, Barbara G. Ryder, Jong-Deok Choi, Michael Burke, and Paul Carini. A cost-precision comparison of two flow sensitive interprocedural algorithnm for pointer-induced aliasing. Technical report, Laboratory for Computer Science Research Technical Report, March 1993. in preparation.Google ScholarGoogle Scholar
  21. OO84 K.J. Ottenstein and L. M. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the A CM SIG. SOFT/$iGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177-184, May 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. OW91 T.J. Ostrand and E. Weyu~er. Data flow based test adequecy analysis for languages with pointers. In Proceedings of the 1991 Symposium on Software Testing, Analysis and Verification (TAV4), October 1991. Victoria, B.C., Canada. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. PLR92 H.D. Pande, W. Landi, and B. G. Ryder. Interprocedural def-use associations in the presence of single level pointers. Laboratory for Computer Science Research Technical Report LCSR-TR-193, Department of Computer Science, Rutgers University, 1992. being revised for journal publication.Google ScholarGoogle Scholar
  24. PRL91 H. Pande, B. G. Ryder, and W. Landi. Interprocedural def-use associations for C programs. In Proceedings of the A CM SIGSOFT Conference on Testing, Analysis and Validation, pages 139-153, October 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. RM88 C. Ruggieri and T. Murtagh. Lifetime analysis of dynamically allocated objects. In Conference Record of the Fifteenth Annual A CM Symposium on Principles of Programming Languages, pages 285-293, January 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. RW82 S. Rapps and E. Weyuker. Data flow analysis techniques for program test data selection. In Proceedings of the Sixth International Conference on Software Engineering, pages 272-278, September 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Ryd89 B.G. Ryder. Ismm: Incremental software maintenance manager. In Proceedings of the IEEE Computer Society Conference on Software Maintenance, pages 142-164, October 1989.Google ScholarGoogle ScholarCross RefCross Ref
  28. Spi71 T. Spillman. Exposing side effects in a PL-I optimizing compiler. In Proceedings of IFIPS Conference, pages TA-3-56:TA-3-62, 1971.Google ScholarGoogle Scholar
  29. Ven91 G.A. Venkatesh. The semantic approach to program slicing. In Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 107-119, June 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Wei84 Mark Weiser. Program slicing. IEEE Transac. tior~ on $oftwaro Engin~~rlng, SE-10(4):3~;2-357, July 1984.Google ScholarGoogle Scholar
  31. Wol89 Michael Wolfe. Optimizing Supercompilers for Supercomputers. The MIT Press, Cambridge, MA, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Interprocedural modification side effect analysis with pointer 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 28, Issue 6
          June 1993
          313 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/173262
          Issue’s Table of Contents
          • cover image ACM Conferences
            PLDI '93: Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
            August 1993
            313 pages
            ISBN:0897915984
            DOI:10.1145/155090

          Copyright © 1993 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 1993

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader