Skip to main content
Log in

Computation and use of data flow information in optimizing compilers

  • Published:
Acta Informatica Aims and scope Submit manuscript

Summary

Global data flow analysis is embedded into an optimizing compiler environment. It is shown for a small language, how global data flow information can be collected, used in determining the applicability of optimizing program transformations, and updated after transformations have made the flow information invalid. The algorithms presented, global data flow analysis, constant propagation, and invariant code motion, are described as guided by the abstract syntax tree of a program. The description is such as to allow the automatic generation of an optimizing compiler.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aho, A.V., Ullman, J.D.: Principles of compiler design, Reading: Addison Wesley 1977

    Google Scholar 

  2. Allen, F.E.: Control flow analysis, SIGPLAN Notices, 5, 1–10 (1970)

    Google Scholar 

  3. Babich, W.A., Jazayeri, M: The method of attributes for data flow analysis I, Acta Informat. 10, 245–264 (1978)

    Google Scholar 

  4. Böhm, C., Jacopini, G.: Flow diagrams, turing machines, and languages with only two formation rules, CACM 19, 5 (1966)

    Google Scholar 

  5. de Remer, F. L.: Transformational grammars. In: Compiler construction: An Advanced Course, F.L. Bauer, J. Eickel (eds.). Lectures Notes in Computer Science, Vol. 21. Berlin-Heidelberg-New York: Springer 1974

    Google Scholar 

  6. Farrow, R., Kennedy, K., Zucconi, L.: Graph grammars and global program flow analysis, Proc. 17th Annual IEEE Symp. on Found. of C.S., 1975

  7. Ganzinger, H.: Modifizierte attributierte Grammatiken, Report No. 7420. Abt. Mathematik, Technische Universität München, 1974

  8. Ganzinger, H.: MUG 1-Manual, Report No. 7608, Institut für Informatik, Technische Universität München, 1976

  9. Ganzinger, H.: ADELE: An attribute definition language, TUM-INFO, Inst, für Informatik, Technische Universität München (in press)

  10. Giegerich, R.: Introduction to the compiler generating system MUG 2, TUM-INFO-7913, Inst. für Informatik, Technische Universität München, 1979

  11. Giegerich, R., Wilhelm, R.: Implementierbarkeit attributierter Grammatiken. In: GI-7. Jahrestagung. (H.J. Schneider, (ed.). Informatik Fachberichte 10. Berlin-Heidelberg-New York: Springer 1977

    Google Scholar 

  12. Giegerich, R., Wilhelm, R.: Attribute evaluation, Lec. Notes of the EEC-CREST-Course on State of the Art and Future Trends in Compilation, IRIA 1978

  13. Glasner, I., Möncke, U., Wilhelm, R.: OPTRAN, a language for the specification of program transformations, Techn. Report, FB10 — Informatik, Universität des Saarlandes, 1979

  14. Ganzinger, H., Ripken, K., Wilhelm, R.: Automatic generation of optimizing multipass compilers. In: B. Gilchrist (ed.): Information processing 77, pp. 535–540. Amsterdam: North Holland, 1977

    Google Scholar 

  15. Graham, S.L., Wegman, M.: A fast and usually linear algorithm for global flow analysis, JACM, 23, 172–202 (1976)

    Google Scholar 

  16. Jazayeri, M., Ogden, W.F., Rounds, W.C.: The intrinsically exponential complexity of the circularity problem for attribute grammars, CACM, 18, 697–706 (1975)

    Google Scholar 

  17. Kam, J.B., Ullman, J.D.: Global data flow analysis and iterative algorithms, JACM, 23, 158–171 (1976)

    Google Scholar 

  18. Kennedy, K.: A global flow analysis algorithm, Internat. J. Comput. Math., Section A, 3, 5–15 (1971)

    Google Scholar 

  19. Kennedy, K.: A survey of compiler optimization, Lec. Notes of the EEC-CREST-Course on State of the Art and Future Trends in Compilation, IRIA 1978, also in Jones, N.D., Muchnick, S.S. (eds.), Program Flow Analysis: Theory and Application. Englewood Cliffs: Prentice Hall (in press 1979)

  20. Kildall, G.A.: A unified approach to global program optimization, Conf. Record of the ACM Symp. on Princ. of Progr. Lang., 1973

  21. Knuth, D.E.: Semantics of Context-free Languages, Math. Systems Theory, 2, 127–145 (1968)

    Google Scholar 

  22. Ripken, K.: Generating an intermediate code generator in a compiler generating system, Proc. International Computing Symposium, pp. 121–127. Amsterdam: North Holland, 1975

    Google Scholar 

  23. Rosen, B.K.: Tree-manipulating systems and church-rosser theorems, JACM, Vol. 20, 160–187 (1973)

    Google Scholar 

  24. Rosen, B.K.: High level data flow analysis, CACM, 20, 712–724 (1977)

    Google Scholar 

  25. Tarjan, R.E.: Iterative algorithms for global flow analysis, Techn. Rep. STAN-CS-76-547, Comp. Sci. Dep. Stanford University, 1976

  26. Ullman, J.D.: Fast algorithms for the elimination of Common subexpressions, Acta Informat. 2, 191–213 (1973)

    Google Scholar 

  27. Ullman, J.D.: Data flow analysis, Proc. 2nd USA-Japan Computer Conference, pp. 335–342, Montvale, N.J.: AFIPS Press, 1975

    Google Scholar 

  28. Wilhelm, R.: Codeoptimierung mittels attributierter Transformationsgrammatiken. In: GI-4. Jahrestagung. (D. Siefkes ed.) Lecture Notes in Computer Science, Vol. 26, pp. 257–266. Berlin-Heidelberg-New York: Springer 1974

    Google Scholar 

  29. Wulf, W., Johnsson, R.K., Weinstock, Ch. B., Hobbs, St. O., Geschke, Ch. M.: The design of an optimizing compiler. New York: American Elsevier Publishing Comp., 1975

    Google Scholar 

  30. Wilhelm, R., Ripken, K., Ciesinger, J., Ganzinger, H., Lahner, W., Nollman, R.-D.: Design evaluation of the compiler generating system MUG 1, Proc. 2nd. International Conference on Software Engineering, pp. 571–576, San Francisco, 1976

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wilhelm, R. Computation and use of data flow information in optimizing compilers. Acta Informatica 12, 209–225 (1979). https://doi.org/10.1007/BF00264579

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00264579

Keywords

Navigation