Advanced compiler design and implementation
Advanced compiler design and implementation
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Automatic loop transformations and parallelization for Java
Proceedings of the 14th international conference on Supercomputing
ABCD: eliminating array bounds checks on demand
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
A comparative study of static and profile-based heuristics for inlining
DYNAMO '00 Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Java Virtual Machine Specification
Java Virtual Machine Specification
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Design of Multilingual Retargetable Compilers: Experience of the XDS Framework Evolution
JMLC '00 Proceedings of the Joint Modular Languages Conference on Modular Programming Languages
Decompilation of Control Structures by Means of Graph Transformations
CAAP '85 Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT), Volume 1: Colloquium on Trees in Algebra and Programming: Mathematical Foundations of Software Development
CC '96 Proceedings of the 6th International Conference on Compiler Construction
A Framework for Optimizing Java Using Attributes
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Compiler-Cooperative Memory Management in Java
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
Overview of excelsior JET, a high performance alternative to java virtual machines
WOSP '02 Proceedings of the 3rd international workshop on Software and performance
Evolution of a java just-in-time compiler for IA-32 platforms
IBM Journal of Research and Development
A region-based compilation technique for dynamic compilers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Array bounds check elimination for the Java HotSpot™ client compiler
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Array bounds check elimination in the context of deoptimization
Science of Computer Programming
Hi-index | 0.00 |
Run-time exception checking is required by the Java Language Specification (JLS). Though providing higher software reliability, that mechanism negatively affects performance of Java programs, especially those computationally intensive. This paper pursues loop versioning, a simple program transformation which often helps to avoid the checking overhead. Basing upon the Java Memory Model precisely defined in JLS, the work proposes a set of sufficient conditions for applicability of loop versioning. Scalable intra- and interprocedural analyses that efficiently check fulfilment of the conditions are also described. Implemented in Excelsior JET, an ahead-of-time compiler for Java, the developed technique results in significant performance improvements on some computational benchmarks.