Title
Tracing the meta-level: PyPy's tracing JIT compiler
Abstract
We attempt to apply the technique of Tracing JIT Compilers 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 programs 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 unroll the bytecode dispatch loop, based on two kinds of hints provided by the implementer of the bytecode interpreter. We evaluate our technique by applying it to two PyPy interpreters: one is a small example, and the other one is the full Python interpreter.
Year
DOI
Venue
2009
10.1145/1565824.1565827
ICOOOLPS@ECOOP
Field
DocType
Citations 
Software transactional memory,Programming language,Computer science,Parallel computing,Compiler,Interpreter,Tracing just-in-time compilation,Bytecode,Tracing,Python (programming language),Speedup
Conference
115
PageRank 
References 
Authors
5.29
16
4
Search Limit
100115
Name
Order
Citations
PageRank
Carl Friedrich Bolz129218.69
Antonio Cuni222911.58
Maciej Fijalkowski31176.35
Armin Rigo430118.27