Instruction merging and specialization in the SICStus Prolog virtual machine

  • Authors:
  • Henrik Nässén;Mats Carlsson;Konstantinos Sagonas

  • Affiliations:
  • Swedish Institute of Computer Science, Uppsala, Sweden;Swedish Institute of Computer Science, Uppsala, Sweden;Uppsala University, Sweden

  • Venue:
  • Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Wanting to improve execution speed and reduce code size of SICStus Prolog programs, we embarked on a project whose aim was to systematically investigate combination and specialization of WAM instructions. Various variants of the SICStus Prolog virtual machine instruction set were designed, implemented, and their performance was evaluated against standard benchmarks and on big Prolog programs. In this paper, we describe our methodology in finding appropriate candicates for instruction merging and specialization, discuss related trade-offs, present detailed statistics and performance measurements that we gathered, and report on our experiences from our involvement in this feat. In short, our experience is positiv e: the speedup of performing instruction merging and specialization in the context of the SICStus emulator is approximately 10%, while the bytecode size reduction is about 15%.