Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1006209.1006226acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
Article

A unified framework for nonlinear dependence testing and symbolic analysis

Published: 26 June 2004 Publication History

Abstract

This paper presents a unified approach for generalized induction variable recognition and substitution, pointer analysis, analysis of conditionally updated variables, value range analysis, array region analysis, and nonlinear dependence testing. The analysis techniques share a well-defined uniform approach based on the chains of recurrences algebra. The uniform algebraic approach provides a powerful unified framework for developing analysis algorithms for restructuring compilers. The paper introduces a new set of analysis algorithms that accurately handle conditional control flow, pointer arithmetic, and nonlinear symbolic expressions in loops, which are known to be problematic for conventional restructuring compilers.

References

[1]
AHO, A., SETHI, R., AND ULLMAN, J. Compilers: Principles, Techniques and Tools. Addison-Wesley Publishing Company, Reading MA, 1985.]]
[2]
ALEFELD, G. Interval arithmetic tools for range approximation and inclusion of zeros. In Error Control and Adaptivity in Scientific Computing, H. Bulgak and C. Zenger, Eds. Kluwer Academic Publishers, 1999, pp. 1--21.]]
[3]
ALLEN, F., COCKE, J., AND KENNEDY, K. Reduction of operator strength. In Program Flow Analysis (New-Jersey, 1981), S. Muchnick and N. Jones, Eds., Prentice-Hall, pp. 79--101.]]
[4]
ALLEN, R., AND JOHNSON, S. Compiling C for vectorization, parallelization, and inline expansion. In Proc. of the SIGPLAN 1988 Conference of Programming Languages Design and Implementation (Atlanta, GA, June 1988), pp. 241--249.]]
[5]
AMMERGUALLAT, Z., AND HARRISON III, W. Automatic recognition of induction variables and recurrence relations by abstract interpretation. In Proc. of the ACM SIGPLAN'90 Conf. on Programming Language Design and Implementation (White Plains, NY, 1990), pp. 283--295.]]
[6]
BACHMANN, O. Chains of Recurrences. PhD thesis, Kent State University, College of Arts and Sciences, 1996.]]
[7]
BACHMANN, O., WANG, P., AND ZIMA, E. Chains of recurrences - a method to expedite the evaluation of closed-form functions. In International Symposium on Symbolic and Algebraic Computing (Oxford, 1994), ACM, pp. 242--249.]]
[8]
BANERJEE, U. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988.]]
[9]
BASU, A., LEUPERS, R., AND MARWEDEL, P. Array index allocation under register constraints in DSP programs. In 12th Int. Conf. on VLSI Design (Goa, India, 1999).]]
[10]
BLUME, AND EIGENMANN. Nonlinear and symbolic data dependence testing. IEEE Transactions on Parallel and Distributed Systems 9, 12 (December 1998), 1180--1194.]]
[11]
BLUME, W., AND EIGENMANN, R. The range test: a dependence test for symbolic non-linear expressions. In Supercomputing (1994), pp. 528--537.]]
[12]
BLUME, W., AND EIGENMANN, R. Demand-driven, symbolic range propagation. In 8th International workshop on Languages and Compilers for Parallel Computing (Columbus, Ohio, USA, Aug. 1995), pp. 141--160.]]
[13]
BLUME, W., AND EIGENMANN, R. Symbolic range propagation. In Proceedings of the 9th International Parallel Processing Symposium (April 1995), pp. 357--363.]]
[14]
BURKE, M., AND CYTRON, R. Interprocedural dependence analysis and parallelization. In Symposium of Compiler Construction (1986), pp. 162--175.]]
[15]
CINTRA, M., AND ARAUJO, G. Array reference allocation using SSA-form and live range growth. In Proc. of the ACM SIGPLAN 2000 LCTES (Vancouver, June 2000), pp. 26--33.]]
[16]
COLLARD, J.-F., BARTHOU, D., AND FEAUTRIER, P. Fuzzy array dataflow analysis. In In proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming (1995), pp. 92--101.]]
[17]
DANTZIG, G. B., AND EAVES, B. C. Fourier-motzkin elimination and its dual. Journal of Combinatorial Theory 14, 14 (1973), 288--297.]]
[18]
DAVIDSON, W., AND JINTURKAR, S. Memory access coalescing: A technique for eliminating redundant memory accesses. In proceedings of the SIGPLAN'94 Symposium on Programming Language Design and Implementation (1994), pp. 186--195.]]
[19]
DUESTERWALD, E., GUPTA, R., AND SOFFA, M. A practical data flow framework for array reference analysis and its use in optimizations. In Proc. of the SIGPLAN Conference on Programming Languages Design and Implementation (Albuquerque, New Mexico, 1993), pp. 67--77.]]
[20]
EIGENMANN, R., HOEFLINGER, J., JAXON, G., LI, Z., AND PADUA, D. Restructuring Fortran programs for Cedar. In Proc. of ICPP'91 (St. Charles, Illinois, 1991), vol. 1, pp. 57--66.]]
[21]
EIGENMANN, R., HOEFLINGER, J., LI, Z., AND PADUA, D. Experience in the automatic parallelization of four perfect-benchmark programs. In 4th Annual Workshop on Languages and Compilers for Parallel Computing, LNCS 589 (Santa Clara, CA, 1991), Springer Verlag, pp. 65--83.]]
[22]
EUROPEAN TELECOMMUNICATION STANDARD (ETSI). Digital cellular telecommunications system: ANSI-C code for the GSM enhanced full rate (EFR) speech codec. Available from http://www.etsi.org.]]
[23]
FAHRINGER, T. Efficient symbolic analysis for parallelizing compilers and performance estimators. Supercomputing 12, 3 (May 1998), 227--252.]]
[24]
FAHRINGER, T., AND SCHOLZ, B. Symbolic evaluation for parallelizing compilers. In 11th ACM International Conference on Supercomputing (New York, 1997), ACM Press, pp. 261--268.]]
[25]
FAHRINGER, T., AND STOLZ, B. A unified symbolic evaluation framework for parallelizing compilers. IEEE Transactions on Parallel and Distributed Systems 11, 11 (Nov. 2000).]]
[26]
FRANKE, B., AND O'BOYLE, M. Compiler transformation of pointers to explicit array accesses in DSP applications. In Proc. of the ETAPS Conf. on Compiler Construction 2001, LNCS 2027 (2001), pp. 69--85.]]
[27]
GERLEK, M., STOLZ, E., AND WOLFE, M. Beyond induction variables: Detecting and classifying sequences using a demand-driven SSA form. ACM Transactions on Programming Languages and Systems (TOPLAS) 17, 1 (Jan. 1995), 85--122.]]
[28]
GOFF, G., KENNEDY, K., AND TSENG, C.-W. Practical dependence testing. In Proceedings of the ACM SIGPLAN'91 Conference on Programming Language Design and Implementation (Toronto, Ontario, Canada, June 1991), vol. 26, pp. 15--29.]]
[29]
HAGHIGHAT, M., AND POLYCHRONOPOULOS, C. Symbolic program analysis and optimization for parallelizing compilers. In 5th Annual Workshop on Languages and Compilers for Parallel Computing, LNCS 757 (New Haven, Connecticut, 1992), Springer Verlag, pp. 538--562.]]
[30]
HAGHIGHAT, M. R. Symbolic Analysis for Parallelizing Compilers. Kluwer Academic Publishers, 1995.]]
[31]
HAGHIGHAT, M. R., AND POLYCHRONOPOULOS, C. D. Symbolic analysis for parallelizing compilers. ACM Transactions on Programming Languages and Systems 18, 4 (July 1996), 477--518.]]
[32]
HAVLAK, P. Interprocedural Symbolic Analysis. PhD thesis, Dept. of Computer Science, Rice University, 1994.]]
[33]
HAVLAK, P., AND KENNEDY, K. Experience with interprocedural analysis of array side effects. Supercomputing (1990), 952--961.]]
[34]
J. GU, Z. L., AND LEE, G. Experience with efficient array data flow analysis for array privatization. In Sixth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (June 1997), pp. 157--167.]]
[35]
KONG, X., KLAPPHOLZ, D., AND PSARRIS, K. The I Test: An improved dependence test for automatic parallelization and vectorization. IEEE Transactions on Parallel and Distributed Systems 2, 3 (1991), 342--349.]]
[36]
KUCK, D. The Structure of Computers and Computations, vol. 1. John Wiley and Sons, New York, 1987.]]
[37]
MATEEV, N., MENON, V., AND PINGALI, K. Fractal symbolic analysis. In proceedings of the International Conference on Supercomputing (ICS) (2001), pp. 38--49.]]
[38]
MAYDAN, D. E., HENNESSY, J. L., AND LAM, M. S. Efficient and exact data dependence analysis. In Proceedings of the Conference on Programming Language Design and Implementation (1991), ACM Press, pp. 1--14.]]
[39]
MUCHNICK, S. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Fransisco, CA, 1997.]]
[40]
POLYCHRONOPOULOS, C. Parallel Programming and Compilers. Kluwer, Boston, 1988.]]
[41]
PSARRIS, K. Program analysis techniques for transforming programs for parallel systems. Parallel Computing 28, 3 (2003), 455--469.]]
[42]
PSARRIS, K., KONG, X., AND KLAPPHOLZ, D. The direction vector I Test. IEEE Transactions on Parallel and Distributed Systems 4, 11 (November 1993), 1280--1290.]]
[43]
PSARRIS, K., AND KYRIAKOPOULOS, K. Measuring the accuracy and efficiency of the data dependence tests. In International Conference on Parallel and Distributed Computing Systems (2001).]]
[44]
PSARRIS, K., AND KYRIAKOPOULOS, K. The impact of data dependence analysis on compilation and program parallelization. In International Conference on Supercomputing (2003).]]
[45]
PUGH, W. The omega test: a fast and practical integer programming algorithm for dependence analysis. In Supercomputing (1991), pp. 4--13.]]
[46]
PUGH, W. Counting solutions to Presburger formulas: How and why. In ACM SIGPLAN Conference on Programming Language Design and Implementation (Orlando, FL, June 1994), pp. 121--134.]]
[47]
PUGH, W., AND WONNACOTT, D. Nonlinear array dependence analysis. In In 3rd Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers (1994).]]
[48]
RUGINA, R., AND RINARD, M. Symbolic bounds analysis of array indices, and accessed memory regions. In SIGPLAN Conference on Programming Language Design and Implementation (Vancouver, British Columbia, Canada, June 2000), pp. 182--195.]]
[49]
SHEN, Z., LI, Z., AND YEW, P.-C. An empirical study on array subscripts and data dependencies. In International Conference on Parallel Processing (1989), vol. 2, pp. 145--152.]]
[50]
SU, E., LAIN, A., RAMASWAMY, S., PALERMO, D., HODGES, E., AND BANERJEE, P. Advanced compilation techniques in the PARADIGM compiler for distributed-memory multicomputers. In 9th ACM International Conference on Supercomputing (Barcelona, Spain, July 1995), ACM Press, pp. 424--433.]]
[51]
TU, P., AND PADUA, D. Gated SSA-based demand-driven symbolic analysis for parallelizing compilers. In 9th ACM International Conference on Supercomputing (New York, July 1995), ACM Press, pp. 414--423.]]
[52]
VAN ENGELEN, R. Symbolic evaluation of chains of recurrences for loop optimization. Tech. rep., TR-000102, Computer Science Dept., Florida State University, 2000.]]
[53]
VAN ENGELEN, R., GALLIVAN, K., AND WALSH, B. Tight timing estimation with the Newton-Gregory formulae. In proceedings of CPC 2003 (Amsterdam, Netherlands, January 2003), pp. 321--330.]]
[54]
VAN ENGELEN, R. A. Efficient symbolic analysis for optimizing compilers. In Proc. of the ETAPS Conference on Compiler Construction 2001, LNCS 2027 (2001), pp. 118--132.]]
[55]
VAN ENGELEN, R. A., AND GALLIVAN, K. An efficient algorithm for pointer-to-array access conversion for compiling and optimizing DSP applications. In International Workshop on Innovative Architectures for Future Generation High-Performance Processors and Systems (IWIA) 2001 (Maui, Hawaii, 2001), pp. 80--89.]]
[56]
WOLFE, M. Beyond induction variables. In ACM SIGPLAN'92 Conf. on Programming Language Design and Implementation (San Fransisco, CA, 1992), pp. 162--174.]]
[57]
WOLFE, M. High Performance Compilers for Parallel Computers. Addison-Wesley, Redwood City, CA, 1996.]]
[58]
WOLFE, M., AND TSENG, C.-W. The power test for data dependence. IEEE Transactions on Parallel and Distributed Systems 3, 5 (1992), 591--601.]]
[59]
WU, P., COHEN, A., HOEFLINGER, J., AND PADUA, D. Monotonic evolution: An alternative to induction variable substitution for dependence analysis. In proceedings of the International Conference on Supercomputing (ICS) (2001), pp. 78--91.]]
[60]
YU, T. Z., CHEN, F., AND SHA, E. H.-M. Loop scheduling algorithms for power reduction. In Proc. of the IEEE International Conference on Acoustics, Speech, and Signal Processing (Seattle, Washington, May 1998).]]
[61]
ZIMA, E. Recurrent relations and speed-up of computations using computer algebra systems. In Proc. of DISCO'92 (1992), LNCS 721, pp. 152--161.]]
[62]
ZIMA, E. Simplification and optimization transformations of chains of recurrences. In Proc. of the International Symposium on Symbolic and Algebraic Computing (Montreal, Canada, 1995), ACM.]]
[63]
ZIMA, E. V. Automatic construction of systems of recurrence relations. USSR Computational Mathematics and Mathematical Physics 24, 11-12 (1986), 193--197.]]
[64]
ZIMA, H., AND CHAPMAN, B. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.]]

Cited By

View all
  • (2019)Precise reasoning with structured time, structured heaps, and collective operationsProceedings of the ACM on Programming Languages10.1145/33605833:OOPSLA(1-30)Online publication date: 10-Oct-2019
  • (2019)Memory-access-aware Safety and Profitability Analysis for Transformation of Accelerator-bound OpenMP LoopsACM Transactions on Architecture and Code Optimization10.1145/333306016:3(1-26)Online publication date: 18-Jul-2019
  • (2019)Composable, sound transformations of nested recursion and loopsProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3314221.3314592(902-917)Online publication date: 8-Jun-2019
  • Show More Cited By

Index Terms

  1. A unified framework for nonlinear dependence testing and symbolic analysis

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICS '04: Proceedings of the 18th annual international conference on Supercomputing
    June 2004
    360 pages
    ISBN:1581138393
    DOI:10.1145/1006209
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 26 June 2004

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tag

    1. compiler

    Qualifiers

    • Article

    Conference

    ICS04
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 629 of 2,180 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 12 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2019)Precise reasoning with structured time, structured heaps, and collective operationsProceedings of the ACM on Programming Languages10.1145/33605833:OOPSLA(1-30)Online publication date: 10-Oct-2019
    • (2019)Memory-access-aware Safety and Profitability Analysis for Transformation of Accelerator-bound OpenMP LoopsACM Transactions on Architecture and Code Optimization10.1145/333306016:3(1-26)Online publication date: 18-Jul-2019
    • (2019)Composable, sound transformations of nested recursion and loopsProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3314221.3314592(902-917)Online publication date: 8-Jun-2019
    • (2018)Combining range and inequality information for pointer disambiguationScience of Computer Programming10.1016/j.scico.2017.10.014152:C(161-184)Online publication date: 15-Jan-2018
    • (2018)K-DTThe Journal of Supercomputing10.1007/s11227-017-2187-374:4(1655-1675)Online publication date: 1-Apr-2018
    • (2018)An Analytical Evaluation of Data Dependence Analysis TechniquesInternational Journal of Parallel Programming10.1007/s10766-018-0577-7Online publication date: 18-May-2018
    • (2017)Pointer disambiguation via strict inequalitiesProceedings of the 2017 International Symposium on Code Generation and Optimization10.5555/3049832.3049848(134-147)Online publication date: 4-Feb-2017
    • (2017)Pointer disambiguation via strict inequalities2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)10.1109/CGO.2017.7863735(134-147)Online publication date: Feb-2017
    • (2015)Tree dependence analysisACM SIGPLAN Notices10.1145/2813885.273797250:6(314-325)Online publication date: 3-Jun-2015
    • (2015)Tree dependence analysisProceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2737924.2737972(314-325)Online publication date: 3-Jun-2015
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media