Dependence Analysis for Java
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.
KeywordsAbstract Location Basic Block Dependence Graph Dependence Analysis Exception Handler
Unable to display preview. Download preview PDF.
- 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