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

Sharlit—a tool for building optimizers

Published: 01 July 1992 Publication History

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

[1]
A.V. Aho, R. Sethi, J.D. Ullman, Compilers, Principles, Techniques, and Tools. Addison-Wesley; 1986.
[2]
Z. Ammarguellat and W. L. Harrison ilI, Automatic recognition of induction variables and recurrence relations by abstract interpretation. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Langua,~e Design and Implementation.
[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]
J. Choi, R. Cytron, and j. Ferrante, Automatic construction of sparse data flow evaluation graphs, In POPL 1991.
[5]
E Chow, A Portable Machine-Independent Global Optimizer, PhD thesis, Stanford Universit3~ 1983
[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]
E. Morel and C. Renvoise, Global optimization by suppression of partial redundancies, In Communications of the ACM. (22):96-103
[8]
M. Sharir. "Structural analysis: a new approach to flow analysis in optimizing compilers". Computer Languages 5 (1980), 141-153.
[9]
B. Stroustrup, The C++ Programming Language, Addisx~n- Wesle36 Reading, Mass.
[10]
R.E. Tarjan. "Testing flow graph reducibility", j. of Comput. and Syst. Sci. (9 1974), 355-365.
[11]
R.E. Tarjan, Fast algorithms for solving Path problems. journal of the ACM, 3(28):591-642, July 1981.
[12]
S. Tjiang, M. E. Wolf, M. S. Lain, K. L. Pieper, and J. L. Henness3~ Integrating scalar optimization and parallelization, In 4th Workshop on Languages and Compilers for Parallel Computing, Aug 199I.
[13]
j.D. Ullman. "Fast algorithms for the elimination of common subexpressions'. Acta Inf. 2, 3 (July 1973), 191- 213.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 27, Issue 7
July 1992
352 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/143103
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '92: Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
    July 1992
    352 pages
    ISBN:0897914759
    DOI:10.1145/143095
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 1992
Published in SIGPLAN Volume 27, Issue 7

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)54
  • Downloads (Last 6 weeks)10
Reflects downloads up to 14 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Deriving efficient program transformations from rewrite rulesProceedings of the ACM on Programming Languages10.1145/34735795:ICFP(1-29)Online publication date: 19-Aug-2021
  • (2010)Automatic Generation of Code Optimizers from Formal SpecificationsThe Compiler Design Handbook10.1201/9781420040579.ch2Online publication date: 7-Mar-2010
  • (2009)Program transformations using temporal logic side conditionsACM Transactions on Programming Languages and Systems10.1145/1516507.151650931:4(1-48)Online publication date: 26-May-2009
  • (2006)A Domain-Specific Language for Generating Dataflow AnalyzersElectronic Notes in Theoretical Computer Science10.1016/j.entcs.2006.10.008164:2(103-119)Online publication date: Oct-2006
  • (2005)Interprocedural parallelization analysis in SUIFACM Transactions on Programming Languages and Systems10.1145/1075382.107538527:4(662-731)Online publication date: 1-Jul-2005
  • (2005)Cool: A control-flow generator for system analysisCompiler Construction10.1007/BFb0026442(306-309)Online publication date: 15-Jun-2005
  • (2002)Composing dataflow analyses and transformationsACM SIGPLAN Notices10.1145/565816.50329837:1(270-282)Online publication date: 1-Jan-2002
  • (2002)Composing dataflow analyses and transformationsProceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/503272.503298(270-282)Online publication date: 16-Jan-2002
  • (2000)Graph rewrite systems for program optimizationACM Transactions on Programming Languages and Systems10.1145/363911.36391422:4(583-637)Online publication date: 1-Jul-2000
  • (2000)TVLA: A System for Implementing Static AnalysesStatic Analysis10.1007/978-3-540-45099-3_15(280-301)Online publication date: 2000
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media