Loading...
Please wait, while we are loading the content...
Similar Documents
Efficient On-Stack Replacement for Aggressive Specialization of Java Programs In submission, please do not distribute
| Content Provider | CiteSeerX |
|---|---|
| Author | Soman, Sunil Krintz, Chandra |
| Abstract | On-stack replacement (OSR) is a technique used by dynamic and adaptive compilation systems to enable program specialization. Using OSR, an executing method can be recompiled (de- or re-optimized), and its runtime stack invocation frame dynamically replaced with that of the new version, whenever assumptions made for specialization are invalidated. Despite its potential, OSR is only used to a very limited degree in production Java Virtual Machines (JVMs). Two reasons for this are the limited forms of OSR-based specializations available and the restrictions on compiler optimizations (and hence execution performance) imposed by extant OSR designs. In this paper, we address these limitations by extending an existing JVM OSR implementation so that it is more amenable to optimization. Moreover, our OSR version can be used to implement aggressive specializations that are invalidated by events external to the executing code. We present a novel specialization for write-barrier avoidance for generational garbage collection (GC) using our system that reduces program startup time by 6 % on average. We also evaluate our approach for specialization in a JVM that implements multiple GCs in a single system and dynamically switches between them. Our OSR implementation reduces the overhead of this system by 6 % on average. Finally, we show that our system has the potential to significantly improve performance if used to avoid the checks that guard speculatively inlined virtual method calls. We detail our OSR implementation and its empirical analysis in the open source Jikes Research Virtual Machine (JikesRVM) for Java from IBM Research. 1 |
| File Format | |
| Access Restriction | Open |
| Subject Keyword | Aggressive Specialization Efficient On-stack Replacement Java Program Osr Implementation Single System Runtime Stack Invocation Frame Osr Version Execution Performance Limited Form Adaptive Compilation System Enable Program Specialization Generational Garbage Collection Jvm Osr Implementation Limited Degree Virtual Method Call Multiple Gc Empirical Analysis Osr-based Specialization New Version Extant Osr Design Novel Specialization Compiler Optimization Production Java Virtual Machine On-stack Replacement Ibm Research Program Startup Time |
| Content Type | Text |