Interpretation and instruction path coprocessing
Interpretation and instruction path coprocessing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Stack caching for interpreters
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Optimizing direct threaded code by selective inlining
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Communications of the ACM
Bytecode fetch optimization for a Java interpreter
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Optimising Bytecode Emulation for Prolog
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Vmgen: a generator of efficient virtual machine interpreters
Software—Practice & Experience
Optimizing indirect branch prediction accuracy in virtual machine interpreters
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
The case for virtual register machines
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Code sharing among states for stack-caching interpreter
Proceedings of the 2004 workshop on Interpreters, virtual machines and emulators
Retargeting JIT Compilers by using C-Compiler Generated Executable Code
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
High performance annotation-aware JVM for Java cards
Proceedings of the 5th ACM international conference on Embedded software
Fast and flexible instruction selection with on-demand tree-parsing automata
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Virtual-Machine Abstraction and Optimization Techniques
Electronic Notes in Theoretical Computer Science (ENTCS)
Efficient interpretation using quickening
Proceedings of the 6th symposium on Dynamic languages
Optimizing aspect-oriented mechanisms for embedded applications
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Vectorization technology to improve interpreter performance
ACM Transactions on Architecture and Code Optimization (TACO) - Special Issue on High-Performance Embedded Architectures and Compilers
Efficient interpreter optimizations for the JVM
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Efficient hosted interpreters on the JVM
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
Dynamic superinstructions eliminate most of the interpreter dispatch overhead. This results in a higher proportion of interpreter time spent in stack accesses (on a stack-based virtual machine). Stack caching reduces the stack access overhead. Each of these optimizations provides more speedup, if the other one is applied, too. Combining these optimizations also opens additional opportunities: we can insert stack state transitions without dispatch cost; this reduces the number of necessary VM instruction instances significantly. A shortest-path search can find the optimal sequence of state transitions and VM instructions. In this paper we describe an implementation of static stack caching employing these ideas. We also represent empirical results for our implementation, resulting in a speedup of up to 58% over a version that keeps one value in registers all the time.