Skip to main content

SPAS: Scalable Path-Sensitive Pointer Analysis on Full-Sparse SSA

  • Conference paper
Programming Languages and Systems (APLAS 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7078))

Included in the following conference series:

Abstract

We present a new SPAS (Scalable PAth-Sensitive) framework for resolving points-to sets in C programs that exploits recent advances in pointer analysis. SPAS enables intraprocedural path-sensitivity to be obtained in flow-sensitive and context-sensitive (FSCS) techniques scalably, by using BDDs to manipulate program paths and by performing pointer analysis level-by-level on a full-sparse SSA representation similarly as the state-of-the-art LevPA (the FSCS version of SPAS). Compared with LevPA using all 27 C benchmarks in SPEC CPU2000 and CPU2006, SPAS incurs 18.42% increase in analysis time and 10.97% increase in memory usage on average, while guaranteeing that all points-to sets are obtained with non-decreasing precision.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using BDDs. In: PLDI 2003, vol. 38(5), p. 114 (2003)

    Google Scholar 

  2. Bush, W.R., Pincus, J.D., Sielaff, D.J.: A static analyzer for finding dynamic programming errors. In: SPE 2000, vol. 30, pp. 775–802 (2000)

    Google Scholar 

  3. Chatterjee, R., Ryder, B.G., Landi, W.A.: Relevant context inference. In: POPL 1999, p. 146. ACM (1999)

    Google Scholar 

  4. Chow, F., Chan, S., Liu, S., Lo, R., Streich, M.: Effective Representation of Aliases and Indirect Memory Operations in SSA Form. In: Gyimóthy, T. (ed.) CC 1996. LNCS, vol. 1060, pp. 253–267. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  5. Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently computing static single assignment form and the control dependence graph. TOPLAS 13(4), 490 (1991)

    Article  Google Scholar 

  6. Dillig, I., Dillig, T., Aiken, A.: Sound, complete and scalable path-sensitive analysis. In: PLDI 2008, pp. 270–280. ACM (2008)

    Google Scholar 

  7. Emami, M., Ghiya, R., Hendren, L.J.: Context-sensitive interprocedural points-to analysis in the presence of function pointers. In: PLDI 1994, pp. 242–256 (1994)

    Google Scholar 

  8. Gutzmann, T., Lundberg, J., Lowe, W.: Towards path-sensitive points-to analysis. In: SCAM 2007, pp. 59–68. IEEE (2007)

    Google Scholar 

  9. Hardekopf, B., Lin, C.: Semi-sparse flow-sensitive pointer analysis. In: POPL 2009, pp. 226–238. ACM (2009)

    Google Scholar 

  10. Hardekopf, B., Lin, C.: Flow-Sensitive Pointer Analysis for Millions of Lines of Code. In: CGO 2011 (2011)

    Google Scholar 

  11. Kahlon, V.: Bootstrapping: a technique for scalable flow and context-sensitive pointer alias analysis. In: PLDI 2008, pp. 249–259. ACM (2008)

    Google Scholar 

  12. Landi, W., Ryder, B.G.: A safe approximate algorithm for interprocedural aliasing. In: PLDI 1992, vol. 27(7), pp. 235–248 (1992)

    Google Scholar 

  13. Le, W., Soffa, M.L.: Refining buffer overflow detection via demand-driven path-sensitive analysis. In: PASTE 2007, pp. 63–68. ACM (2007)

    Google Scholar 

  14. Lhoták, O., Andrew Chung, K.-C.: Points-to analysis with efficient strong updates. In: POPL 2011, pp. 3–16. ACM, New York (2011)

    Google Scholar 

  15. Benjamin Livshits, V., Lam, M.S.: Tracking pointers with path and context sensitivity for bug detection in c programs. In: FSE 2003, pp. 317–326 (2003)

    Google Scholar 

  16. Nystrom, E.M., Kim, H.S., Hwu, W.W.: Bottom-Up and Top-Down Context-Sensitive Summary-Based Pointer Analysis. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 165–180. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  17. Smaragdakis, Y., Bravenboer, M., Lhoták, O.: Pick your contexts well: understanding object-sensitivity. In: POPL 2011, pp. 17–30. ACM (2011)

    Google Scholar 

  18. Steensgaard, B.: Points-to analysis in almost linear time. In: POPL 1996, pp. 32–41. ACM, New York (1996)

    Google Scholar 

  19. Whaley, J., Lam, M.S.: Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In: PLDI 2004, pp. 131–144. ACM (2004)

    Google Scholar 

  20. Xie, Y., Aiken, A.: Context-and path-sensitive memory leak detection. In: FSE 2005, vol. 30(5), p. 125 (2005)

    Google Scholar 

  21. Xie, Y., Aiken, A.: Scalable error detection using boolean satisfiability. In: POPL 2005, vol. 40(1), pp. 351–363 (2005)

    Google Scholar 

  22. Xue, J., Cai, Q., Gao, L.: Partial dead code elimination on predicated code regions. In: SPE 2006, vol. 36, pp. 1655–1685 (2006)

    Google Scholar 

  23. Yu, H., Xue, J., Huo, W., Feng, X., Zhang, Z.: Level by level: making flow-and context-sensitive pointer analysis scalable for millions of lines of code. In: CGO 2010, pp. 218–229. ACM, New York (2010)

    Google Scholar 

  24. Zhu, J., Calman, S.: Symbolic pointer analysis revisited. In: PLDI 2004, p. 157. ACM (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sui, Y., Ye, S., Xue, J., Yew, PC. (2011). SPAS: Scalable Path-Sensitive Pointer Analysis on Full-Sparse SSA. In: Yang, H. (eds) Programming Languages and Systems. APLAS 2011. Lecture Notes in Computer Science, vol 7078. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25318-8_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-25318-8_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-25317-1

  • Online ISBN: 978-3-642-25318-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics