[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/504282.504297acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Dynamic optimistic interprocedural analysis: a framework and an application

Published: 01 October 2001 Publication History

Abstract

In this paper, we address the problem of dynamic optimistic interprocedural analysis. Our goal is to build on past work on static interprocedural analysis and dynamic optimization by combining their advantages. We present a framework for performing dynamic optimistic interprocedural analysis. the framework is designed to be used in the context of dynamic class loading and dynamic compilation, and includes mechanisms for event notification (on class loading and method compilation) and dependence tracking (to enable invalidation of optimistic assumptions). We illustrate the functionality of the framework by using it to be used in the context of dynamic class loading and dynamic compilation, and includes mechanisms for event notification (on class loading and method compilaton) and dependence tracking (to enable invalidation of optimistic assumptions). We illustrate the functionality of the framework by using it to implement a dynamic optimistic interprocedural type (DOIT) analysis algorithm. The DOIT algorithm uses a new global data structure called the Value Graph. The framework and DOIT analysis of the IBM Jalapeño Java virtual machine. Our experimental results for the SPECjvm benchmarks and two larger programs show promising benefits due to dynamic optimistic analysis. Compared to pessimistic analysis, the reduction in number of methods and fields analyzed was in the 2.7x-4.6x and 1.6-2.4x ranges respectively. The average fraction of polymorphic virtual calls decreased from 39.5% to 24.4% due to optimistic analysis, with a best-case decrease from 47.0% to 8.1%. The average fraction of polymorphic interface calls decreased from 96.4% to 36.2% due to optimistic analysis, with a best-case decrease from 100.0% to 0.0%. These benefits were obtained with a low dynamic analysis overhead in the range of 570-930 bytecode bytes/millisecond (about 2.5x-5.4x faster than the Jalapeño baseline compiler)

References

[1]
B. Alpern et al. The Jalapefio virtual machine. IBM Systems Journal, 39(1), 2000.]]
[2]
B. Alpexn, D. Attanasio, J. J. Barton, A. Cocchi, D. Lieber, S. Smith, and T. Ngo. Implementing Jalapefio in Java. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 314-324, 1999.]]
[3]
B. Alpern, A. Cocchi, S. Fink, D. Grove, and D. Lieber. invokeintefface considered harmless. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct. 2001.]]
[4]
M. Arnold, S. Fink, D. Grove, M. Hind, and P. Sweeney. Adaptive optimization in the Jalapefio JVM. In ACId Conference on Object-Oriented Programming ~ystems, Languages, and Applications, Oct. 2000.]]
[5]
D. F. Bacon and P. Sweeney. Fast static analysis of C-I-+ virtual function calls. In ACM Conference on Object.Oriented Programming Systems, Languages, and Applications, pages 324-341, Oct. 1996.]]
[6]
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 Jalapefio dynamic optimizing compiler for Java. In ACM 1999 Java Grande Conference, pages 129-141, June 1999.]]
[7]
C. Chambers, I. Pechtchanski, V. Sarkar, M. J. Serrano, and H. Srinivasan. Dependence analysis for Java. In 12th International Workshop on Languages and Compilers for Parallel Computing, Aug. 1999.]]
[8]
C. Chambers and D. Ungar. Customization: Optimizing compiler technology for Self, a dynamically-typed object-oriented programming language. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 146-160, July 1989. SIGPLAN Notices, 24(7).]]
[9]
C. Chambers, D. Ungar, and E. Lee. An efficient implementation of Self - a dynamically-typed object-oriented language based on prototypes. In Proceedings OOPSLA '89, pages 49-70, Oct. 1989. Published as ACM SIGPLAN Notices, volume 24, number 10.]]
[10]
J.-D. Choi, D. Grove, M. Hind, and V. Sarkar. Efficient and precise modeling of exceptions for the analysis of Java programs. In ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 21-31, Sept. 1999.]]
[11]
J. Dean, D. Grove, and C. Chambers. Optimization of object-oriented programs using static class hierarchy analysis. In 9th European Conference on Object-Oriented Programming, 1995.]]
[12]
G. DeFouw, D. Grove, and C. Chambers. Fast interprocedural class analysis. In 25th Annual ACM SIGACT-SIGPLAN Symposium on the Principles of Programming Languages, pages 222-236, Jan. 1998.]]
[13]
D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, 1999.]]
[14]
J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison Wesley, 1996.]]
[15]
D. Grove, G. DeFouw, J. Dean, and C. Chambers. Call graph construction in object-oriented languages. In A CM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 108-124, Oct. 1997.]]
[16]
U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326-336, June 1994. SIGPLAN Notices, ~9(6).]]
[17]
U. Holzle and D. Ungar. A third generation SELF implementation: Reconciling responsiveness with performance. In A CM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 229-243, 1994.]]
[18]
The Java Hotspot Virtual Machine. White paper available from http://java.sun.com/products/hotspot/, May 2001.]]
[19]
IBM Research. Multi-Dimensional Separation of Concerns: Software Engineering using Hyperspaces. http://www.research.ibm.com/hyperspace/, 2001.]]
[20]
K. Ishizaki, M. Kawahito, T. Yasue, H. Komatsu, and T. Nakatani. A study of devirtualization techniques for a Java Just-In-Time compiler. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct. 2000.]]
[21]
H. Ossher and P. Tart. Multi-dimensional separation of concerns and the hyperspace approach. In Software Architectures and Component Technology: The State of the Art in Research and Practice. Kluwer, 2001. to appear.]]
[22]
N. Oxhoj, J. Palsberg, and M. Schwartzbach. Making type inference practical. In the 6th European Conference on Object-Oriented Programming, July 1992.]]
[23]
J. Plevyak and A. A. Chien. Precise concrete type inference for object oriented languages. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 324-340, Oct. 1994.]]
[24]
V. C. Sreedhar, M. Burke, astd J.-D. Choi. A framework for interprocedural optimization in the presence of dynamic class loading. In SIGPLAN 2000 Conference on Programming Language Design and Implementation, June 2000.]]
[25]
V. Sundaxesan et al. Practical virtual method call resolution for Java. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Nov. 2000.]]
[26]
The Apache XML Project. Xerces Java Parser. http://xml.apache.org/xerces-j/, 2001.]]
[27]
The Jalapeno Team. Jalapeno User's Guide. IBM Research Division, Apr. 2001.]]
[28]
The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. http://www.spec.org/osg/jvm98/, 1998.]]
[29]
F. Tip and J. Palsberg. Scalable propagation-based call graph construction algorithms. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Nov. 2000.]]

Cited By

View all
  • (2011)Subregion analysis and bounds check elimination for high level arraysProceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software10.5555/1987237.1987256(246-265)Online publication date: 26-Mar-2011
  • (2011)Subregion Analysis and Bounds Check Elimination for High Level ArraysCompiler Construction10.1007/978-3-642-19861-8_14(246-265)Online publication date: 2011
  • (2009)Profile-guided static typing for dynamic scripting languagesProceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications10.1145/1640089.1640110(283-300)Online publication date: 26-Oct-2009
  • Show More Cited By

Recommendations

Reviews

Hector A. Villa-Martinez

The authors present a prototype implementation of a new program analysis algorithm in the IBM Jalapeño Java Virtual Machine (JVM). The first two sections of the paper describe different approaches to program analysis techniques. In the next section, the authors combine the best of each technique to get a framework analysis that is dynamic, optimistic, and interprocedural. It is dynamic because analysis is performed at run-time; optimistic because optimistic assumptions about the execution path are made (if these assumptions become invalid later, then a recompilation is done); and interprocedural because it analyzes all methods in the “dynamic whole program.” The fourth section describes a new algorithm for dynamic optimistic interprocedural type (DOIT) analysis as an application of the framework. The algorithm analyzes and verifies methods that are selected by the JVM. The optimization can register verification properties and invalidation actions. The main advantage of DOIT is that it is more efficient than other type analyses because it uses a data structure (called value graph) that usually occupies less space. The next section presents benchmark results of the prototype implementation. The main results are: the optimistic analysis reduces the number of methods analyzed, the compiler with DOIT analysis is faster than the Jalapeño JVM baseline compiler, and the code generated with DOIT analysis is faster than the code generated with the Jalapeño JVM adaptive optimization system. The material is well written and clearly explained. The paper is the last in a series describing the IBM Jalapeño JVM. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 2001
382 pages
ISBN:1581133359
DOI:10.1145/504282
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2001

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA01
Sponsor:

Acceptance Rates

OOPSLA '01 Paper Acceptance Rate 27 of 145 submissions, 19%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 18 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2011)Subregion analysis and bounds check elimination for high level arraysProceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software10.5555/1987237.1987256(246-265)Online publication date: 26-Mar-2011
  • (2011)Subregion Analysis and Bounds Check Elimination for High Level ArraysCompiler Construction10.1007/978-3-642-19861-8_14(246-265)Online publication date: 2011
  • (2009)Profile-guided static typing for dynamic scripting languagesProceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications10.1145/1640089.1640110(283-300)Online publication date: 26-Oct-2009
  • (2009)Profile-guided static typing for dynamic scripting languagesACM SIGPLAN Notices10.1145/1639949.164011044:10(283-300)Online publication date: 25-Oct-2009
  • (2009)Positive supercompilation for a higher order call-by-value languageACM SIGPLAN Notices10.1145/1594834.148091644:1(277-288)Online publication date: 21-Jan-2009
  • (2009)Equality saturationACM SIGPLAN Notices10.1145/1594834.148091544:1(264-276)Online publication date: 21-Jan-2009
  • (2009)The theory of deadlock avoidance via discrete controlACM SIGPLAN Notices10.1145/1594834.148091344:1(252-263)Online publication date: 21-Jan-2009
  • (2009)A combination framework for tracking partition sizesACM SIGPLAN Notices10.1145/1594834.148091244:1(239-251)Online publication date: 21-Jan-2009
  • (2009)Improving static resolution of dynamic class loading in Java using dynamically gathered environment informationAutomated Software Engineering10.1007/s10515-009-0049-916:2(357-381)Online publication date: 1-Jun-2009
  • (2008)Dynamic optimization for efficient strong atomicityACM SIGPLAN Notices10.1145/1449955.144977943:10(181-194)Online publication date: 19-Oct-2008
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media