An efficient static single assignment interpreter with translation

Date

2008

Authors

Cramer, Adam Lee

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Although optimizing compilers often utilize Static Single Assignment Form (SSA) in their intermediate representations, most high-performance interpreters implement stack-oriented languages. While previous work had shown that interpreting SSA Form is feasible, the implementation reported previously did not support recursive function calls and was slower than commercial interpreters for the stack-oriented Java bytecode language. It remained an open question as to whether an SSA interpreter supporting recursive function calls could be made as efficient as a high-performance stack-oriented interpreter. This paper describes a high-performance interpreter for a variant of Static Single Assignment Form, known as Interpretable Static Single Assignment Form (ISSA).

Through the use of well-engineered data structures and other optimizations, this interpreter is able to achieve performance comparable to that of well-engineered stack oriented Java Virtual Machine interpreters.

This paper describes how to engineer an SSA interpreter to support for recursive function calls and indicates how standard SSA may be translated into ISSA for use in the interpreter, including the addition of ISSA-specific instructions and constructs. Finally, it reports on the performance of several implementation variants of computationally intensive benchmarks.

Description

This item is available only to currently enrolled UTSA students, faculty or staff. To download, navigate to Log In in the top right-hand corner of this screen, then select Log in with my UTSA ID.

Keywords

Compilers, Interpreters, SSA Form

Citation

Department

Computer Science