A Smooth Combination of Linear and Herbrand Equalities for Polynomial Time Must-Alias Analysis

  • Helmut Seidl
  • Vesal Vojdani
  • Varmo Vene
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5850)

Abstract

We present a new domain for analyzing must-equalities between address expressions. The domain is a smooth combination of Herbrand and affine equalities which enables us to describe field accesses and array indexing. While the full combination of uninterpreted functions with affine arithmetics results in intractable assertion checking algorithms, our restricted domain allows us to construct an analysis of address must-equalities that runs in polynomial time. We indicate how this analysis can be applied to infer access patterns in programs manipulating arrays and structs.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Chakrabarti, A., de Alfaro, L., Henzinger, T., Jurdziński, M., Mang, F.: Interface compatibility checking for software modules. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 428–663. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Deutsch, A.: Interprocedural may-alias analysis for pointers: beyond k-limiting. In: PLDI 1994, pp. 230–241. ACM Press, New York (1994)CrossRefGoogle Scholar
  3. 3.
    Gulwani, S., Necula, G.C.: A polynomial-time algorithm for global value numbering. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 212–227. Springer, Heidelberg (2004)Google Scholar
  4. 4.
    Gulwani, S., Tiwari, A.: Assertion checking over combined abstraction of linear arithmetic and uninterpreted functions. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 279–293. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    Gulwani, S., Tiwari, A.: An abstract domain for analyzing heap-manipulating low-level software. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 379–392. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Gulwani, S., Tiwari, A.: Computing procedure summaries for interprocedural analysis. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 253–267. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  7. 7.
    Hind, M., Burke, M., Carini, P., Choi, J.-D.: Interprocedural pointer alias analysis. ACM Trans. Prog. Lang. Syst. 21(4), 848–894 (1999)CrossRefGoogle Scholar
  8. 8.
    Holzmann, G.J.: The power of ten: Rules for developing safety critical code. IEEE Computer 39(6), 95–97 (2006)Google Scholar
  9. 9.
    Karr, M.: Affine relationships among variables of a program. Acta Informatica 6(2), 133–151 (1976)MATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Kildall, G.A.: A unified approach to global program optimization. In: POPL 1973, pp. 194–206. ACM Press, New York (1973)CrossRefGoogle Scholar
  11. 11.
    Lu, S., Park, S., Hu, C., Ma, X., Jiang, W., Li, Z., Popa, R.A., Zhou, Y.: MUVI: automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs. In: SOSP 2007, pp. 103–116. ACM Press, New York (2007)CrossRefGoogle Scholar
  12. 12.
    Müller-Olm, M., Rüthing, O., Seidl, H.: Checking Herbrand equalities and beyond. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 79–96. Springer, Heidelberg (2005)Google Scholar
  13. 13.
    Müller-Olm, M., Seidl, H.: Precise interprocedural analysis through linear algebra. In: POPL 2004, pp. 330–341. ACM Press, New York (2004)CrossRefGoogle Scholar
  14. 14.
    Müller-Olm, M., Seidl, H.: Analysis of modular arithmetic. ACM Trans. Prog. Lang. Syst. 29(5) (2007)Google Scholar
  15. 15.
    Müller-Olm, M., Seidl, H.: Upper adjoints for fast inter-procedural variable equalities. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 178–192. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  16. 16.
    Müller-Olm, M., Seidl, H., Steffen, B.: Interprocedural Herbrand equalities. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 31–45. Springer, Heidelberg (2005)Google Scholar
  17. 17.
    Naik, M., Aiken, A.: Conditional must not aliasing for static race detection. In: POPL 2007, pp. 327–338. ACM Press, New York (2007)CrossRefGoogle Scholar
  18. 18.
    Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. ACM Trans. Prog. Lang. Syst. 1(2), 245–257 (1979)MATHCrossRefGoogle Scholar
  19. 19.
    Paterson, M., Wegman, M.N.: Linear unification. In: STOC 1976, pp. 181–186. ACM Press, New York (1976)CrossRefGoogle Scholar
  20. 20.
    Pratikakis, P., Foster, J.S., Hicks, M.: Existential label flow inference via CFL reachability. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 88–106. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  21. 21.
    Seidl, H., Vojdani, V.: Region analysis for race detection. In: SAS 2009. LNCS, vol. 5673, pp. 171–187. Springer, Heidelberg (2009)Google Scholar
  22. 22.
    Steffen, B., Knoop, J., Rüthing, O.: The value flow graph: A program representation for optimal program transformations. In: Jones, N.D. (ed.) ESOP 1990. LNCS, vol. 432, pp. 232–247. Springer, Heidelberg (1990)Google Scholar
  23. 23.
    Vojdani, V., Vene, V.: Goblint: Path-sensitive data race analysis. Annales Univ. Sci. Budapest., Sect. Comp. 30, 141–155 (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Helmut Seidl
    • 1
  • Vesal Vojdani
    • 1
  • Varmo Vene
    • 2
  1. 1.Lehrstuhl für Informatik IITechnische Universität MünchenGarching b. MünchenGermany
  2. 2.Deptartment of Computer ScienceUniversity of TartuTartuEstonia

Personalised recommendations