ACM Home Page
Please provide us with feedback. Feedback
Finding effective compilation sequences
Full text PdfPdf (744 KB)
Source
Language, Compiler and Tool Support for Embedded Systems archive
Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems table of contents
Washington, DC, USA
SESSION: Compilers and optimization table of contents
Pages: 231 - 239  
Year of Publication: 2004
ISBN:1-58113-806-7
Also published in ...
Authors
L. Almagor  Rice University, Houston, TX
Keith D. Cooper  Rice University, Houston, TX
Alexander Grosul  Rice University, Houston, TX
Timothy J. Harvey  Rice University, Houston, TX
Steven W. Reeves  Rice University, Houston, TX
Devika Subramanian  Rice University, Houston, TX
Linda Torczon  Rice University, Houston, TX
Todd Waterman  Rice University, Houston, TX
Sponsors
ACM: Association for Computing Machinery
SIGBED: ACM Special Interest Group on Embedded Systems
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 63,   Citation Count: 23
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/997163.997196
What is a DOI?

ABSTRACT

Most modern compilers operate by applying a fixed, program-independent sequence of optimizations to all programs. Compiler writers choose a single "compilation sequence", or perhaps a couple of compilation sequences. In choosing a sequence, they may consider performance of benchmarks or other important codes. These sequences are intended as general-purpose tools, accessible through command-line flags such as -O2 and -O3.Specific compilation sequences make a significant difference in the quality of the generated code, whether compiling for speed, for space, or for other metrics. A single universal compilation sequence does not produce the best results over all programs [8, 10, 29, 32]. Finding an optimal program-specific compilation sequence is difficult because the space of potential sequences is huge and the interactions between optimizations are poorly understood. Moreover, there is no systematic exploration of the costs and benefits of searching for good (i.e., within a certain percentage of optimal) program-specific compilation sequences.In this paper, we perform a large experimental study of the space of compilation sequences over a set of known benchmarks, using our prototype adaptive compiler. Our goal is to characterize these spaces and to determine if it is cost-effective to construct custom compilation sequences. We report on five exhaustive enumerations which demonstrate that 80% of the local minima in the space are within 5 to 10% of the optimal solution. We describe three algorithms tailored to search such spaces and report on experiments that use these algorithms to find good compilation sequences. These experiments suggest that properties observed in the enumerations hold for larger search spaces and larger programs. Our findings indicate that for the cost of 200 to 4,550 compilations, we can find custom sequences that are 15 to 25% better than the human-designed fixed-sequence originally used in our compiler.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
3
4
 
5
 
6
G. J. Chaitin, M. A. Auslander, A. K. Chandra, J. Cocke, M. E. Hopkins, and P. W. Markstein. Register allocation via graph coloring. Computer Languages, 6(1):47--57, Jan. 1981.
 
7
K. Chow and Y. Wu. Feedback-directed selection and characterization of compiler optimizations. In Proceedings of the 4th Workshop on Feedback-Directed and Dynamic Optimization (FDDO-4), Dec. 2001.
8
9
 
10
 
11
K. D. Cooper and L. Torczon. Engineering a Compiler. Morgan-Kaufmann Publishers, 2003.
 
12
K. D. Cooper and T. Waterman. Investigating adaptive compilation using the MIPSPro compiler. In Proceedings of the 2003 Los Alamos Computer Science Institute Symposium. Los Alamos Computer Science Institute (LACSI), Oct. 2003.
13
14
 
15
16
 
17
M. Frigo and S. G. Johnson. FFTW: An adaptive software architecture for the FFT. In Proceedings of the 1998 ICASSP Conference, volume 3, pages 1381--1384, 1998.
 
18
E. D. Granston and A. Holler. Automatic recommendation of compiler options. In Proceedings of the 4th Workshop on Feedback-Directed and Dynamic Optimization (FDDO-4), Dec. 2001.
 
19
L. Johnsson. Private communication. Discussion regarding algorithm choice in the Thinking Machine numerical libraries., Oct. 2003.
 
20
 
21
T. Kisuki, P. M. Knijnenburg, M. F. O'Boyle, and H. Wijsho. Iterative compilation in program optimization. In Proceedings of 8th Workshop on Compilers for Parallel Computers, CPC 2000, pages 35--44, Jan. 2000.
22
23
24
 
25
26
 
27
B. Selman and S. Kirkpatrick. Critical behavior in the computational cost of satisfiability testing. Artificial Intelligence, 81(1-2):273--295, 1996.
 
28
 
29
30
 
31
R. C. Whaley, A. Petitet, and J. J. Dongarra. Automated empirical optimization of software and the ATLAS project. Parallel Computing, 27(1--2):3--25, 2001.
32
33

CITED BY  23

Collaborative Colleagues:
L. Almagor: colleagues
Keith D. Cooper: colleagues
Alexander Grosul: colleagues
Timothy J. Harvey: colleagues
Steven W. Reeves: colleagues
Devika Subramanian: colleagues
Linda Torczon: colleagues
Todd Waterman: colleagues