Graph rewrite systems for program optimization

Graph rewrite systems can be used to specify and generate program optimizations. For termination of the systems several rule-based criteria are developed, defining exhaustive graph rewrite systems. For nondeterministic systems stratification is introduced which automatically selects single normal forms. To illustrate how far the methodology reaches, parts of the lazy code motion optimization are specified. The resulting graph rewrite system classes can be evaluated by a uniform algorithm, which forms the basis for the optimizer generator OPTIMIX. With this tool several optimizer components have been generated, and some numbers on their speed are presented.

[1]  Martin Odersky,et al.  Defining context-dependent syntax without using contexts , 1993, TOPL.

[2]  G JonesLarry Efficient evaluation of circular attribute grammars , 1990 .

[3]  S. Doaitse Swierstra,et al.  Higher order attribute grammars , 1989, PLDI '89.

[4]  Thomas W. Reps,et al.  Precise interprocedural dataflow analysis via graph reachability , 1995, POPL '95.

[5]  Bernhard Steffen,et al.  The Interprocedural Coincidence Theorem , 1992, CC.

[6]  J. Vollmer,et al.  Modula-P-a language for parallel programming definition and implementation on a transputer network , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[7]  Hartmut Ehrig,et al.  Tutorial Introduction to the Algebraic Approach of Graph Grammars Based on Double and Single Pushouts , 1990, Graph-Grammars and Their Application to Computer Science.

[8]  Heiko Dörr,et al.  Efficient Graph Rewriting and Its Implementation , 1995, Lecture Notes in Computer Science.

[9]  Bernhard Steffen,et al.  Data Flow Analysis as Model Checking , 1990, TACS.

[10]  Jeffrey D. Ullman,et al.  Assigning an Appropriate Meaning to Database Logic With Negation , 1994 .

[11]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[12]  Helmut Emmelmann Code Selection by Regularly Controlled Term Rewriting , 1991, Code Generation.

[13]  Uwe Aßmann On Edge Addition Rewrite Systems and their Relevance to Program Analysis , 1994, TAGT.

[14]  Dorothea Blostein,et al.  Issues in the Practical Use of Graph Rewriting , 1994, TAGT.

[15]  Uwe Aßmann,et al.  Cosy Compiler Phase Embedding with the CoSy Compiler Model , 1994, CC.

[16]  Zena M. Ariola,et al.  Graph rewriting systems for efficient compilation , 1993 .

[17]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[18]  Arvind,et al.  Graph Rewriting Systems for Eecient Compilation , 1993 .

[19]  Jan Willem Klop,et al.  Term Graph Rewriting , 1995, HOA.

[20]  Uwe Aamann On Edge Addition Rewrite Systems and Their Relevance to Program Analysis , 1994 .

[21]  Raymond Lo,et al.  Effective Representation of Aliases and Indirect Memory Operations in SSA Form , 1996, CC.

[22]  Uwe Aßmann,et al.  How to Uniformly Specify Program Analysis and Transformation with Graph Rewrite Systems , 1996, CC.

[23]  Etienne Morel,et al.  Global optimization by suppression of partial redundancies , 1979, CACM.

[24]  Hartmut Ehrig,et al.  Tutorial introduction to the algebraic approach of graph grammars , 1986, Graph-Grammars and Their Application to Computer Science.

[25]  Uwe Aßmann,et al.  Generierung von Programmoptimierungen mit Graphersetzungssystemen , 1996 .

[26]  M. J. Plasmeijer,et al.  Term graph rewriting: theory and practice , 1993 .

[27]  Jong-Deok Choi,et al.  On the Efficient Engineering of Ambitious Program Analysis , 1994, IEEE Trans. Software Eng..

[28]  Andy Schürr,et al.  Graph Grammar Engineering with PROGRES , 1995, ESEC.

[29]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[30]  Ron Y. Pinter,et al.  Program optimization and parallelization using idioms , 1991, POPL '91.

[31]  Jürgen Vollmer Modula-P A Language for Parallel Programming , 2002 .

[32]  Detlef Plump,et al.  On Termination of Graph Rewriting , 1995, WG.

[33]  Steven W. K. Tjiang,et al.  Sharlit—a tool for building optimizers , 1992, PLDI '92.

[34]  Letizia Tanca,et al.  What you Always Wanted to Know About Datalog (And Never Dared to Ask) , 1989, IEEE Trans. Knowl. Data Eng..

[35]  Manfred Nagl,et al.  Die PROGRES-Entwicklungsumgebung , 1996 .

[36]  M. Newman On Theories with a Combinatorial Definition of "Equivalence" , 1942 .

[37]  T. B. Dinesh,et al.  An extensible language for the generation of parallel data manipulation andcontrol packages , 1995 .

[38]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[39]  Gregor Snelting,et al.  The PSG system: from formal language definitions to interactive programming environments , 1986, TOPL.

[40]  Marko C. J. D. van Eekelen,et al.  Constructing Medium Sized Efficient Functional Programs in Clean , 1995, Advanced Functional Programming.

[41]  David Harel,et al.  On visual formalisms , 1988, CACM.

[42]  Gregor Snelting,et al.  The PSG system: from formal language definitions to interactive programming environments , 1986, TOPL.

[43]  Mary Lou Soffa,et al.  Automatic generation of global optimizers , 1991, PLDI '91.

[44]  Andreas Schürr,et al.  Operationales Spezifizieren mit programmierten Graphersetzungssystemen , 1991 .

[45]  Uwe Aßmann OPTIMIX Language Manual (for OPTIMIX 2.0) , 1996 .

[46]  Detlef Plump,et al.  Hypergraph rewriting: critical pairs and undecidability of confluence , 1993 .

[47]  Thomas W. Reps,et al.  Solving Demand Versions of Interprocedural Analysis Problems , 1994, CC.

[48]  Mary Lou Soffa,et al.  An approach to ordering optimizing transformations , 1990, PPOPP '90.

[49]  Larry G. Jones,et al.  Efficient evaluation of circular attribute grammars , 1990, TOPL.

[50]  Susan Horwitz,et al.  Generating editing environments based on relations and attributes , 1986, TOPL.

[51]  Jan Willem Klop,et al.  On the adequacy of graph rewriting for simulating term rewriting , 1994, TOPL.

[52]  G. A. Venkatesh A framework for construction and evaluation of high-level specifications for program analysis techniques , 1989, PLDI '89.

[53]  Martin Alt,et al.  Generation of Efficient Interprocedural Analyzers with PAG , 1995, SAS.

[54]  C. R. Ramakrishnan,et al.  Practical program analysis using general purpose logic programming systems—a case study , 1996, PLDI '96.

[55]  David W. Binkley,et al.  Interprocedural Constant Propagation using Dependence Graphs and a Data-Flow Model , 1994, CC.

[56]  Frank Tip,et al.  Parametric program slicing , 1995, POPL '95.

[57]  Bernhard Steffen,et al.  Optimal code motion: theory and practice , 1994, TOPL.

[58]  Matthias Jarke,et al.  Logic Programming and Databases , 1984, Expert Database Workshop.

[59]  Robert E. Tarjan,et al.  A Unified Approach to Path Problems , 1981, JACM.