A bytecode set for adaptive optimizations
Document type :
Communication dans un congrès avec actes
Title :
A bytecode set for adaptive optimizations
Author(s) :
Béra, Clément [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Miranda, Eliot [Auteur]
Cadence Design Systems [CDS]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Miranda, Eliot [Auteur]
Cadence Design Systems [CDS]
Conference title :
International Workshop on Smalltalk Technologies
City :
Cambridge
Country :
Royaume-Uni
Start date of the conference :
2014
English keyword(s) :
virtual machine
bytecode
pharo
smalltalk
bytecode
pharo
smalltalk
HAL domain(s) :
Informatique [cs]/Langage de programmation [cs.PL]
English abstract : [en]
The Cog virtual machine features a bytecode interpreter and a baseline Just-in-time compiler. To reach the performance level of industrial quality virtual machines such as Java HotSpot, it needs to employ an adaptive ...
Show more >The Cog virtual machine features a bytecode interpreter and a baseline Just-in-time compiler. To reach the performance level of industrial quality virtual machines such as Java HotSpot, it needs to employ an adaptive inlining com-piler, a tool that on the fly aggressively optimizes frequently executed portions of code. We decided to implement such a tool as a bytecode to bytecode optimizer, implemented above the virtual machine, where it can be written and developed in Smalltalk. The optimizer we plan needs to extend the operations encoded in the bytecode set and its quality heavily depends on the bytecode set quality. The current bytecode set understood by the virtual machine is old and lacks any room to add new operations. We decided to implement a new bytecode set, which includes additional bytecodes that allow the Just-in-time compiler to generate less generic, and hence simpler and faster code sequences for frequently executed primitives. The new bytecode set includes traps for validating speculative inlining de-cisions and is extensible without compromising optimization opportunities. In addition, we took advantage of this work to solve limitations of the current bytecode set such as the maximum number of instance variable per class, or number of literals per method. In this paper we describe this new byte-code set. We plan to have it in production in the Cog virtual machine and its Pharo, Squeak and Newspeak clients in the coming year.Show less >
Show more >The Cog virtual machine features a bytecode interpreter and a baseline Just-in-time compiler. To reach the performance level of industrial quality virtual machines such as Java HotSpot, it needs to employ an adaptive inlining com-piler, a tool that on the fly aggressively optimizes frequently executed portions of code. We decided to implement such a tool as a bytecode to bytecode optimizer, implemented above the virtual machine, where it can be written and developed in Smalltalk. The optimizer we plan needs to extend the operations encoded in the bytecode set and its quality heavily depends on the bytecode set quality. The current bytecode set understood by the virtual machine is old and lacks any room to add new operations. We decided to implement a new bytecode set, which includes additional bytecodes that allow the Just-in-time compiler to generate less generic, and hence simpler and faster code sequences for frequently executed primitives. The new bytecode set includes traps for validating speculative inlining de-cisions and is extensible without compromising optimization opportunities. In addition, we took advantage of this work to solve limitations of the current bytecode set such as the maximum number of instance variable per class, or number of literals per method. In this paper we describe this new byte-code set. We plan to have it in production in the Cog virtual machine and its Pharo, Squeak and Newspeak clients in the coming year.Show less >
Language :
Anglais
Peer reviewed article :
Oui
Audience :
Internationale
Popular science :
Non
Collections :
Source :
Files
- https://hal.inria.fr/hal-01088801/document
- Open access
- Access the document
- https://hal.inria.fr/hal-01088801/document
- Open access
- Access the document
- document
- Open access
- Access the document
- iwst2014_A%20bytecode%20set%20for%20adaptive%20optimizations.pdf
- Open access
- Access the document
- document
- Open access
- Access the document
- iwst2014_A%20bytecode%20set%20for%20adaptive%20optimizations.pdf
- Open access
- Access the document