skip to main content
research-article

Summary-Based Context-Sensitive Data-Dependence Analysis in Presence of Callbacks

Authors Info & Claims
Published:14 January 2015Publication History
Skip Abstract Section

Abstract

Building a summary for library code is a common approach to speeding up the analysis of client code. In presence of callbacks, some reachability relationships between library nodes cannot be obtained during library-code summarization. Thus, the library code may have to be analyzed again during the analysis of the client code with the library summary. In this paper, we propose to summarize library code with tree-adjoining-language (TAL) reachability. Compared with the summary built with context-free-language (CFL) reachability, the summary built with TAL reachability further contains conditional reachability relationships. The conditional reachability relationships can lead to much lighter analysis of the library code during the client code analysis with the TAL-reachability-based library summary. We also performed an experimental comparison of context-sensitive data-dependence analysis with the TAL-reachability-based library summary and context-sensitive data-dependence analysis with the CFL-reachability-based library summary using 15 benchmark subjects. Our experimental results demonstrate that the former has an 8X speed-up over the latter on average.

Skip Supplemental Material Section

Supplemental Material

2676997.mov

References

  1. GitHub Home. https://github.com/.Google ScholarGoogle Scholar
  2. SPECjvm2008 Benchmark Suite. http://www.spec.org/jvm2008/.Google ScholarGoogle Scholar
  3. S. A. Bohner and R. S. Arnold. Software Change Impact Analysis. IEEE Computer Society Press, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Chaudhuri. Subcubic algorithms for recursive state machines. In Proc. POPL, pages 159--169, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. L. Chen, J. Qian, Y. Zhou, P. Wang, and B. Xu. Identifying extract class refactoring opportunities for internetware. Science China Information Sciences, 57(7):1--18, 2014.Google ScholarGoogle Scholar
  6. R. Chugh, J. A. Meister, R. Jhala, and S. Lerner. Staged information flow for javascript. In Proc. PLDI, pages 50--62, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. I. Dillig, T. Dillig, A. Aiken, and M. Sagiv. Precise and compact modular procedure summaries for heap manipulating programs. In Proc. PLDI, pages 567--577, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. G. Gazdar. Applicability of indexed grammars to natural languages. In U. Reyle and C. Rohrer, editors, Natural Language Parsing and Linguistic Theories, pages 69--94, 1988.Google ScholarGoogle ScholarCross RefCross Ref
  9. S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflow analysis. In Proc. FSE, pages 104--115, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Itzhaky, N. Bjørner, T. W. Reps, M. Sagiv, and A. V. Thakur. Property-directed shape analysis. In Proc. CAV, pages 35--51, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. K. Joshi, L. S. Levy, and M. Takahashi. Tree adjunct grammars. Journal of Computer and System Sciences, 10(1):136--163, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Kodumal and A. Aiken. The set constraint/cfl reachability connection in practice. In Proc. PLDI, pages 207--218, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Kodumal and A. Aiken. Regularly annotated set constraints. In Proc. PLDI, pages 331--341, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Komondoor and G. Ramalingam. Recovering data models via guarded dependences. In Proc. WCRE, pages 110--119, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. D. J. Kuck, R. H. Kuhn, D. A. Padua, B. Leasure, and M. Wolfe. Dependence graphs and compiler optimizations. In Proc. POPL, pages 207--218, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. C. Lattner, A. Lenharth, and V. Adve. Making context-sensitive points- to analysis with heap cloning practical for the real world. In Proc. PLDI, pages 278--289, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Lecomte and C. Retoré. Extending lambek grammars: a logical account of minimalist grammars. In Proc. ACL, pages 362--369, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. Litvak, N. Dor, R. Bodík, N. Rinetzky, and M. Sagiv. Field-sensitive program dependence analysis. In Proc. FSE, pages 287--296, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Madhavan, G. Ramalingam, and K. Vaswani. Modular heap analysis for higher-order programs. In Proc. SAS, pages 370--387, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Melski and T. Reps. Interconvertibility of a class of set constraints and context-free-language reachability. TCS, 248(1--2):29--98, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Naik and A. Aiken. Conditional must not aliasing for static race detection. In Proc. POPL, pages 327--338, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Pnueli. Two approaches to interprocedural data flow analysis. Program flow analysis: Theory and applications, pages 189--234, 1981.Google ScholarGoogle Scholar
  23. C. Pollard. Gneralized Phrase Structure Grammars, Head Grammars and Natural Language. PhD thesis, Stanford University, 1984.Google ScholarGoogle Scholar
  24. P. Pratikakis, J. S. Foster, and M. Hicks. Existential label flow inference via cfl reachability. In Proc. SAS, pages 88--106, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. Pratikakis, J. S. Foster, and M. W. Hicks. LOCKSMITH: Context- sensitive correlation analysis for race detection. In Proc. PLDI, pages 320--331, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. G. Ramalingam. Context-sensitive synchronization-sensitive analysis is undecidable. TOPLAS, 22(2):416--430, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. J. Rehof and M. Fähndrich. Type-based flow analysis: From poly- morphic subtyping to CFL-reachability. In Proc. POPL, pages 54--66, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. T. Reps. Shape analysis as a generalized path problem. In Proc. PEPM, pages 1--11, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. T. Reps. Program analysis via graph reachability. Information and Software Technology, 40(11--12):701--726, 1998.Google ScholarGoogle Scholar
  30. T. Reps. Undecidability of context-sensitive data-dependence analysis. TOPLAS, 22(1):162--186, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. T. Reps, S. Horwitz, M. Sagiv, and G. Rosay. Speeding up slicing. In Proc. FSE, pages 11--20, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Proc. POPL, pages 49--61, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. N. Rinetzky, A. Poetzsch-Heffter, G. Ramalingam, M. Sagiv, and E. Yahav. Modular shape analysis for dynamically encapsulated programs. In Proc. ESOP, pages 220--236, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Rountev, S. Kagan, and T. Marlowe. Interprocedural dataflow analysis in the presence of large libraries. In Proc. CC, pages 2--16. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. M. Sagiv, T. Reps, and S. Horwitz. Precise interprocedural dataflow analysis with applications to constant propagation. TCS, 167(1--2): 131--170, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Y. Schabes and K. Vijay-Shanker. Deterministic left to right parsing of tree adjoining languages. In Proc. ACL, pages 276--283, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. M. Sridharan and R. Bodík. Refinement-based context-sensitive points-to analysis for Java. In Proc. PLDI, pages 387--400, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Sridharan, D. Gopan, L. Shan, and R. Bodík. Demand-driven points-to analysis for Java. In Proc. OOPSLA, pages 57--76, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. M. Steedman. Combinators and grammars. In R. Oehrle, E. Bach, and D. Wheeler, editors, Categorial Grammars and Natural Language Structures, pages 417--442, 1988.Google ScholarGoogle ScholarCross RefCross Ref
  40. C. Sun, N. Xi, S. Gao, Z. Chen, and J. Ma. Automated enforcement for relaxed information release with reference points. Science China Information Sciences, 57(11):1--19, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  41. K. Vijay-Shanker and D. J. Weir. The equivalence of four extensions of context-free grammars. Mathematical Systems Theory, 27(6):511--546, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. D. Weir. Characterizing mildly context-sensitive grammar formalisms. PhD thesis, University of Pennsylvania, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. T. Xie, L. Zhang, X. Xiao, Y.-F. Xiong, and D. Hao. Cooperative software testing and analysis: Advances and challenges. JCST, 29(4): 713--723, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  44. G. Xu and A. Rountev. Merging equivalent contexts for scalable heap- cloning-based context-sensitive points-to analysis. In Proc. ISSTA, pages 225--235, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. G. Xu, A. Rountev, and M. Sridharan. Scaling CFL-reachability-based points-to analysis using context-sensitive must-not-alias analysis. In Proc. ECOOP, pages 98--122, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. M. Yannakakis. Graph-theoretic methods in database theory. In Proc. PODS, pages 230--242, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. X. Zhang, R. Mangal, M. Naik, and H. Yang. Hybrid top-down and bottom-up interprocedural analysis. In Proc. PLDI, pages 249--258, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. X. Zheng and R. Rugina. Demand-driven alias analysis for C. In Proc. POPL, pages 351--363, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Summary-Based Context-Sensitive Data-Dependence Analysis in Presence of Callbacks

          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

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!