Filters








24 Hits in 6.1 sec

Adaptive inlining and on-stack replacement in the CACAO virtual machine

Edwin Steiner, Andreas Krall, Christian Thalinger
2007 Proceedings of the 5th international symposium on Principles and practice of programming in Java - PPPJ '07  
This work presents an implementation of method inlining in the CACAO virtual machine.  ...  On-stack replacement is used for installing optimized code and for deoptimizing code when optimistic assumptions of the optimizer are broken by dynamic class loading.  ...  A framework for adaptive optimization has been implemented in the CACAO virtual machine using sophisticated on-stack replacement of active methods.  ... 
doi:10.1145/1294325.1294356 dblp:conf/pppj/SteinerKT07 fatcat:coknlsoganhsxmqxk4f2pd24jq

Stack allocation of objects in the CACAO virtual machine

Peter Molnar, Andreas Krall, Florian Brandner
2009 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java - PPPJ '09  
We have implemented a lightweight and fast escape analysis within the CACAO Java Virtual Machine to enable stack allocation.  ...  Stack allocation of objects reduces the cost of object allocation and garbage collection and can thus lead to large reductions in runtime.  ...  The algorithm presented in this work is based on an algorithm by Kotzmann [9, 10, 11] . CACAO [12] is an open source Java virtual machine.  ... 
doi:10.1145/1596655.1596680 dblp:conf/pppj/MolnarKB09 fatcat:gxnypimkpvg47mdbsr6zuursli

Efficient Register Mapping and Allocation in LaTTe, an Open-Source Java Just-in-Time Compiler

Byung-sun Yang, Junpyo Lee, Seungil Lee, Seongbae Park, Yoo C. Chung, Suhyun Kim, Kemal Ebcioglu, Erik Altman, Soo-mook Moon
2007 IEEE Transactions on Parallel and Distributed Systems  
Java just-in-time (JIT) compilers improve the performance of a Java virtual machine (JVM) by translating Java bytecode into native machine code on demand.  ...  One important problem in Java JIT compilation is how to map stack entries and local variables to registers efficiently and quickly, since register-based computations are much faster than memory-based ones  ...  A summary follows in Section 8. JAVA VIRTUAL MACHINE AND SPARC The Java VM is a typed stack machine [3] .  ... 
doi:10.1109/tpds.2007.253281 fatcat:pborflg7czbvph7lm2ndrphjki

Techniques for obtaining high performance in Java programs

Iffat H. Kazi, Howard H. Chen, Berdenia Stanley, David J. Lilja
2000 ACM Computing Surveys  
A Java interpreter dynamically executes Java bytecodes, which comprise the instruction set of the Java Virtual Machine (JVM).  ...  In this survey, we discuss the basic features, and the advantages and disadvantages, of the various Java execution techniques.  ...  ACKNOWLEDGMENTS We thank Amit Verma and Shakti Davis for their help in gathering some of the information used in this paper.  ... 
doi:10.1145/367701.367714 fatcat:76fvbgkvnffodgpip2lhajvz4m

A study of exception handling and its dynamic optimization in Java

Takeshi Ogasawara, Hideaki Komatsu, Toshio Nakatani
2001 Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications - OOPSLA '01  
Exception path inlining compiles the catching method in a hot exception path, inlining the rest of methods in the path.  ...  Throw elimination replaces a throw with the explicit control flow to the corresponding catch.  ...  In devirtualization with tests [11, 31, 6] , the compiler generates the code that guards the inlined code and then inlines each virtual method.  ... 
doi:10.1145/504282.504289 dblp:conf/oopsla/OgasawaraKN01 fatcat:tst7xpiwxzckxlhyke62y5lmom

A study of exception handling and its dynamic optimization in Java

Takeshi Ogasawara, Hideaki Komatsu, Toshio Nakatani
2001 SIGPLAN notices  
Exception path inlining compiles the catching method in a hot exception path, inlining the rest of methods in the path.  ...  Throw elimination replaces a throw with the explicit control flow to the corresponding catch.  ...  In devirtualization with tests [11, 31, 6] , the compiler generates the code that guards the inlined code and then inlines each virtual method.  ... 
doi:10.1145/504311.504289 fatcat:7po2x65jhjbolerweylhd4olc4

Designing highly flexible virtual machines: the JnJVM experience

Gaël Thomas, Nicolas Geoffray, Charles Clément, Bertil Folliot
2008 Software, Practice & Experience  
The core of our system is the Micro Virtual Machine (MVM † ) associated with a just in time compiler (JIT). The MVM is extended on the fly by adding new code or replacing its code dynamically.  ...  Machine (JVM) which extends the Micro Virtual Machine.  ...  We wish also to thank the anonymous reviewers of SPE for all their comments and suggestions to improve the quality of the paper.  ... 
doi:10.1002/spe.887 fatcat:uykjtjfjrnfetb3pdfcs4cppli

Workload characterization of JVM languages

Aibek Sarimbekov, Lukas Stadler, Lubomír Bulej, Andreas Sewe, Andrej Podzimek, Yudi Zheng, Walter Binder
2015 Software, Practice & Experience  
Being developed with a single language in mind, namely Java, the Java Virtual Machine (JVM) nowadays is targeted by numerous programming languages.  ...  We present the decision tree of the HotSpot JVM's JIT compiler and analyze how well the JVM performs in inlining the workloads written in different JVM languages.  ...  In Proceedings of the 7th Workshop on Virtual Machines and Intermediate Languages (VMIL), pp. 11-20. Indianapolis, Indiana, 2013.  ... 
doi:10.1002/spe.2337 fatcat:rbkxuaizvrfwpjwxz4og3gqmly

An annotation-aware Java virtual machine implementation

Ana Azevedo, Alex Nicolau, Joe Hummel
2000 Concurrency Practice and Experience  
The stack model, with no operand registers and limiting access to the top of the stack, prevents the reuse of values and bytecode reordering.  ...  During the translation process, an annotation-aware Java Virtual Machine (JVM) system then uses this information to produce high performance native code without performing much of the necessary analyses  ...  The athrow bytecode is annotated with a virtual register representing the reference to the object being thrown. We m a p t h e throw keyword into a Java IR method call.  ... 
doi:10.1002/1096-9128(200005)12:6<423::aid-cpe483>3.0.co;2-l fatcat:no6g5qhryrgczgoqlxxqur2nfa

Trace Register Allocation Policies

Josef Eisl, Stefan Marr, Thomas Würthinger, Hanspeter Mössenböck
2017 Proceedings of the 14th International Conference on Managed Languages and Runtimes - ManLang 2017  
To demonstrate the exibility of the framework, we select 8 allocation policies and show their impact on compile time and peak performance.  ...  This provides us with ne-grained control over the trade-o between compile time and peak performance in a just-in-time compiler.  ...  ACKNOWLEDGMENTS We thank the Graal community, the Virtual Machine Research Group at Oracle Labs and the Institute for System Software at the Johannes Kepler University Linz for their support and feedback  ... 
doi:10.1145/3132190.3132209 dblp:conf/pppj/EislMWM17 fatcat:qmqleneeljedxfsz72auwhjoi4

Swift

Yuan Zhang, Min Yang, Bo Zhou, Zhemin Yang, Weihua Zhang, Binyu Zang
2012 Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments - VEE '12  
However, the overhead of compiling stack-based Java bytecode to heterogeneous registerbased machine code is significant in embedded devices.  ...  This paper presents a fast and effective JIT technique for mobile devices, building on a register-based Java bytecode format which is more similar to the underlying machine architecture.  ...  Acknowledgments We would like to thank the anonymous reviewers for their helpful comments and feedback.  ... 
doi:10.1145/2151024.2151035 dblp:conf/vee/ZhangYZYZZ12 fatcat:x6mggmfs35fc5a7rdyvbkwdx3q

Swift

Yuan Zhang, Min Yang, Bo Zhou, Zhemin Yang, Weihua Zhang, Binyu Zang
2012 SIGPLAN notices  
However, the overhead of compiling stack-based Java bytecode to heterogeneous registerbased machine code is significant in embedded devices.  ...  This paper presents a fast and effective JIT technique for mobile devices, building on a register-based Java bytecode format which is more similar to the underlying machine architecture.  ...  Acknowledgments We would like to thank the anonymous reviewers for their helpful comments and feedback.  ... 
doi:10.1145/2365864.2151035 fatcat:apn2rmytzngklj4uaf3ppsomca

Trace register allocation

Josef Eisl
2015 Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity - SPLASH Companion 2015  
We implemented our approach in GraalVM, a production-quality Java Virtual Machine developed by Oracle.  ...  Although we might never agree on the usage of the terms variable, value and temporary, I learned a lot, especially about the importance of presenting complex topics in a simple and approachable way.  ...  Register Allocation in Virtual Machines Many of the register allocation approaches we already described, were developed for-or evaluated on-virtual machines.  ... 
doi:10.1145/2814189.2814199 dblp:conf/oopsla/Eisl15 fatcat:nmkxq2jezfbfbpkz2kknx7rzl4

Lock reservation

Kiyokuni Kawachiya, Akira Koseki, Tamiya Onodera
2002 SIGPLAN notices  
Although the overhead has been significantly reduced in the recent virtual machines, one or more atomic operations are required for acquiring and releasing an object's lock even in the fastest cases.  ...  Otherwise, it cancels the reservation and falls back to a conventional locking algorithm. We have evaluated an implementation of lock reservation in IBM's production virtual machine and compiler.  ...  We have evaluated an implementation of lock reservation in IBM's production virtual machine and compiler.  ... 
doi:10.1145/583854.582433 fatcat:m332qdwfhjhxhdjlzlyslomjye

Lock reservation

Kiyokuni Kawachiya, Akira Koseki, Tamiya Onodera
2002 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications - OOPSLA '02  
Although the overhead has been significantly reduced in the recent virtual machines, one or more atomic operations are required for acquiring and releasing an object's lock even in the fastest cases.  ...  Otherwise, it cancels the reservation and falls back to a conventional locking algorithm. We have evaluated an implementation of lock reservation in IBM's production virtual machine and compiler.  ...  We have evaluated an implementation of lock reservation in IBM's production virtual machine and compiler.  ... 
doi:10.1145/582419.582433 dblp:conf/oopsla/KawachiyaKO02 fatcat:fza5f6hkrvbapguuufjlfeejaa
« Previous Showing results 1 — 15 out of 24 results