Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1185448.1185450acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesacm-seConference Proceedingsconference-collections
Article

Toward efficient flow-sensitive induction variable analysis and dependence testing for loop optimization

Published: 10 March 2006 Publication History

Abstract

This paper presents a new approach to improve flow-sensitive induction variable analysis and data dependence testing on intermediate program representations, such as control-flow graphs with low-level operations representations in single static assignment forms. Current compiler techniques have difficulties optimizing loops that exhibit irregular control flow patterns. The inaccuracy of loop analysis results in conservative estimations of array-based data dependences in loops, which negatively affects the speedup of the loop via parallelization and vectorization. Our approach is based on a novel CR# (CR-sharp) algebra that effectively represents the value progressions of (conditionally) updated variables in loops. The CR# forms of induction variables are constructed with a new flow-sensitive induction variable recognition algorithm. We also developed a new CR#-based nonlinear data dependence test that enables loops to be more effectively optimized.

References

[1]
A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley Publishing Company, Reading MA, 1985.]]
[2]
O. Bachmann. Chains of Recurrences. PhD thesis, Kent State University, College of Arts and Sciences, 1996.]]
[3]
U. Banerjee. Dependence Analysis for Super computing. Kluwer, Boston, 1988.]]
[4]
D. Berlin, D. Edelsohn, and S. Pop. High-level loop optimizations for gcc. In Proceedings of the 2004 GCC Developers Summit, pages 37--54, 2004.]]
[5]
M. Gerlek, E. Stolz, and M. Wolfe. Beyond induction variables: Detecting and classifying sequences using a demand-driven SSA form. ACM Transactions on Programming Languages and Systems (TOPLAS), 17(1):85--122, jan 1995.]]
[6]
G. Goff, K. Kennedy, and C.-W. Tseng. Practical dependence testing. In proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation (PLDI), volume 26, pages 15--29, Toronto, Ontario, Canada, June 1991.]]
[7]
M. R. Haghighat and C. D. Polychronopoulos. Symbolic analysis for parallelizing compilers. ACM Transactions on Programming Languages and Systems, 18(4):477--518, July 1996.]]
[8]
S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Fransisco, CA, 1997.]]
[9]
D. Novillo. Tree SSA: A new optimization infrastructure for gcc. In Proceedings of the 2003 GCC Developers Summit, pages 181--193, 2003.]]
[10]
K. Psarris. Program analysis techniques for transforming programs for parallel systems. Parallel Computing, 28(3):455--469, 2003.]]
[11]
Z. Shen, Z. Li, and P.-C. Yew. An empirical study on array subscripts and data dependencies. In proceedings of the International Conference on Parallel Processing, volume 2, pages 145--152, 1989.]]
[12]
R. Tarjan. Depth first search and linear graph algorithms. SIAM Journal of Computing, 1(2):146--160, 1972.]]
[13]
P. Tu and D. Padua. Gated SSA-based demand-driven symbolic analysis for parallelizing compilers. In proceedings of the 9thACM International Conference on Supercomputing (ICS), pages 414--423, New York, jul 1995. ACM Press.]]
[14]
R. van Engelen. Efficient symbolic analysis for optimizing compilers. In proceedings of the ETAPS Conference on Compiler Construction 2001, LNCS 2027, pages 118--132, 2001.]]
[15]
R. van Engelen. The CR# algebra and its application in loop analysis and optimization. Technical report, Computer Science Dept., Florida State University, 2004.]]
[16]
R. van Engelen, J. Birch, and K. Gallivan. Array data dependence testing with the chains of recurrences algebra. In proceedings of the IEEE International Workshop on Innovative Architectures for Future Generation High-Performance Processors and Systems (IWIA), pages 70--81, January 2004.]]
[17]
R. van Engelen, J. Birch, Y. Shou, B. Walsh, and K. Gallivan. A unified framework for nonlinear dependence testing and symbolic analysis. In proceedings of the ACM International Conference on Supercomputing (ICS), pages 106--115, 2004.]]
[18]
M. Wolfe. Beyond induction variables. In ACM SIGPLAN'92 Conf. on Programming Language Design and Implementation, pages 162--174, San Fransisco, CA, 1992.]]
[19]
M. Wolfe. High Performance Compilers for Parallel Computers. Addison-Wesley, Redwood City, CA, 1996.]]
[20]
P. Wu, A. Cohen, J. Hoeflinger, and D. Padua. Monotonic evolution: An alternative to induction variable substitution for dependence analysis. In proceedings of the ACM International Conference on Supercomputing (ICS), pages 78--91, 2001.]]
[21]
E. Zima. Recurrent relations and speed-up of computations using computer algebra systems. In proceedings of DISCO'92, pages 152--161. LNCS 721, 1992.]]
[22]
H. Zima and B. Chapman. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.]]

Cited By

View all
  • (2011)Safe, multiphase bounds check elimination in JavaSoftware—Practice & Experience10.1002/spe.102841:7(753-788)Online publication date: 1-Jun-2011
  • (2008)Discovering Maximum Parallelization Using Advanced Data Dependence AnalysisProceedings of the 2008 10th IEEE International Conference on High Performance Computing and Communications10.1109/HPCC.2008.145(103-112)Online publication date: 25-Sep-2008
  • (2007)Flow-Sensitive Loop-Variant Variable Classification in Linear TimeLanguages and Compilers for Parallel Computing10.1007/978-3-540-85261-2_22(323-337)Online publication date: 1-Oct-2007
  • Show More Cited By

Index Terms

  1. Toward efficient flow-sensitive induction variable analysis and dependence testing for loop optimization

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ACMSE '06: Proceedings of the 44th annual ACM Southeast Conference
    March 2006
    823 pages
    ISBN:1595933158
    DOI:10.1145/1185448
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 March 2006

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. compiler algorithms
    2. induction variables
    3. loop parallelization
    4. recurrences

    Qualifiers

    • Article

    Conference

    ACM SE06
    ACM SE06: ACM Southeast Regional Conference
    March 10 - 12, 2006
    Florida, Melbourne

    Acceptance Rates

    ACMSE '06 Paper Acceptance Rate 100 of 244 submissions, 41%;
    Overall Acceptance Rate 502 of 1,023 submissions, 49%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)13
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 23 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2011)Safe, multiphase bounds check elimination in JavaSoftware—Practice & Experience10.1002/spe.102841:7(753-788)Online publication date: 1-Jun-2011
    • (2008)Discovering Maximum Parallelization Using Advanced Data Dependence AnalysisProceedings of the 2008 10th IEEE International Conference on High Performance Computing and Communications10.1109/HPCC.2008.145(103-112)Online publication date: 25-Sep-2008
    • (2007)Flow-Sensitive Loop-Variant Variable Classification in Linear TimeLanguages and Compilers for Parallel Computing10.1007/978-3-540-85261-2_22(323-337)Online publication date: 1-Oct-2007
    • (2006)An empirical evaluation of chains of recurrences for array dependence testingProceedings of the 15th international conference on Parallel architectures and compilation techniques10.1145/1152154.1152198(295-304)Online publication date: 16-Sep-2006

    View Options

    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