Abstract
We introduce a new technique for dramatically improving the performance of inclusion-based points-to analysis, by using bisimilarity in order to detect pointer equivalences before constraint resolution. We present the design and correctness proof of this technique, along with an implementation prototype, and a series of benchmarks. The benchmarks indicate that our technique dramatically improves the scalability of inclusion-based points-to analysis, beating the current leading offline optimizations for inclusion-based points-to analysis.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D. (eds.): Compilers: principles, techniques, and tools, 2nd edn. Pearson/Addison Wesley, Boston (2007)
Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (DIKU report 94/19) (May 1994)
Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using BDDs. ACM SIGPLAN Notices 38(5), 103–114 (2003)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (1999)
Cleaveland, R.: The concurrency workbench: A semantics-based verification tool for the verification of concurrent systems. ACM Transactions on Programming Languages and Systems 15(1), 36–72 (1993)
Dovier, A., Piazza, C., Policriti, A.: An efficient algorithm for computing bisimulation equivalence. Theor. Comput. Sci. 311(1-3), 221–256 (2004)
Fähndrich, M., Foster, J.S., Su, Z., Aiken, A.: Partial online cycle elimination in inclusion constraint graphs. ACM SIGPLAN Notices 33(5), 85–96 (1998)
Focardi, R., Gorrieri, R.: The compositional security checker: A tool for the verification of information flow security properties. IEEE Trans. Software Eng. 23(9), 550–571 (1997)
Hardekopf, B., Lin, C.: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In: Ferrante, J., McKinley, K.S. (eds.) PLDI, pp. 290–299. ACM Press, New York (2007)
Hardekopf, B., Lin, C.: Exploiting pointer and location equivalence to optimize pointer analysis. In: Riis Nielson, H., Filé, G. (eds.) SAS 2007. LNCS, vol. 4634, pp. 265–280. Springer, Heidelberg (2007)
Heintze, N., Tardieu, O.: Ultra-fast aliasing analysis using CLA: A million lines of C code in a second. ACM SIGPLAN Notices 36(5), 254–263 (2001)
Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate language and tools for analysis and transformation of C programs. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 213–228. Springer, Heidelberg (2002)
Nuutila, E., Soisalon-Soininen, E.: On finding the strongly connected components in a directed graph. Information Processing Letters 49, 9–14 (1993)
Paige, R., Tarjan, R.E.: Three partition refinement algorithms. SIAM J. Comput. 16(6), 973–989 (1987)
Pearce, D.J., Kelly, P.H.J., Hankin, C.: Efficient field-sensitive pointer analysis for C. In: Flanagan, C., Zeller, A. (eds.) PASTE, pp. 37–42. ACM Press, New York (2004)
Pearce, D.J., Kelly, P.H.J., Hankin, C.: Efficient field-sensitive pointer analysis of C. ACM Transactions on Programming Languages and Systems 30(1), 4:1–4:42 (2007)
Rountev, A., Chandra, S.: Off-line variable substitution for scaling points-to analysis. ACM SIGPLAN Notices 35(5), 47–56 (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Simon, L. (2009). Optimizing Pointer Analysis Using Bisimilarity. In: Palsberg, J., Su, Z. (eds) Static Analysis. SAS 2009. Lecture Notes in Computer Science, vol 5673. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03237-0_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-03237-0_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-03236-3
Online ISBN: 978-3-642-03237-0
eBook Packages: Computer ScienceComputer Science (R0)