Skip to main content
Log in

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

The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

References

  1. Almagor L, Cooper KD, Grosul A, Harvey TJ, Reeves SW, Subramanian D, Torczon L, Waterman T (2004) Finding effective compilation sequences. In: Proceedings of the ACM SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems, pp. 231–239

  2. Alpern B, Wegman MN, Zadeck FK (1988) Detecting equality of variables in programs. In: Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, San Diego, CA, USA, pp. 1–11

  3. Briggs P, Cooper KD (1994) Effective partial redundancy elimination. SIGPLAN Notices proceedings of the ACM SIGPLAN ’94 Conference on Programming Language Design and Implementation 29(6):159–170

    Article  Google Scholar 

  4. Briggs P, Cooper KD, Simpson LT (1997) Value numbering. Software–Practice Exper 27(6):701–724

    Article  Google Scholar 

  5. Chaitin GJ, Auslander MA, Chandra AK, Cocke J, Hopkins ME, Markstein PW (1981) Register allocation via graph coloring. Comput Langu 6(1):47–57

    Article  Google Scholar 

  6. Click C, KD Cooper (1995) Combining analyses, combining optimizations. ACM Transactions on Programming Languages and Systems 17(2):181–196

    Article  Google Scholar 

  7. Cooper KD, Schielke PJ, Subramanian D (1999) Optimizing for reduced code space using genetic algorithms. In: 1999 Acm sigplan Workshop on Languages, Compilers, and Tools for Embedded Systems (Lctes), pages 1–9

  8. Cooper KD, Schielke PJ, Subramanian D (1999) Optimizing for reduced code space using genetic algorithms. In: 1999 Acm sigplan Workshop on Languages, Compilers, and Tools for Embedded Systems (Lctes), pp. 1–9

  9. Cooper KD, Simpson LT, Vick CA (2001) Operator strength reduction. ACM Transactions on Programming Languages and Systems, to appear

  10. Cooper KD, Subramanian D, Torczon L (2001) Adaptive optimizing compilers for the 21st century. In: Proceedings of the 2001 LACSI symposium. Los Alamos Computer Science Institute, Available at http://www.cs.rice.edu/˜keith/Adapt

  11. Cooper KD, Torczon L (2003) Engineering a compiler. Morgan-Kaufmann Publishers

  12. Cytron R, Ferrante J, Rosen BK, Wegman MN, Zadeck FK (1991) Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems (TOPLAS) 13(4):451–490

    Article  Google Scholar 

  13. Davidson JW, Fraser CW (1980) The design and application of a retargetable peephole optimizer. ACM Transactions on Programming Languages and Systems (TOPLAS) 2(2):191–202

    Article  Google Scholar 

  14. Forsythe GE, Malcolm MA, Moler CB (1977) Computer Methods for Mathematical Computations. Prentice-Hall, Englewood Cliffs, NJ, USA

    Google Scholar 

  15. Goedecker S, Hoisie A (2001) Performance Optimization of Numerically Intensive Codes. SIAM, Philadelphia, PA, USA

    Google Scholar 

  16. Knoop J, RÜthing O, Steffen B (1992) Lazy code motion. SIGPLAN Notices, In: Proceedings of the ACM SIGPLAN ’92 Conference on Programming Language Design and Implementation 27(7):224–234

    Article  Google Scholar 

  17. Morel E, Renvoise C (1979) Global optimization by suppression of partial redundancies. Communications of the ACM 22(2):96–103

    Article  MathSciNet  Google Scholar 

  18. Pollock LL (1986) An Approach to Incremental Compilation of Optimized Code. PhD thesis, University of Pittsburgh, Department of Computer Science

  19. Robison AD (2001) Impact of economics on compiler optimization. In: Proceedings of the ACM 2001 Java Grande Conference, Stanford University, pp. 1–10

  20. Simpson LT (1996) Value-Driven Redundancy Elimination. PhD thesis, Rice University

  21. Triantafyllis S, Vachharajani M, Vachharajani N, August DI (2003) Compiler optimization-space exploration. In: Proceedings of the ACM SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems

  22. Wegman M, Zadeck FK (1991) Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems, 13(2):181–210

    Article  Google Scholar 

  23. Whitfield DL, Soffa ML (1997) An approach for exploring code improving transformations. ACM Transactions on Programming Languages and Systems (TOPLAS) 19(6):1053–1084

    Article  Google Scholar 

  24. Zhao M, Childers B, Soffa ML (2003) Predicting the impact of optimizations for embedded systems. In: Proceedings of the ACM SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems, pp. 1–11

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work has been supported by the Los Alamos Computer Science Institute and by the National Science Foundation through grant CCR-0205303.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Cooper, K.D., Grosul, A., Harvey, T.J. et al. Exploring the structure of the space of compilation sequences using randomized search algorithms. J Supercomput 36, 135–151 (2006). https://doi.org/10.1007/s11227-006-7954-5

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-006-7954-5

Keywords

Navigation