Redundant Call Elimination via Tupling

  • Authors:
  • Wei-Ngan Chin;Siau-Cheng Khoo;Neil Jones

  • Affiliations:
  • Department of Computer Science, National University of Singapore, Singapore. E-mail: {chinwn,khoosc}@comp.nus.edu.sg;Department of Computer Science, National University of Singapore, Singapore. E-mail: {chinwn,khoosc}@comp.nus.edu.sg;DIKU (Compute Science Department), University of Copenhagen, Denmark. E-mail: neil@diku.dk

  • Venue:
  • Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Redundant call elimination has been an important program optimisation process as it can produce super-linear speedup in optimised programs. In this paper, we investigate use of the tupling transformation in achieving this optimisation over a first-order functional language. Standard tupling technique, as described in [6], works excellently in a restricted variant of the language; namely, functions with single recursion argument. We provide a semantic understanding of call redundancy, upon which we construct an analysis for handling the tupling of functions with multiple recursion arguments. The analysis provides a means to ensure termination of the tupling transformation. As the analysis is of polynomial complexity, it makes the tupling suitable as a step in compiler optimisation.