@gron

Stack Caching for Interpreters

. Proceedings of the ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation, page 315--327. ACM, (1995)
DOI: 10.1145/207110.207165

Abstract

An interpreter can spend a significant part of its execution time on accessing arguments of virtual machine instructions. This paper explores two methods to reduce this overhead for virtual stack machines by caching top-of-stack values in (real machine) registers. The dynamic method is based on having, for every possible state of the cache, one specialized version of the whole interpreter; the execution of an instruction usually changes the state of the cache and the next instruction is executed in the version corresponding to the new state. In the static method a state machine that keeps track of the cache state is added to the compiler. Common instructions exist in specialized versions for several states, but it is not necessary to have a version of every instruction for every cache state. Stack manipulation instructions are optimized away.

Description

Stack caching for interpreters

Links and resources

Tags

community

  • @gron
  • @dblp
@gron's tags highlighted