Abstract
Classical automatic optimization is starting with linearized intermediate code and builds up graph-like data structures (flow graph, DAGs, data flow analysis information). Most of the information which was already known by the upper part of the compiler now has to be recovered again. We start with a graph-like intermediate code in which all structural information of the source code is still present. Optimization is then carried out by graph manipulations. This is sketched by some examples, namely local common subexpression elimination, motion of loop invariant computations, and induction variable elimination.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Preview
Unable to display preview. Download preview PDF.
References
A.V. Aho/J.D. Ullmann: Principles of Compiler Design, Reading (Mass.): Addison-Wesley (1977)
F.L. Bauer et al.: Program Development by Transformation, Section III of F.L. Bauer (Ed.): Program Construction, Lect. Notes Comp. Sci. 69, 235–492 (1979).
W. Brendel/H. Bunke/M. Nagl: Syntaxgesteuerte Programmierung und inkrementelle Compilation, Informatik-Fachberichte 10, 57–74, Berlin: Springer-Verlag (1977).
W. Brendel/M. Nagl/D. Weber: Implementation of Sequential and Parallel Graph Rewriting Systems, Applied Computer Science 8, 79–106, München: Carl Hanser Verlag (1978).
H. Bunke: Sequentielle und parallele programmierte Graph-Grammatiken, Doctoral Dissertation, Arbeitsber. d. Inst. f. Math. Masch. u. Datenverarb. 12, 3, Erlangen (1979).
V. Claus/H. Ehrig/B.K. Rosen (Eds.): Graph Grammars and their Application to Computer Science and Biology. Lect. Notes in Comp. Sci. 79, Berlin: Springer-Verlag (1979).
R. Farrow/K. Kennedy/L. Zucconi: Graph Grammars and Global Program Data Flow Analysis, Techn. Rep., Dpt. Math. Sci., Rice University, Texas.
D. Knuth: Structured programming with goto statements, Computing Surveys 8, 261–301 (1974).
D.E. Loveman: Program improvement by source to source transformation, Proc. 3rd ACM POPL Symp. 140–152 (1976).
M. Nagl: Graph-Grammatiken: Theorie, Anwendungen, Implementierung, Wiesbaden: Vieweg Verlag (1979).
M. Nagl: Incremental Compiler as Component of a System for Software Generation, Proc. 6th Gl Conference on Programming Languages and Program Development, Informatik-Fachberichte 25, 29–44, Berlin: Springer-Verlag (1980).
M. Nagl: Application of Graph Rewriting to Optimization and Parallelization of Programs, to appear in Computing.
B.K. Rosen: High Level Data Flow Analysis, Comm. ACM 20, 10, 712–724 (1977).
B.K. Rosen: Data Flow Analysis for Procedural Languages. Journ. ACM 26, 2, 322–344 (1979).
H.J. Schneider: Syntax-directed description of incremental compilers, Lect. Notes Comp. Sci. 26, 192–201, Berlin: Springer-Verlag (1975).
J.D. Ullman: Fast Algorithms for the Elimination of Common Subexpressions, Acta Informatica 2, 191–213 (1973).
W. Wulf et al.: The Design of an Optimization Compiler, New York: American Elsevier (1975).
M.V. Zelkowitz/W.G. Bail: Optimization of structured programs, Software Pract. & Exp. 4, 1, 51–57 (1974).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1981 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nagl, M. (1981). Graph rewriting and automatic, machine-independent program optimization. In: Noltemeier, H. (eds) Graphtheoretic Concepts in Computer Science. WG 1980. Lecture Notes in Computer Science, vol 100. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-10291-4_5
Download citation
DOI: https://doi.org/10.1007/3-540-10291-4_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-10291-5
Online ISBN: 978-3-540-38435-9
eBook Packages: Springer Book Archive