ACM Home Page
Please provide us with feedback. Feedback
Sharlit—a tool for building optimizers
Full text PdfPdf (1.20 MB)
Source ACM SIGPLAN Notices archive
Volume 27 ,  Issue 7  (July 1992) table of contents
Pages: 82 - 93  
Year of Publication: 1992
ISSN:0362-1340
Also published in ...
Authors
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 28,   Citation Count: 27
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/143103.143120
What is a DOI?

ABSTRACT

A complex and time-consuming function of a modern compiler is global optimization. Unlike other functions of a compiler such as parsing and code generation which examine only one statement or one basic block at a time, optimizers are much larger in scope, examining and changing large portions of a program all at once. The larger scope means optimizers must perform many program transformations. Each of these transformations makes its own particular demands on the internal representation of programs; each can interact with and depend on the others in different ways. This makes optimizers large and complex. Despite their complexity, few tools exist to help in building optimizers. This is in stark contrast with other parts of the compiler where years of experience have culminated in tools with which these other parts can be constructed easily. For example, parser generators are used to build front-ends, and peephole optimizers and tree matchers are used to build code generators. This paper presents Sharlit, a tool to support the construction of modular and extensible global optimizers. We will show how Sharlit helps in constructing data-flow analyzers and the transformations that use data-flow analysis information, both are major components of any optimizer. Sharlit is implemented in C++ and uses C++ in the same way that YACC uses C. Thus we assume the reader has some familiarity with C++[9].


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
M. Berry et al, The PERFECT Club Benchmarks: effective performance evaluation of supercomputers. Technical Report UIUCSRD Rep. No. 827, University of Illinoi,,~ Urbana-Champaign, 1989.
4
 
5
 
6
M.S. Hecht and J.D. UUman. A simple algorithm for global data-flow analysis programs, In SIAM J. Computing. (4):519-532.
7
 
8
M. Sharir. "Structural analysis: a new approach to flow analysis in optimizing compilers". Computer Languages 5 (1980), 141-153.
 
9
 
10
R.E. Tarjan. "Testing flow graph reducibility", j. of Comput. and Syst. Sci. (9 1974), 355-365.
11
 
12
 
13
j.D. Ullman. "Fast algorithms for the elimination of common subexpressions'. Acta Inf. 2, 3 (July 1973), 191- 213.

CITED BY  27

Collaborative Colleagues:
Steven W. K. Tjiang: colleagues
John L. Hennessy: colleagues