Interpreter Register Autolocalisation: Improving the performance of efficient interpreters
Language interpreters are generally slower than (JIT) compiled implementations because they trade off simplicity for performance and portability. They are nevertheless still important in modern Virtual Machines (VMs): e.g., not all code is hot and arrives to later compilation stages.
We propose to study more in depth the idea of interpreter registers: interpreter variables that are critical to the efficient execution of the interpreter loop. We present an automatic interpreter transformation for bytecode interpreters written in C called autolocalization. Autolocalisation makes interpreter registers local to the interpreter loop with the objective of keeping them in registers and makes those values available for other routines in the VM runtime automatically when required.
We build autolocalisation in Slang, Pharo’s VM generator framework, and evaluate the performance of several benchmarks on different configurations localising IP, SP, FP and their combinations. We show that the C compiler does not make this optimization automatically, and that this transformation yields improvements of up to 1.92x on x86-64. Moreover, we show that the performance of our automatic approach is comparable to the previously approach handwritten in the Pharo VM while making it easier to read, modify and debug.
Short Paper (shortmain.pdf) | 490KiB |
Tue 22 MarDisplayed time zone: Lisbon change
10:30 - 12:00 | |||
10:30 25mTalk | Interpreter Register Autolocalisation: Improving the performance of efficient interpreters MoreVMs Guillermo Polito CNRS; CRIStAL; University of Lille; Centrale Lille; Inria, Pablo Tesone Inria Lille–Nord Europe, France Mines Douai, IA, Univ. Lille, France, Stéphane Ducasse Inria; University of Lille; CNRS; Centrale Lille; CRIStAL, Nahuel Palumbo Université Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL, Soufyane Labsari Université Lille, CNRS, Centrale Lille, Inria, UMR 9189 - CRIStAL File Attached | ||
10:55 25mTalk | Less Is More: Merging AST Nodes To Optimize Interpreters MoreVMs Media Attached File Attached | ||
11:20 25mTalk | Towards Just-in-time and Language-agnostic Mutation Testing MoreVMs Stefan Reschke Hasso Plattner Institute, University of Potsdam, Toni Mattis Hasso Plattner Institute, University of Potsdam, Fabio Niephaus Oracle Labs, Potsdam, Robert Hirschfeld HPI, University of Potsdam File Attached | ||
11:45 15mOther | Discussion MoreVMs C: Rodrigo Bruno INESC-ID / Técnico, ULisboa, C: Michael Engel Norwegian University of Science and Technology (NTNU) |