IBM Skip to main content
  Home     Products & services     Support & downloads     My account  
  Select a country  
Journals Home  
  Systems Journal  
  ·  Current Issue  
  ·  Recent Issues  
  ·  Papers in Progress  
  ·  Search/Index  
  ·  Orders  
  ·  Description  
  ·  Author's Guide  
Journal of Research
and Development
  Staff  
  Contact Us  
Systems Journal  
Volume 39, Number 1, 2000
Java Performance
 Table of contents: arrowHTML arrowPDF arrowASCII   This article: arrowHTML arrowPDF arrowASCII
arrowCopyright info
   

Overview of the IBM Java Just-in-Time Compiler - References

by T. Suganuma, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, H. Komatsu, and T. Nakatani

Cited references and notes

  1. J. Gosling, B. Joy, and G. Steele, The Java Language Specification, Addison-Wesley Publishing Co., Reading, MA (1996).
  2. T. Lindholm and F. Yellin, The Java Virtual Machine Specification, Addison-Wesley Publishing Co., Reading, MA (1996).
  3. A given call site may invoke several different actual methods over the course of program execution, depending on the dynamic type of receiver object.
  4. The concrete example appears in the fourth section in the subsection labeled “Example.”
  5. D. F. Bacon, R. Konuru, C. Murthy, and M. Serrano, “Thin Locks: Featherweight Synchronization for Java,” Proceedings of the ACM SIGPLAN'98 Conference on Programming Language Design and Implementation (1998), pp. 258­268.
  6. M. P. Plezbert and R. K. Cytron, “Does ‘Just in Time’ = ‘Better Late Than Never‘?” Conference Record of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (1997), pp. 120­131.
  7. D. Detlefs and O. Agesen, “Inlining of Virtual Methods,” Proceedings of the 13th European Conference on Object-Oriented Programming, Lecture Notes in Computer Science 1628, Springer-Verlag (1999), pp. 258­278.
  8. R. Gupta, “Optimizing Array Bound Checks Using Flow Analysis,” ACM Letters on Programming Languages and Systems 2, No. 1­4, 135­150 (1993).
  9. KILL is a term used in data flow analysis. If an instruction redefines a variable, it is said to kill the definition, which means the collected information regarding the variable cannot be preserved after the point in the flow analysis.
  10. A. V. Aho, R. Sethi, and J. Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley Publishing Co., Reading, MA (1986).
  11. Please note that index_check (3 < ub) in Figure 4B can be eliminated in Figure 4C as a result of the fact that checking (0 <= i ­ 2) and (i + 1 < ub) at the top results in (3 <= i + 1 < ub).
  12. C. Click, “Global Code Motion, Global Value Numbering,” Proceedings of the ACM SIGPLAN'95 Conference on Programming Language Design and Implementation (1995), pp. 246­257.
  13. S. S. Muchnick, Advanced Compiler Design and Implementation, Morgan-Kaufmann Publishers, San Francisco, CA (1997).
  14. J. Knoop, R. Oliver, and S. Bernhard, “Lazy Code Motion,” Proceedings of the ACM SIGPLAN'92 Conference on Programming Language Design and Implementation (1992), pp. 224­234.
  15. Ninja: Numerically Intensive Java, IBM Corporation, available at /ninja/.
  16. Intel Architecture Software Developer's Manual, Order Number 243191-001, Intel Corporation, Santa Clara, CA (1997).
  17. F. Chow and J. Henessey, “The Priority-Based Coloring Approach to Register Allocation,” ACM Transactions on Programming Languages and Systems 12, No. 4, 501­536 (1990).
  18. T. A. Proebsting, “Optimizing an ANSI C Interpreter with Superoperators,” Conference Record of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (1995), pp. 322­332.
  19. J. Vitek, R. Horspool, and A. Krall, “Efficient Type Inclusion Test,” Proceedings of the ACM Conference on Object Oriented Programming Systems, Languages & Applications, OOPSLA '97 (1997), pp. 142­157.
  20. A.-R. Adl-Tabatabai, M. Cierniak, G.-Y. Lueh, V. M. Parikh, and J. M. Stichnoth, “Fast, Effective Code Generation in a Just-in-Time Java Compiler,” Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation (1998), pp. 280­290.
  21. Intel Architecture Optimization Manual, Order Number 242816-003, Intel Corporation, Santa Clara, CA (1997).
  22. CaffeineMark3 Benchmarks, Pendragon Software Corporation, Libertyville, IL, available at http://www.pendragon-software.com/pendragon/cm3/info.html.
  23. JMark2.0 Benchmarks, Ziff-Davis, Inc., New York, available at http://www.zdnet.com/zdbop/jmark/jmark20/applet/jmdocs/jmarkdoc.htm.
  24. SPECjvm98 Benchmarks, Standard Performance Evaluation Corporation (SPEC), Manassas, VA, available at http://www.spec.org/osg/jvm98.
  25. JDK1.1.7B for Win32, Sun Microsystems, Inc., Palo Alto, CA, binary available at http://java.sun.com/products/jdk/1.1/index.html.
  26. MS SDK for Java 3.2, Microsoft Corporation, Redmond, WA, binary available at http://microsoft.com/java/vm/dl_vm32.htm.
  27. A. Krall and R. Grafl, “CACAO: A 64-bit Java VM Just-in-Time Compiler,” Proceedings of the ACM PPoPP '97 Workshop on Java for Science and Engineering Computation (1997).
  28. JOVE Technical Report, Instantiations Inc., Tualatin, OR, available at http://www.instantiations.com/jove/jovereport.htm.
  29. TowerJ, Tower Technology Corporation, Austin, TX, available at http://www.towerj.com.
  30. High Performance Compiler for Java, now integrated in VisualAge for Java, IBM Corporation, available at http://www.software.ibm.com/ad/vajava/.
  31. Marmot: an Optimizing Compiler for Java, Microsoft Corporation, Redmond, WA, available at http://www.research.microsoft.com/apl.
  32. M. G. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley, “The Jalapeno Dynamic Optimizing Compiler for Java,” Proceedings of the ACM SIGPLAN Java Grande Conference (1999), pp. 129­141.
  33. M. Poletto and V. Sarkar, “Linear Scan Register Allocation,” ACM Transactions on Programming Languages and Systems (1999).
  34. O. Traub, G. Holloway, and M. D. Smith, “Quality and Speed in Linear-Scan Register Allocation,” Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation (1998), pp. 142­151.
  35. J. Bogda and U. Hölzle, Removing Unnecessary Synchronization in Java, Technical Report TRCS99-10, Department of Computer Science, University of California, Santa Barbara, CA (1999).
  36. K. Ishizaki, M. Kawahito, T. Yasue, M. Takeuchi, T. Ogasawara, T. Suganuma, T. Onodera, H. Komatsu, and T. Nakatani, “Design, Implementation, and Evaluation of Optimizations in a Just-in-Time Compiler,” Proceedings of the ACM SIGPLAN Java Grande Conference (1999), pp. 119­128.