Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Synchronization transformations for parallel computing
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Escape analysis for object-oriented languages: application to Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Removing unnecessary synchronization in Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An efficient meta-lock for implementing ubiquitous synchronization
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A study of locking objects with bimodal fields
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Effective synchronization removal for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
A study of devirtualization techniques for a Java Just-In-Time compiler
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Java Language Specification
The Java Language Specification
Lock reservation: Java locks can mostly do without atomic operations
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Experiences with Multi-threading and Dynamic Class Loading in a Java Just-In-Time Compiler
Proceedings of the International Symposium on Code Generation and Optimization
Proceedings of the 33rd annual international symposium on Computer Architecture
Removing redundancy via exception check motion
Proceedings of the 6th annual IEEE/ACM international symposium on Code generation and optimization
Exploitation of multicore systems in a java virtual machine
IBM Journal of Research and Development
Parallelization of multimedia applications on the multi-level computing architecture
Journal of Embedded Computing
Hi-index | 0.00 |
We describe an automatic technique to remove repetitivesynchronization in Java programs by removing selectedMONITORENTER/EXIT operations. Once these operations are removed,parts of a method that were not originally locked become protectedby a lock. If it is unsafe to synchronize the code between theoriginal locked regions, however, the code is not transformed.Scalability is also protected by not allowing a lock to be held fora significantly longer time than it would be held in the originalprogram code. Our base algorithm improved the throughput of theindustry-standard SPECjbb2000 benchmark by 2% to 5% for threedifferent platforms. We also describe an extension to our algorithmto better handle virtual calls, which are prevalent in Java code,and this extension provides up to a further 5% improvement. Ourcomputationally efficient algorithm was implemented and evaluatedin a production Just-In-Time (JIT) compiler.