Fast profile-based partial redundancy elimination

  • Authors:
  • R. Nigel Horspool;David J. Pereira;Bernhard Scholz

  • Affiliations:
  • Department of Computer Science, University of Victoria, Victoria, Canada;Department of Computer Science, University of Victoria, Victoria, Canada;School of Information Technologies, University of Sydney, Sydney, Australia

  • Venue:
  • JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Partial Redundancy Elimination (PRE) is a standard program optimization which removes redundant computations via Code Motion. It subsumes and generalizes the optimizations of Global Common Subexpression Elimination (GCSE) and Loop Invariant Code Motion (LICM). Recent work has generalized PRE to become Speculative PRE (SPRE), which uses estimates of execution frequencies to find the optimal places in a program to perform computations. However, the analysis performed by the compiler is computationally intensive and hence impractical for just-in-time (JIT) compilers. This paper introduces a novel approach which abandons a guarantee of optimality in favour of simplicity and speed of analysis. This new approach, called Isothermal SPRE, achieves results which are close to optimal in practice, yet its analysis time is at least as good as current compiler techniques for code motion. It is a technique suitable for use in JIT compilers.