Exploring the structure of the space of compilation sequences using randomized search algorithms

  • Authors:
  • Keith D. Cooper;Alexander Grosul;Timothy J. Harvey;Steve Reeves;Devika Subramanian;Linda Torczon;Todd Waterman

  • Affiliations:
  • Rice University, Houston, USA;Rice University, Houston, USA;Rice University, Houston, USA;Rice University, Houston, USA;Rice University, Houston, USA;Rice University, Houston, USA;Rice University, Houston, USA

  • Venue:
  • The Journal of Supercomputing
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modern optimizing compilers apply a fixed sequence of optimizations, which we call a compilation sequence, to each program that they compile. These compilers let the user modify their behavior in a small number of specified ways, using command-line flags (e.g.,-O1,-O2,...). For five years, we have been working with compilers that automatically select an appropriate compilation sequence for each input program. These adaptive compilers discover a good compilation sequence tailored to the input program, the target machine, and a user-chosen objective function. We have shown, as have others, that program-specific sequences can produce better results than any single universal sequence [1, 7, 10, 21, 23] Our adaptive compiler looks for compilation sequences in a large and complex search space. Its typical compilation sequence includes 10 passes (with possible repeats) chosen from the 16 available--there are 1610 or [1,099,511,627,776] such sequences. To learn about the properties of such spaces, we have studied subspaces that consist of 10 passes drawn from a set of 5 (510 or 9,765,625 sequences). These 10-of-5 subspaces are small enough that we can analyze them thoroughly but large enough to reflect important properties of the full spaces.This paper reports, in detail, on our analysis of several of these subspaces and on the consequences of those observed properties for the design of search algorithms.