skip to main content
10.1145/378795.378855acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Ultra-fast aliasing analysis using CLA: a million lines of C code in a second

Published:01 May 2001Publication History

ABSTRACT

We describe the design and implementation of a system for very fast points-to analysis. On code bases of about million lines of unpreprocessed C code, our system performs field-based Andersen-style points-to analysis in less than a second and uses less than 10MB of memory. Our two main contributions are a database-centric analysis architecture called compile-link-analyze (CLA), and a new algorithm for implementing dynamic transitive closure. Our points-to analysis system is built into a forward data-dependence analysis tool that is deployed within Lucent to help with consistent type modifications to large legacy C code bases.

References

  1. 1.A. Aiken, M. F. ahndrich, J. Foster, and Z. Su, "A Toolkit for Constructing Type- and Constraint-Based Program Analyses", TIC'98.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.A. Aiken and E. Wimmers, "Solving Systems of Set Constraints", LICS, 1992.]]Google ScholarGoogle ScholarCross RefCross Ref
  3. 3.A. Aiken and E. Wimmers, "Type Inclusion Constraints and Type Inference", ICFP, 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.L. Andersen, "Program Analysis and Specialization for the C Programming Language", PhD. thesis, DIKU report 94/19, 1994,]]Google ScholarGoogle Scholar
  5. 5.D. Atkinson and W. Griswold, "Effective Whole-Program Analysis in the Presence of Pointers", 1998 Symp. on the Foundations of Soft. Eng..]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.S. Chandra, N. Heintze, D. MacQueen, D. Oliva and M. Siff, "ckit: an extensible C frontend in ML",to be released as an SML/NJ library.]]Google ScholarGoogle Scholar
  7. 7.S. Chandra and T. Reps, "Physical Type Checking for C" PASTE, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.M. Das, "Unification-Based Pointer Analysis with Directional Assignments" PLDI, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9."Appendix D: Optimizing Techniques (MIPS-Based C Compiler)", Programmer's Guide: Digital UNIX Version 4.0, Digital Equipment Corporation, March 1996.]]Google ScholarGoogle Scholar
  10. 10.J. Foster, M. F.ahndrich and A. Aiken, "Flow-Insensitive Points-to Analysis with Term and Set Constraints" U. of California, Berkeley, UCB//CSD97964, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.M. F.ahndrich, J. Foster, Z. Su and A. Aiken, "Partial Online Cycle Elimination in Inclusion Constraint Graphs" PLDI, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.C. Flanagan and M. Felleisen, "Componential Set-Based Analysis" PLDI, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.J. Foster, M. F. ahndrich and A. Aiken, "Polymorphic versus Monomorphic Flow-insensitive Points-to Analysis for C", SAS 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.N. Heintze, "Set Based Program Analysis", PhD thesis, Carnegie Mellon University, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.N. Heintze, "Set-Based Analysis of ML Programs", LFP, 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.N. Heintze, "Analysis of Large Code Bases: The Compile-Link-Analyze Model" unpublished report, November 1999.]]Google ScholarGoogle Scholar
  17. 17.N. Heintze and J. Jaffar, "A decision procedure for a class of Herbrand set constraints" LICS, 1990.]]Google ScholarGoogle Scholar
  18. 18.N. Heintze and D. McAllester, "On the Cubic-Bottleneck of Subtyping and Flow Analysis" LICS, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19."Programming Languages - C", ISO/IEC 9899:1990, Internation Standard, 1990.]]Google ScholarGoogle Scholar
  20. 20.D. McAllester, "On the Complexity Analysis of Static Analysis", SAS, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.A. Rountev and S. Chandra, "Off-line Variable Substitution for Scaling Points-to Analysis", PLDI, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.M. Shapiro and S. Horwitz, "Fast and Accurate Flow-Insensitive Points-To Analysis", POPL, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.Z. Su, M. F. ahndrich, and A. Aiken, "Projection Merging: Reducing Redundancies in Inclusion Constraint Graphs", POPL, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.B. Steensgaard, "Points-to Analysis in Almost Linear Time", POPL, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.F. Tip, "Generation of Program Analysis Tools", Institute for Logic Language and Computation dissertation series, 1995-5, 1995.]]Google ScholarGoogle Scholar

Index Terms

  1. Ultra-fast aliasing analysis using CLA: a million lines of C code in a second

            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
              PLDI '01: Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
              June 2001
              331 pages
              ISBN:1581134142
              DOI:10.1145/378795

              Copyright © 2001 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 May 2001

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              PLDI '01 Paper Acceptance Rate30of144submissions,21%Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader