Skip to main content

Dependence Analysis for Java

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1863))

Abstract

We describe a novel approach to performing data dependence analysis for Java in the presence of Java’s “non-traditional” language features such as exceptions, synchronization, and memory consistency. We introduce new classes of edges in a dependence graph to model code motion constraints arising from these language features. We present a linear-time algorithm for constructing this augmented dependence graph for an extended basic block.

On sabbatical from the Dept. of Computer Science and Engineering, University of Washington, Box 352350, Seattle, WA 98195-2350, USA; chambers@cs.washington.edu.

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. B. Alpern, A. Cocchi, D. Lieber, M. Mergen, and V. Sarkar. Jalapeño —a Compiler-Supported Java Virtual Machine for Servers. In ACM SIGPLAN 1999 Workshop on Compiler Support for System Software (WCSSS’99), May 1999. Also available as INRIA report No. 0228, March 1999.

    Google Scholar 

  2. K. Arnold and J. Gosling. The Java Programming Language. Addison-Wesley, 1996.

    Google Scholar 

  3. M. G. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño Dynamic Optimizing Compiler for Java. In ACM Java Grande Conference, June 1999.

    Google Scholar 

  4. J.-D. Choi, D. Grove, M. Hind, and V. Sarkar. Efficient and precise modeling of exceptions for the analysis of Java programs. In Proc. of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, Toulouse, France, Sept. 1999.

    Google Scholar 

  5. R. Cytron and J. Ferrante. What’s in a Name? Or the Value of Renaming for Parallelism Detection and Storage Allocation. Proceedings of the 1987 International Conference on Parallel Processing, pages 19–27, August 1987.

    Google Scholar 

  6. R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Transactions on Programming Languages and Systems, 13(4):451–490, October 1991.

    Google Scholar 

  7. J. Dean, G. DeFouw, D. Grove, V. Litvinov, and C. Chambers. Vortex: An optimizing compiler for object-oriented languages. In ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), San Jose, CA, Oct. 1996.

    Google Scholar 

  8. A. Diwan, K. S. McKinley, and J. E. B. Moss. Type-based alias analysis. In SIGPLAN’ 98 Conference on Programming Language Design and Implementation, pages 106–117, May 1998.

    Google Scholar 

  9. G. R. Gao and V. Sarkar. Location Consistency: Stepping Beyond the Memory Coherence Barrier. International Conference on Parallel Processing, August 1995.

    Google Scholar 

  10. G. R. Gao and V. Sarkar. On the Importance of an End-To-End View of Memory Consistency in Future Computer Systems. Proceedings of the 1997 International Symposium on High Performance Computing, Fukuoka, Japan, November 1997.

    Google Scholar 

  11. S. S. Muchnick. Advanced Compiler Design & Implementation. Morgan Kaufmann Publishers, Inc., San Francisco, California, 1997.

    Google Scholar 

  12. W. Pugh. A new memory model for Java. Note sent to the JavaMemoryModel mailing list, http://www.cs.umd.edu/pugh/java/memoryModel, October 22, 1999.

  13. W. Pugh. Fixing the Java Memory Model. In ACM Java Grande Conference, June 1999.

    Google Scholar 

  14. B. Steensgaard. Points-to analysis in almost linear time. In 23rd Annual ACM SIGACT-SIGPLAN Symposium on the Principles of Programming Languages, pages 32–41, Jan. 1996.

    Google Scholar 

  15. M. J. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman, London and The MIT Press, Cambridge, Massachusetts, 1989. In the series, Research Monographs in Parallel and Distributed Computing.

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chambers, C., Pechtchanski, I., Sarkar, V., Serrano, M.J., Srinivasan, H. (2000). Dependence Analysis for Java. In: Carter, L., Ferrante, J. (eds) Languages and Compilers for Parallel Computing. LCPC 1999. Lecture Notes in Computer Science, vol 1863. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44905-1_3

Download citation

  • DOI: https://doi.org/10.1007/3-540-44905-1_3

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67858-8

  • Online ISBN: 978-3-540-44905-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics