- Sponsor:
- sigplan
Welcome to the sixth edition of the Virtual Machine and Intermediate Language (VMIL) workshop! We hope you find the program stimulating and participate in the lively and collegial discussions that are a hallmark of the VMIL workshop. This year's workshop program consists of seven paper presentations and two invited talks. Authors of papers accepted for presentation at VMIL had the option to include the paper in the formal proceedings of the workshop; six of the seven accepted papers are included in these proceedings. The papers covered a range of topics in virtual machine design and optimization.
The VMIL workshop is a forum for research in virtual machines and intermediate languages. It is dedicated to identifying programming mechanisms and constructs that are currently realized as code transformations or implemented in libraries but should rather be supported at the VM level. Candidates for such mechanisms and constructs include modularity mechanisms, concurrency mechanisms, etc. Topics of interest include the investigation of which such mechanisms are worthwhile candidates for integration with the run-time environment, how said mechanisms can be elegantly (and reusably) expressed at the intermediate language level (e.g., in bytecode), how their implementations can be optimized, and how virtual machine architectures might be shaped to facilitate such implementation efforts. We especially welcome transformative ideas for virtual machines, including efficient support for game-changing IL mechanisms.
Proceeding Downloads
A trace-based Java JIT compiler for large-scale applications
Trace-based compilation uses dynamically-identified frequently-executed code sequences (traces) as units for compilation. We explore trace-based compilation in Java to see if a trace-based JIT compiler (trace-JIT) can address a limitation of method-...
The efficient handling of guards in the design of RPython's tracing JIT
Tracing just-in-time (JIT) compilers record linear control flow paths, inserting operations called guards at points of possible divergence. These operations occur frequently in generated traces and therefore it is important to design and implement them ...
S-RVM: a secure design for a high-performance java virtual machine
Reference protection mechanisms, which control the propagation of references, are commonly used to isolate and to provide protection for components that execute within a shared runtime. These mechanisms often incur an overhead for maintaining the ...
Bypassing portability pitfalls of high-level low-level programming
Program portability is an important software engineering consideration. However, when high-level languages are extended to effectively implement system projects for software engineering gain and safety, portability is compromised--high-level code for ...
The JVM is not observable enough (and what to do about it)
Bytecode instrumentation is a preferred technique for building profiling, debugging and monitoring tools targeting the Java Virtual Machine (JVM), yet is fundamentally dangerous. We illustrate its dangers with several examples gathered while building ...
Some new approaches to partial inlining
This paper proposes two novel techniques for partial inlining. Context-driven partial inlining uses information available to the compiler at a call site to prune the callee prior to assessing whether the (pruned) body of the callee should be inlined. ...
Compilation queuing and graph caching for dynamic compilers
Modern virtual machines for Java use a dynamic compiler to optimize the program at run time. The compilation time therefore impacts the performance of the application in two ways: First, the compilation and the program's execution compete for CPU ...
Recommendations
Acceptance Rates
Year | Submitted | Accepted | Rate |
---|---|---|---|
VMIL '13 | 4 | 4 | 100% |
Overall | 4 | 4 | 100% |