|
|
 |
by
T. Suganuma, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, H. Komatsu, and T. Nakatani |
 |
 |
 |
Cited references and notes
-
J. Gosling, B. Joy, and G. Steele, The Java Language Specification, Addison-Wesley Publishing Co., Reading, MA (1996).
-
T. Lindholm and F. Yellin, The Java Virtual Machine Specification, Addison-Wesley Publishing Co., Reading, MA (1996).
-
A given call site may invoke several different actual methods over the course of program execution, depending on the dynamic type of receiver object.
-
The concrete example appears in the fourth section in the subsection labeled Example.
-
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. 258268.
-
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. 120131.
-
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. 258278.
-
R. Gupta, Optimizing Array Bound Checks Using Flow Analysis, ACM Letters on Programming Languages and Systems 2, No. 14, 135150 (1993).
-
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.
-
A. V. Aho, R. Sethi, and J. Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley Publishing Co., Reading, MA (1986).
- 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).
-
C. Click, Global Code Motion, Global Value Numbering, Proceedings of the ACM SIGPLAN'95 Conference on Programming Language Design and Implementation (1995), pp. 246257.
-
S. S. Muchnick, Advanced Compiler Design and Implementation, Morgan-Kaufmann Publishers, San Francisco, CA (1997).
-
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. 224234.
-
Ninja: Numerically Intensive Java, IBM Corporation, available at /ninja/.
-
Intel Architecture Software Developer's Manual, Order Number 243191-001, Intel Corporation, Santa Clara, CA (1997).
-
F. Chow and J. Henessey, The Priority-Based Coloring Approach to Register Allocation, ACM Transactions on Programming Languages and Systems 12, No. 4, 501536 (1990).
-
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. 322332.
-
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. 142157.
-
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. 280290.
-
Intel Architecture Optimization Manual, Order Number 242816-003, Intel Corporation, Santa Clara, CA (1997).
-
CaffeineMark3 Benchmarks, Pendragon Software Corporation, Libertyville, IL, available at http://www.pendragon-software.com/pendragon/cm3/info.html.
-
JMark2.0 Benchmarks, Ziff-Davis, Inc., New York, available at http://www.zdnet.com/zdbop/jmark/jmark20/applet/jmdocs/jmarkdoc.htm.
-
SPECjvm98 Benchmarks, Standard Performance Evaluation Corporation (SPEC), Manassas, VA, available at http://www.spec.org/osg/jvm98.
-
JDK1.1.7B for Win32, Sun Microsystems, Inc., Palo Alto, CA, binary available at http://java.sun.com/products/jdk/1.1/index.html.
-
MS SDK for Java 3.2, Microsoft Corporation, Redmond, WA, binary available at http://microsoft.com/java/vm/dl_vm32.htm.
-
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).
-
JOVE Technical Report, Instantiations Inc., Tualatin, OR, available at http://www.instantiations.com/jove/jovereport.htm.
-
TowerJ, Tower Technology Corporation, Austin, TX, available at http://www.towerj.com.
-
High Performance Compiler for Java, now integrated in VisualAge for Java, IBM Corporation, available at http://www.software.ibm.com/ad/vajava/.
-
Marmot: an Optimizing Compiler for Java, Microsoft Corporation, Redmond, WA, available at http://www.research.microsoft.com/apl.
-
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. 129141.
-
M. Poletto and V. Sarkar, Linear Scan Register Allocation, ACM Transactions on Programming Languages and Systems (1999).
-
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. 142151.
-
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).
-
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. 119128.
|
 |
|
|