Advertisement

The value flow graph: A program representation for optimal program transformations

  • Bernhard Steffen
  • Jens Knoop
  • Oliver Rüthing
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 432)

Abstract

Data flow analysis algorithms for imperative programming languages can be split into two groups: first, into the semantic algorithms that determine semantic equivalence between terms, and second, into the syntactic algorithms that compute complex program properties based on syntactic term identity, which support powerful optimization techniques like for example partial redundancy elimination. Value Flow Graphs represent semantic equivalence of terms syntactically. This allows us to feed the knowledge of semantic equivalence into syntactic algorithms. The power of this technique, which leads to modularly extendable algorithms, is demonstrated by developing a two stage algorithm for the optimal placement of computations within a program wrt the Herbrand interpretation.

Keywords

Auxiliary Variable Optimal Placement Flow Graph Stage Algorithm Structure Partition 
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.

References

  1. [All]
    F. E. Allen. “Control Flow Analysis”. ACM Sigplan Notices, July 1970Google Scholar
  2. [ACK]
    F. E. Allen, J. Cocke and K. Kennedy. “Reduction of Operator Strength”. In: St. S. Muchnick and N. D. Jones, editors. “Program Flow Analysis: Theory and Applications”, Prentice Hall, Inc., Englewood Cliffs, New Jersey 07632, 1981Google Scholar
  3. [Ch]
    G. J. Chaitin. “Register Allocation and Spilling via Graph Coloring”. IBM T. J. Watson Research Center, Computer Science Department, P.O. Box 218, Yorktown Height, N. Y. 10598, 1981Google Scholar
  4. [CACCHM]
    G. J. Chaitin, M. A. Auslander, A. K. Chandra, J. Cocke, M. E. Hopkins and P. W. Markstein. “Register Allocation via Coloring”. IBM T. J. Watson Research Center, Computer Science Department, P.O. Box 218, Yorktown Height, N. Y. 10598, 1980Google Scholar
  5. [CK]
    J. Cocke and K. Kennedy. “An Algorithm for Reduction of Operator Strength”. Communications of the ACM, 20(11):850–856, 1977CrossRefGoogle Scholar
  6. [FKU]
    A. Fong, J. B. Kam and J. D. Ullman. “Application of Lattice Algebra to Loop Optimization”. 2nd POPL, Palo Alto, California, 1–9, 1975Google Scholar
  7. [JD1]
    S. M. Joshi and D. M. Dhamdhere. “A Composite Hoisting-Strength Reduction Transformation for Global Program Optimization — Part I”. Internat. J. Computer Math. 11, 21–41, 1982Google Scholar
  8. [JD2]
    S. M. Joshi and D. M. Dhamdhere. “A Composite Hoisting-Strength Reduction Transformation for Global Program Optimization — Part II”. Internat. J. Computer Math. 11, 111–126, 1982Google Scholar
  9. [Ki1]
    G. A. Kildall. “Global Expression Optimization during Compilation”. Technical Report No. 72-06-02, University of Washington, Computer Science Group, Seattle, Washington, 1972Google Scholar
  10. [Ki2]
    G. A. Kildall. “A Unified Approach to Global Program Optimization”. 1st POPL, Boston, Massachusetts, 194–206, 1973Google Scholar
  11. [MR]
    E. Morel and C. Renvoise. “Global Optimization by Suppression of Partial Redundancies”. Communications of the ACM, 22(2):96–103, 1979CrossRefGoogle Scholar
  12. [RWZ]
    B. K. Rosen, M. N. Wegman and F. K. Zadeck. “Global Value Numbers and Redundant Computations”. 15th POPL, San Diego, California, 12–27, 1988Google Scholar
  13. [St1]
    B. Steffen. “Optimal Run Time Optimization. Proved by a New Look at Abstract Interpretations”. TAPSOFT'87, Pisa, Italy, LNCS 249, 52–68, 1987Google Scholar
  14. [St2]
    B. Steffen. “Abstrakte Interpretationen beim Optimieren von Programmlaufzeiten. Ein Optimalitätskonzept und seine Anwendung”. PhD thesis, Christian-Albrechts-Universität Kiel, 1987Google Scholar
  15. [SK1]
    B. Steffen and J. Knoop. “Finite Constants: Characterizations of a New Decidable Set of Constants”. 14th MFCS, Porąbka-Kozubnik, Poland, LNCS 379, 481–491, 1989Google Scholar
  16. [SK2]
    B. Steffen and J. Knoop. “Finite Constants: Characterizations of a New Decidable Set of Constants”. Extended version of [SK1], LFCS Report Series, ECS-LFCS-89-79, Laboratory for Foundations of Computer Science, University of Edinburgh, 1989Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • Bernhard Steffen
    • 1
  • Jens Knoop
    • 2
  • Oliver Rüthing
    • 2
  1. 1.Department of Computer ScienceUniversity of AarhusAarhus C
  2. 2.Institut für Informatik und Praktische MathematikChristian-Albrechts-UniversitätKiel 1

Personalised recommendations