Compiling Smalltalk-80 to a RISC

  • Authors:
  • William R. Bush;A. Dain Samples;David Ungar;Paul N. Hilfinger

  • Affiliations:
  • Univ. of California, Berkeley;Univ. of California, Berkeley;Stanford Univ., Stanford, CA;Univ. of California, Berkeley

  • Venue:
  • ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
  • Year:
  • 1987

Quantified Score

Hi-index 0.01

Visualization

Abstract

The Smalltalk On A RISC project at U. C. Berkeley proves that a high-level object-oriented language can attain high performance on a modified reduced instruction set architecture. The single most important optimization is the removal of a layer of interpretation, compiling the bytecoded virtual machine instructions into low-level, register-based, hardware instructions. This paper describes the compiler and how it was affected by SOAR architectural features. The compiler generates code of reasonable density and speed. Because of Smalltalk-80's semantics, relatively few optimizations are possible, but hardware and software mechanisms at runtime offset these limitations. Register allocation for an architecture with register windows comprises the major task of the compiler. Performance analysis suggests that SOAR is not simple enough; several hardware features could be efficiently replaced by instruction sequences constructed by the compiler.