Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

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

Published: 01 May 2006 Publication History

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 16 10 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 (5 10 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.

References

[1]
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]
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]
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.
[4]
4. Briggs P. Cooper KD, Simpson LT (1997) Value numbering. Software-Practice Exper 27(6):701-724.
[5]
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.
[6]
6. Click C, KD Cooper (1995) Combining analyses, combining optimizations. ACM Transactions on Programming Languages and Systems 17(2):181-196.
[7]
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]
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]
9. Cooper KD, Simpson LT, Vick CA (2001) Operator strength reduction. ACM transactions on programming languages and systems, to appear.
[10]
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]
11. Cooper KD, Torczon L (2003) Engineering a compiler. Morgan-Kaufmann Publishers.
[12]
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.
[13]
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.
[14]
14. Forsythe GE, Malcolm MA, Moler CB (1977) Computer methods for mathematical computations. Prentice-Hall, Englewood Cliffs, NJ, USA.
[15]
15. Goedecker S, Hoisie A (2001) Performance optimization of numerically intensive codes. SIAM, Philadelphia, PA, USA.
[16]
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.
[17]
17. Morel E, Renvoise C (1979) Global optimization by suppression of partial redundancies. Communications of the ACM 22(2):96-103.
[18]
18. Pollock LL (1986) An approach to incremental compilation of optimized code. PhD thesis, University of Pittsburgh, Department of Computer Science.
[19]
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]
20. Simpson LT (1996) Value-driven redundancy elimination. PhD thesis, Rice University.
[21]
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]
22. Wegman M, Zadeck FK (1991) Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems, 13(2):181-210.
[23]
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.
[24]
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.

Cited By

View all
  • (2020)Reliable Compilation Optimization Phase-ordering Exploration with Reinforcement Learning2020 IEEE International Conference on Systems, Man, and Cybernetics (SMC)10.1109/SMC42975.2020.9283132(4058-4065)Online publication date: 11-Oct-2020
  • (2018)Combining Software Cache Partitioning and Loop Tiling for Effective Shared Cache ManagementACM Transactions on Embedded Computing Systems10.1145/320266317:3(1-25)Online publication date: 22-May-2018
  • (2018)Fast Heuristic-Based GPU Compiler Sequence SpecializationEuro-Par 2018: Parallel Processing Workshops10.1007/978-3-030-10549-5_39(494-505)Online publication date: 27-Aug-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image The Journal of Supercomputing
The Journal of Supercomputing  Volume 36, Issue 2
May 2006
95 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 May 2006

Author Tags

  1. Adaptive compilation
  2. Code optimization
  3. Compilers

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Reliable Compilation Optimization Phase-ordering Exploration with Reinforcement Learning2020 IEEE International Conference on Systems, Man, and Cybernetics (SMC)10.1109/SMC42975.2020.9283132(4058-4065)Online publication date: 11-Oct-2020
  • (2018)Combining Software Cache Partitioning and Loop Tiling for Effective Shared Cache ManagementACM Transactions on Embedded Computing Systems10.1145/320266317:3(1-25)Online publication date: 22-May-2018
  • (2018)Fast Heuristic-Based GPU Compiler Sequence SpecializationEuro-Par 2018: Parallel Processing Workshops10.1007/978-3-030-10549-5_39(494-505)Online publication date: 27-Aug-2018
  • (2017)A methodology pruning the search space of six compiler transformations by addressing them together as one problem and by exploiting the hardware architecture detailsComputing10.1007/s00607-016-0535-499:9(865-888)Online publication date: 1-Sep-2017
  • (2016)A graph-based iterative compiler pass selection and phase ordering approachACM SIGPLAN Notices10.1145/2980930.290795951:5(21-30)Online publication date: 13-Jun-2016
  • (2016)A graph-based iterative compiler pass selection and phase ordering approachProceedings of the 17th ACM SIGPLAN/SIGBED Conference on Languages, Compilers, Tools, and Theory for Embedded Systems10.1145/2907950.2907959(21-30)Online publication date: 13-Jun-2016
  • (2016)Clustering-Based Selection for the Exploration of Compiler Optimization SequencesACM Transactions on Architecture and Code Optimization10.1145/288361413:1(1-28)Online publication date: 28-Mar-2016
  • (2015)Use of Previously Acquired Positioning of Optimizations for Phase Ordering ExplorationProceedings of the 18th International Workshop on Software and Compilers for Embedded Systems10.1145/2764967.2764978(58-67)Online publication date: 1-Jun-2015
  • (2014)Exploration of compiler optimization sequences using clustering-based selectionACM SIGPLAN Notices10.1145/2666357.259782149:5(63-72)Online publication date: 12-Jun-2014
  • (2014)Exploration of compiler optimization sequences using clustering-based selectionProceedings of the 2014 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems10.1145/2597809.2597821(63-72)Online publication date: 12-Jun-2014
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media