We attempt to apply the technique of Tracing JIT Com-pilers in the context of the PyPy project, i.e., to programs that are interpreters for some dynamic languages, including Python. Tracing JIT compilers can greatly speed up pro-grams that spend most of their time in loops in which they take similar code paths. However, applying an unmodified tracing JIT to a program that is itself a bytecode interpreter results in very limited or no speedup. In this paper we show how to guide tracing JIT compilers to greatly improve the speed of bytecode interpreters. One crucial point is to un-roll the bytecode dispatch loop, based on two hints provided by the implementer of the bytecode interpreter. We evalu-ate our technique by applying it to two PyPy i...
Tracing just-in-time compilation is a popular compilation schema for the efficient implementation of...
Tracing and partial evaluation have been proposed as meta-compilation techniques for interpreters. T...
International audienceLanguage interpreters are generally slower than (JIT) compiled implementations...
We present Pycket, a high-performance tracing JIT compiler for Racket. Pycket supports a wide variet...
Trace-based JIT compilers identify frequently executed pro-gram paths at run-time and subsequently r...
Trace-based JIT compilers identify frequently executed program paths at run-time and subsequently re...
An overview of the ideas behind PyPy, its current status, future plans and why you should care about...
This artifact accompanies our paper AST vs. Bytecode: Interpreters in the Age of Meta-Compilation to...
Abstract. In this paper, we compose six different Python and Prolog VMs into 4 pairwise compositions...
JIT compilers produce fast code, whereas interpreters are easy to port between architectures. We pro...
For domain specific languages, “scripting languages”, dynamic languages, and for virtual machine-bas...
Tracing and partial evaluation have been proposed as meta-compilation techniques for interpreters to...
The implementation of new programming languages benefits from interpretation because it is simple, ...
Tracing just-in-time compilation is a popular compilation technique for the efficient implementation...
Dynamic programming languages continue to increase in popularity. While just-in-time (JIT) compilati...
Tracing just-in-time compilation is a popular compilation schema for the efficient implementation of...
Tracing and partial evaluation have been proposed as meta-compilation techniques for interpreters. T...
International audienceLanguage interpreters are generally slower than (JIT) compiled implementations...
We present Pycket, a high-performance tracing JIT compiler for Racket. Pycket supports a wide variet...
Trace-based JIT compilers identify frequently executed pro-gram paths at run-time and subsequently r...
Trace-based JIT compilers identify frequently executed program paths at run-time and subsequently re...
An overview of the ideas behind PyPy, its current status, future plans and why you should care about...
This artifact accompanies our paper AST vs. Bytecode: Interpreters in the Age of Meta-Compilation to...
Abstract. In this paper, we compose six different Python and Prolog VMs into 4 pairwise compositions...
JIT compilers produce fast code, whereas interpreters are easy to port between architectures. We pro...
For domain specific languages, “scripting languages”, dynamic languages, and for virtual machine-bas...
Tracing and partial evaluation have been proposed as meta-compilation techniques for interpreters to...
The implementation of new programming languages benefits from interpretation because it is simple, ...
Tracing just-in-time compilation is a popular compilation technique for the efficient implementation...
Dynamic programming languages continue to increase in popularity. While just-in-time (JIT) compilati...
Tracing just-in-time compilation is a popular compilation schema for the efficient implementation of...
Tracing and partial evaluation have been proposed as meta-compilation techniques for interpreters. T...
International audienceLanguage interpreters are generally slower than (JIT) compiled implementations...