Advertisement

Towards a Versatile Pointer Analysis Framework

  • R. Castillo
  • A. Tineo
  • F. Corbera
  • A. Navarro
  • R. Asenjo
  • E. L. Zapata
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4128)

Abstract

Current pointer analysis techniques fail to find parallelism in heap accesses. However, some of them are still capable of obtaining valuable information about the way dynamic memory is used in pointer-based programs. It would be desirable to have a unified framework with a broadened perspective that can take the best out of available techniques and compensate for their weaknesses. We present an early view of such a framework, featuring a graph-based shape analysis technique. We describe some early experiments that obtain detailed information about how dynamic memory arranges in the heap. Furthermore, we document how def-use information can be used to greatly optimize shape analysis.

Keywords

Pointer Analysis Shape Analysis Dynamic Memory Program Language Design Data Dependence Analysis 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Johnson, T.A., Lee, S.I., Fei, L., Basumallik, A., Upadhyaya, G., Eigenmann, R., Midkiff, S.P.: Experiences in using Cetus for source-to-source transformations. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds.) LCPC 2004. LNCS, vol. 3602, Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Tineo, A., Corbera, F., Navarro, A., Asenjo, R., Zapata, E.: Shape analysis for dynamic data structures based on coexistent links sets. In: 12th Workshop on Compilers for Parallel Computers, CPC 2006, A Coruña, Spain (2006)Google Scholar
  3. 3.
    Plevyak, J., Chien, A., Karamcheti, V.: Analysis of dynamic structures for efficient parallel execution. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.A. (eds.) LCPC 1993. LNCS, vol. 768, Springer, Heidelberg (1994)Google Scholar
  4. 4.
    Sagiv, M., Reps, T., Wilhelm, R.: Solving shape-analysis problems in languages with destructive updating. ACM Transactions on Programming Languages and Systems 20(1), 1–50 (1998)CrossRefGoogle Scholar
  5. 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. ACM Transactions on Programming Languages and Systems (ACM 1991) 13(4), 451–490 (1991)CrossRefGoogle Scholar
  6. 6.
    Tineo, A., Corbera, F., Navarro, A., Asenjo, R., Zapata, E.: A novel approach for detecting heap-based loop-carried dependences. In: The 2005 International Conference on Parallel Processing (ICPP 2005), Oslo, Norway (2005)Google Scholar
  7. 7.
    Hwang, Y.S., Saltz, J.: Identifying DEF/USE information of statements that construct and traverse dynamic recursive data structures. In: Huang, C.-H., Sadayappan, P., Sehr, D. (eds.) LCPC 1997. LNCS, vol. 1366, pp. 131–145. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  8. 8.
    Hind, M., Pioli, A.: Which pointer analysis should I use? In: Int. Symp. on Software Testing and Analysis (ISSTA 2000) (2000)Google Scholar
  9. 9.
    Wilson, R., Lam, M.: Efficient context-sensitive pointer analysis for C programs. In: ACM SIGPLAN’95 Conference on Programming Language Design and Implementation, La Jolla, CA (1995)Google Scholar
  10. 10.
    Ghiya, R., Hendren, L.J.: Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C. In: 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, St. Petersburg, Florida (1996)Google Scholar
  11. 11.
    Chase, D., Wegman, M., Zadek, F.: Analysis of pointers and structures. In: SIGPLAN Conference on Programming Languages Design and Implementation, pp. 296–310 (1990)Google Scholar
  12. 12.
    Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. ACM Transactions on Programming Languages and Systems (2002)Google Scholar
  13. 13.
    Blume, W., Eigenmann, R., Faigin, K., Grout, J., Hoeflinger, J., Padua, D., Petersen, P., Pottenger, W., Rauchwerger, L., Tu, P., Weatherford, S.: Parallel programming with Polaris. IEEE Computer 29(12), 78–82 (1996)Google Scholar
  14. 14.
    Wu, C., Lian, R., Zhang, J., Ju, R., Chan, S., Liu, L., Feng, X., Zhang, Z.: An overview of the Open Research Compiler. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds.) LCPC 2004. LNCS, vol. 3602, pp. 17–31. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  15. 15.
    Wilson, R.P., French, R.S., Wilson, C.S., Amarasinghe, S.P., Anderson, J.M., Tjiang, S.W.K., Liao, S.W., Tseng, C.W., Hall, M.W., Lam, M.S., Hennessy, J.L.: Suif: An infrastructure for research on parallelizing and optimizing compilers. SIGPLAN Notices 29(12), 31–37 (1994)CrossRefGoogle Scholar
  16. 16.
    Vallée-Rai, R., Hendren, L., Sundaresan, V., Lam, P., Gagnon, E., Co, P.: Soot - a Java optimization framework. In: Proceedings of CASCON 1999, pp. 125–135 (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • R. Castillo
    • 1
  • A. Tineo
    • 1
  • F. Corbera
    • 1
  • A. Navarro
    • 1
  • R. Asenjo
    • 1
  • E. L. Zapata
    • 1
  1. 1.Dpt. of Computer ArchitectureUniversity of Málaga, Complejo TecnologicoMálagaSpain

Personalised recommendations