Efficient Symbolic Analysis for Optimizing Compilers

  • Robert A. van Engelen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2027)


Because most of the execution time of a program is typically spend in loops, loop optimization is the main target of optimizing and restructuring compilers. An accurate determination of induction variables and dependencies in loops is of paramount importance to many loop optimization and parallelization techniques, such as generalized loop strength reduction, loop parallelization by induction variable substitution, and loop-invariant expression elimination. In this paper we present a new method for induction variable recognition. Existing methods are either ad-hoc and not powerful enough to recognize some types of induction variables, or existing methods are powerful but not safe. The most powerful method known is the symbolic differencing method as demonstrated by the Parafrase-2 compiler on parallelizing the Perfect Benchmarks(R). However, symbolic differencing is inherently unsafe and a compiler that uses this method may produce incorrectly transformed programs without issuing a warning. In contrast, our method is safe, simpler to implement in a compiler, better adaptable for controlling loop transformations, and recognizes a larger class of induction variables.


Loop Body Induction Variable Program Language Design Automatic Parallelization Loop Parallelization 
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.


  1. 1.
    A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley Publishing Company, Reading MA, 1985.Google Scholar
  2. 2.
    F. Allen, J. Cocke, and K. Kennedy. Reduction of operator strength. In S. Munchnick and N. Jones, editors, Program Flow Analysis, pages 79–101, New-Jersey, 1981. Prentice-Hall.Google Scholar
  3. 3.
    Z. Ammerguallat and W.L. Harrison III. Automatic recognition of induction variables and recurrence relations by abstract interpretation. In ACM SIGPLAN’90 Conference on Programming Language Design and Implementation, pages 283–295, White Plains, NY, 1990.Google Scholar
  4. 4.
    O. Bachmann. Chains of Recurrences. PhD thesis, Kent State University of Arts and Sciences, 1996.Google Scholar
  5. 5.
    O. Bachmann, P.S. Wang, and E.V. Zima. Chains of recurrences-a method to expedite the evaluation of closed-form functions. In International Symposium on Symbolic and Algebraic Computing, pages 242–249, Oxford, 1994. ACM.Google Scholar
  6. 6.
    W. Blume and R. Eigenmann. Demand-driven, symbolic range propagation. In 8th International workshop on Languages and Compilers for Parallel Computing, pages 141–160, Columbus, Ohio, USA, August 1995.Google Scholar
  7. 7.
    R. Eigenmann, J. Hoeflinger, G. Jaxon, Z. Li, and D.A. Padua. Restructuring fortran programs for cedar. In ICPP, volume 1, pages 57–66, St. Charles, Illinois, 1991.Google Scholar
  8. 8.
    R. Eigenmann, J. Hoeflinger, Z. Li, and D.A. Padua. Experience in the automatic parallelization of four perfect-benchmark programs. In 4th Annual Workshop on Languages and Compilers for Parallel Computing, LNCS 589, pages 65–83, Santa Clara, CA, 1991. Springer Verlag.CrossRefGoogle Scholar
  9. 9.
    T. Fahringer. Efficient symbolic analysis for parallelizing compilers and performance estimators. Supercomputing, 12(3):227–252, May 1998.zbMATHCrossRefGoogle Scholar
  10. 10.
    Mohammad R. Haghighat. Symbolic Analysis for Parallelizing Compilers. Kluwer Academic Publishers, 1995.Google Scholar
  11. 11.
    M.R. Haghighat and C.D. Polychronopoulos. Symbolic program analysis and optimization for parallelizing compilers. In 5th Annual Workshop on Languages and Compilers for Parallel Computing, LNCS 757, pages 538–562, New Haven, Connecticut, 1992. Springer Verlag.Google Scholar
  12. 12.
    P. Knupp and S. Steinberg. Fundamentals of Grid Generation. CRC Press, 1994.Google Scholar
  13. 13.
    S. Munchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Fransisco, CA, 1997.Google Scholar
  14. 14.
    J.P. Singh and J.L. Hennessy. An emperical investigation of the effectiviness and limitations of automatic parallelization. In N. Suzuki, editor, Shared Memory Multiprocessing, pages 203–207. MIT press, Cambridge MA, 1992.Google Scholar
  15. 15.
    R. van Engelen, D. Whalley, and X. Yuan. Automatic validation of code-improving transformations. In ACM SIGPLAN Workshop on Language, Compilers, and Tools for Embedded Systems, 2000.Google Scholar
  16. 16.
    R.A. van Engelen. Symbolic evaluation of chains of recurrences for loop optimization. Technical report, TR-000102, Computer Science Deptartment, Florida State University, 2000. Available from
  17. 17.
    R.A. van Engelen, L. Wolters, and G. Cats. Ctadel: A generator of multi-platform high performance codes for pde-based scientific applications. In 10th ACM International Conference on Supercomputing, pages 86–93, New York, 1996. ACM Press.Google Scholar
  18. 18.
    R.A. van Engelen, L. Wolters, and G. Cats. Tomorrow’s weather forecast: Automatic code generation for atmospheric modeling. IEEE Computational Science & Engineering, 4(3):22–31, July/September 1997.CrossRefGoogle Scholar
  19. 19.
    M.J. Wolfe. Beyond induction variables. In ACM SIGPLAN’92 Conference on Programming Language Design and Implementation, pages 162–174, San Fransisco, CA, 1992.Google Scholar
  20. 20.
    M.J. Wolfe. High Performance Compilers for Parallel Computers. Addison-Wesley, Redwood City, CA, 1996.Google Scholar
  21. 21.
    E.V. Zima. Recurrent relations and speed-up of computations using computer algebra systems. In DISCO’92, pages 152–161. LNCS 721, 1992.Google Scholar
  22. 22.
    H. Zima. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Robert A. van Engelen
    • 1
  1. 1.Dept. of Computer ScienceFlorida State UniversityTallahassee

Personalised recommendations