Interpretizer: A Compiler-Independent Conversion of Switch-Based Dispatch into Threaded Code
Y. Klimiankou. Software Technology: Methods and Tools, Seite 59--72. Cham, Springer, (2019)
Zusammenfassung
Performance of program bytecode interpretation depends significantly from instruction dispatch technique implemented in the virtual machine. Threaded code is a well-known approach of instruction dispatch implementation of efficient interpreters. However, the plurality of current high-level programming languages and popular compilers are limited in support of threaded code and enforce designers of interpreters to either stick to GCC compiler which supports ``Labels as Values'' custom C extension or to resort to the implementation of a dispatch loop in assembler. In this work, we present the Interpretizer, a standalone tool which can be integrated into arbitrary interpreter build toolchain readily and transparently and which effectively converts switch-based dispatch loops into efficient threaded code. Therefore, Interpretizer reverts to the virtual machine designers flexibility of choice of programming language and compiler while it preserves the efficiency of the produced interpreter.
Beschreibung
Interpretizer: A Compiler-Independent Conversion of Switch-Based Dispatch into Threaded Code | SpringerLink
%0 Conference Paper
%1 Klimiankou:2019
%A Klimiankou, Yauhen
%B Software Technology: Methods and Tools
%C Cham
%D 2019
%E Mazzara, Manuel
%E Bruel, Jean-Michel
%E Meyer, Bertrand
%E Petrenko, Alexander
%I Springer
%K Binary Bytecode Dispatch Interpreter Optimization Rewriting VM
%P 59--72
%T Interpretizer: A Compiler-Independent Conversion of Switch-Based Dispatch into Threaded Code
%X Performance of program bytecode interpretation depends significantly from instruction dispatch technique implemented in the virtual machine. Threaded code is a well-known approach of instruction dispatch implementation of efficient interpreters. However, the plurality of current high-level programming languages and popular compilers are limited in support of threaded code and enforce designers of interpreters to either stick to GCC compiler which supports ``Labels as Values'' custom C extension or to resort to the implementation of a dispatch loop in assembler. In this work, we present the Interpretizer, a standalone tool which can be integrated into arbitrary interpreter build toolchain readily and transparently and which effectively converts switch-based dispatch loops into efficient threaded code. Therefore, Interpretizer reverts to the virtual machine designers flexibility of choice of programming language and compiler while it preserves the efficiency of the produced interpreter.
%@ 978-3-030-29852-4
@inproceedings{Klimiankou:2019,
abstract = {Performance of program bytecode interpretation depends significantly from instruction dispatch technique implemented in the virtual machine. Threaded code is a well-known approach of instruction dispatch implementation of efficient interpreters. However, the plurality of current high-level programming languages and popular compilers are limited in support of threaded code and enforce designers of interpreters to either stick to GCC compiler which supports ``Labels as Values'' custom C extension or to resort to the implementation of a dispatch loop in assembler. In this work, we present the Interpretizer, a standalone tool which can be integrated into arbitrary interpreter build toolchain readily and transparently and which effectively converts switch-based dispatch loops into efficient threaded code. Therefore, Interpretizer reverts to the virtual machine designers flexibility of choice of programming language and compiler while it preserves the efficiency of the produced interpreter.},
added-at = {2020-05-08T14:22:21.000+0200},
address = {Cham},
author = {Klimiankou, Yauhen},
biburl = {https://www.bibsonomy.org/bibtex/29599a1d3b5ea0bedde8b65283696d001/gron},
booktitle = {Software Technology: Methods and Tools},
description = {Interpretizer: A Compiler-Independent Conversion of Switch-Based Dispatch into Threaded Code | SpringerLink},
editor = {Mazzara, Manuel and Bruel, Jean-Michel and Meyer, Bertrand and Petrenko, Alexander},
interhash = {edc92405ce570196196fc49a751cc40d},
intrahash = {9599a1d3b5ea0bedde8b65283696d001},
isbn = {978-3-030-29852-4},
keywords = {Binary Bytecode Dispatch Interpreter Optimization Rewriting VM},
pages = {59--72},
publisher = {Springer},
timestamp = {2020-05-08T14:22:21.000+0200},
title = {Interpretizer: A Compiler-Independent Conversion of Switch-Based Dispatch into Threaded Code},
year = 2019
}