Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us
Search
Cart
Book cover

International Conference on Compiler Construction

CC 2012: Compiler Construction pp 61–80Cite as

  1. Home
  2. Compiler Construction
  3. Conference paper
Parallel Replication-Based Points-To Analysis

Parallel Replication-Based Points-To Analysis

  • Sandeep Putta17,18 &
  • Rupesh Nasre17,18 
  • Conference paper
  • 967 Accesses

  • 13 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 7210)

Abstract

Pointer analysis is one of the most important static analyses during compilation. While several enhancements have been made to scale pointer analysis, the work on parallelizing the analysis itself is still in infancy. In this article, we propose a parallel version of context-sensitive inclusion-based points-to analysis for C programs. Our analysis makes use of replication of points-to sets to improve parallelism. In comparison to the former work on parallel points-to analysis, we extract more parallelism by exploiting a key insight based on monotonicity and unordered nature of flow-insensitive points-to analysis. By taking advantage of the nature of points-to analysis and the structure of constraint graph, we devise several novel optimizations to further improve the overall speed-up. We show the effectiveness of our approach using 16 SPEC 2000 benchmarks and five large open source programs that range from 1.2 KLOC to 0.5 MLOC. Specifically, our context-sensitive analysis achieves an average speed-up of 3.4× on an 8-core machine.

Keywords

  • Parallel Analysis
  • Constraint Graph
  • Local Copy
  • Strongly Connect Component
  • Cycle Detection

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Download conference paper PDF

References

  1. Andersen, L.O.: Program analysis and specialization for the C programming language, PhD Thesis, DIKU, University of Copenhagen (1994)

    Google Scholar 

  2. Bal, H.E., Frans Kaashoek, M., Tanenbaum, A.S., Jansen, J.: Replication techniques for speeding up parallel applications on distributed systems. Concurrency: Pract. Exper. 4, 337–355 (1992)

    CrossRef  Google Scholar 

  3. Berger, E.D., Yang, T., Liu, T., Novark, G.: Grace: safe multithreaded programming for c/c++. In: OOPSLA 2009, pp. 81–96. ACM, New York (2009)

    CrossRef  Google Scholar 

  4. Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using bdds. In: Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, PLDI 2003, pp. 103–114. ACM, New York (2003)

    CrossRef  Google Scholar 

  5. Burckhardt, S., Baldassin, A., Leijen, D.: Concurrent programming with revisions and isolation types. In: OOPSLA 2010, pp. 691–707. ACM, New York (2010)

    Google Scholar 

  6. Das, M.: Unification-based pointer analysis with directional assignments. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2000, pp. 35–46. ACM, New York (2000)

    CrossRef  Google Scholar 

  7. Edvinsson, M., Lundberg, J., Löwe, W.: Parallel points-to analysis for multi-core machines. In: Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers, HiPEAC 2011, pp. 45–54. ACM, New York (2011)

    CrossRef  Google Scholar 

  8. Emami, M., Ghiya, R., Hendren, L.J.: Context-sensitive interprocedural points-to analysis in the presence of function pointers. In: Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, PLDI 1994, pp. 242–256. ACM, New York (1994)

    CrossRef  Google Scholar 

  9. Fähndrich, M., Foster, J.S., Su, Z., Aiken, A.: Partial online cycle elimination in inclusion constraint graphs. In: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, PLDI 1998, pp. 85–96. ACM, New York (1998)

    CrossRef  Google Scholar 

  10. Fähndrich, M., Rehof, J., Das, M.: Scalable context-sensitive flow analysis using instantiation constraints. In: Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, PLDI 2000, pp. 253–263. ACM, New York (2000)

    CrossRef  Google Scholar 

  11. Gifford, D.K.: Weighted voting for replicated data. In: SOSP 1979, pp. 150–162. ACM, New York (1979)

    CrossRef  Google Scholar 

  12. Hardekopf, B., Lin, C.: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2007, pp. 290–299. ACM, New York (2007)

    CrossRef  Google Scholar 

  13. Harman, M., Binkley, D., Gallagher, K., Gold, N., Krinke, J.: Dependence clusters in source code. ACM Trans. Program. Lang. Syst. 32, 1:1–1:33 (2009)

    Google Scholar 

  14. Heintze, N., Tardieu, O.: Ultra-fast aliasing analysis using cla: a million lines of c code in a second. In: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation, PLDI 2001, pp. 254–263. ACM, New York (2001)

    CrossRef  Google Scholar 

  15. Hind, M., Pioli, A.: Which pointer analysis should i use? In: Proceedings of the 2000 ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2000, pp. 113–123. ACM, New York (2000)

    Google Scholar 

  16. Joseph, T.A., Birman, K.P.: Low cost management of replicated data in fault-tolerant distributed systems. ACM Trans. Comput. Syst. 4, 54–70 (1986)

    CrossRef  Google Scholar 

  17. Kahlon, V.: Bootstrapping: a technique for scalable flow and context-sensitive pointer alias analysis. In: Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, PLDI 2008, pp. 249–259. ACM, New York (2008)

    CrossRef  Google Scholar 

  18. Lattner, C., Lenharth, A., Adve, V.: Making context-sensitive points-to analysis with heap cloning practical for the real world. In: Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2007, pp. 278–289. ACM, New York (2007)

    CrossRef  Google Scholar 

  19. Méndez-Lojo, M., Burtscher, M., Pingali, K.: A gpu implementation of inclusion-based points-to analysis. In: Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2012. ACM, New York (2012)

    Google Scholar 

  20. Méndez-Lojo, M., Mathew, A., Pingali, K.: Parallel inclusion-based points-to analysis. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2010, pp. 428–443. ACM, New York (2010)

    CrossRef  Google Scholar 

  21. Nasre, R.: Approximating inclusion-based points-to analysis. In: Proceedings of the 2011 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness, MSPC 2011, pp. 66–73. ACM, New York (2011)

    CrossRef  Google Scholar 

  22. Nasre, R., Govindarajan, R.: Prioritizing constraint evaluation for efficient points-to analysis. In: Proceedings of the 9th IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2011, pp. 267–276 (April 2011)

    Google Scholar 

  23. Nasre, R., Rajan, K., Govindarajan, R., Khedker, U.P.: Scalable Context-Sensitive Points-to Analysis Using Multi-dimensional Bloom Filters. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 47–62. Springer, Heidelberg (2009)

    CrossRef  Google Scholar 

  24. Pereira, F.M.Q., Berlin, D.: Wave propagation and deep propagation for pointer analysis. In: Proceedings of the 7th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2009, pp. 126–135. IEEE Computer Society, Washington, DC (2009)

    CrossRef  Google Scholar 

  25. Prabhu, T., Ramalingam, S., Might, M., Hall, M.: Eigencfa: accelerating flow analysis with gpus. In: POPL 2011, pp. 511–522. ACM, New York (2011)

    Google Scholar 

  26. Rountev, A., Chandra, S.: Off-line variable substitution for scaling points-to analysis. In: Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, PLDI 2000, pp. 47–56. ACM, New York (2000)

    CrossRef  Google Scholar 

  27. Ruf, E.: Partitioning dataflow analyses using types. In: Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1997, pp. 15–26. ACM, New York (1997)

    CrossRef  Google Scholar 

  28. Steensgaard, B.: Points-to analysis in almost linear time. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1996, pp. 32–41. ACM, New York (1996)

    CrossRef  Google Scholar 

  29. Tarjan, R.: Depth-first search and linear graph algorithms. SIAM Journal on Computing 1(2), 146–160 (1972)

    CrossRef  MathSciNet  MATH  Google Scholar 

  30. Whaley, J., Lam, M.S.: An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages. In: Hermenegildo, M.V., Puebla, G. (eds.) SAS 2002. LNCS, vol. 2477, pp. 180–195. Springer, Heidelberg (2002)

    CrossRef  Google Scholar 

  31. Zhang, S., Ryder, B.G., Landi, W.: Program decomposition for pointer aliasing: a step toward practical analyses. In: Proceedings of the 4th ACM SIGSOFT Symposium on Foundations of Software Engineering, SIGSOFT 1996, pp. 81–92. ACM, New York (1996)

    CrossRef  Google Scholar 

  32. Ziegler, H.E., Malusare, P.L., Diniz, P.C.: Array Replication to Increase Parallelism in Applications Mapped to Configurable Architectures. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds.) LCPC 2005. LNCS, vol. 4339, pp. 62–75. Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

  1. Indian Institute of Technology, Bombay, India

    Sandeep Putta & Rupesh Nasre

  2. Indian Institute of Science, Bangalore, India

    Sandeep Putta & Rupesh Nasre

Authors
  1. Sandeep Putta
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Rupesh Nasre
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Editors and Affiliations

  1. School for Informatics, University of Edinburgh, 10 Crichton Street, EH8 9AB, Edinburgh, UK

    Michael O’Boyle

Rights and permissions

Reprints and Permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Putta, S., Nasre, R. (2012). Parallel Replication-Based Points-To Analysis. In: O’Boyle, M. (eds) Compiler Construction. CC 2012. Lecture Notes in Computer Science, vol 7210. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28652-0_4

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-642-28652-0_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-28651-3

  • Online ISBN: 978-3-642-28652-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Search

Navigation

  • Find a journal
  • Publish with us

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature