Skip to main content

The Advantages of Instance-Wise Reaching Definition Analyses in Array (S)SA

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1656))

Abstract

Several parallelizing or general-purpose compilers have been using intermediate representations based on some form of single-assignment. Extending these representations to arrays has been done in two ways: Array SA, and Array SSA, the extension of the widely-used Static Single Assignment (SSA). We formally define and compare Array SA and Array SSA, and show that (1) They both need instance-wise reaching-definition analyses to (a) be streamlined and (b) allow a parallelizing compiler to choose the most appropriate form, (2) The “same name - same value” property holds for Array SSA in a restricted way only.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, Mass, 1986.

    Google Scholar 

  2. B. Alpern, M. N. Wegman, and F. K. Zadeck. Detecting equality of variables in programs. In ACM Symp. on Principles of Programming Languages (PoPL), pages 1–11, January 1988.

    Google Scholar 

  3. B. S. Baker. An algorithm for structuring programs. J. of the ACM, 24:98–120, 1977.

    Article  MATH  Google Scholar 

  4. D. Barthou. Array Dataflow Analysis in Presence of Non-affine Constraints. PhD thesis, Univ. Versailles, February 1998.

    Google Scholar 

  5. D. Barthou, A. Cohen, and J.-F. Collard. Maximal static expansion. In ACM Symp. on Principles of Programming Languages (PoPL), pages 98–106, San Diego, CA, January 1998.

    Google Scholar 

  6. R. Bodĺk and S. Anik. Path-sensitive value-flow analysis. In ACM Symp. on Principles of Programming Languages (PoPL), pages 237–251, San Diego, CA, January 1998.

    Google Scholar 

  7. R. Bodĺk and R. Gupta. Partial dead code elimination using slicing transformations. In ACM SIGPLAN Conf on Prog. Lang. Design and Implem. (PLDI), pages 159–170, Las Vegas, Nevada, January 1997.

    Google Scholar 

  8. M. M. Brandis and H. Mssenbck. Single-pass generation of static single-assignment form for structured languages. ACM Trans. on Prog. Languages and Systems, 16(6):1684–1698, November 1994.

    Article  Google Scholar 

  9. F. Chow, S. Chan, R. Kennedy, S.-M. Liu, R. Lo, and P. Tu. A new algorithm for partial redundancy elimination based on ssa form. In ACM SIGPLAN Conf on Prog. Lang. Design and Implem. (PLDI), pages 273–286, Las Vegas, Nevada, June 1997.

    Google Scholar 

  10. F. Chow, S. Chan, S.-M. Liu, R. Lo, and M. Streich. Effective representation of aliases and indirect memory operations in ssa form. In Int. Conf on Compiler Construction (CC’96), pages 253–267, 1996.

    Google Scholar 

  11. J.-F. Collard. Array SSA: Why? how? how much? Technical report, PRISM, U. of Versailles, 1998.

    Google Scholar 

  12. J.-F. Collard, D. Barthou, and P. Feautrier. Fuzzy array dataflow analysis. In ACM SIGPLAN Symp. on Principles and Practive of Parallel Prog. (PPoPP), pages 92–102, Santa Barbara, CA, July 1995.

    Google Scholar 

  13. J.-F. Collard and J. Knoop. A comparative study of reaching definitions analyses. Technical Report 1998/22, PRISM, U. of Versailles, 1998.

    Google Scholar 

  14. E. Duesterwald, R. Gupta, and M.-L. Soffa. A practical data flow framework for array reference analysis and its use in optimization. In ACM SIGPLAN’93 Conf. on Prog. Lang. Design and Implementation, pages 68–77, June 1993.

    Google Scholar 

  15. P. Feautrier. Array expansion. In ACM Int. Conf. on Supercomputing, St Malo, pages 429–441, 1988.

    Google Scholar 

  16. P. Feautrier. Dataflow analysis of scalar and array references. Int. Journal of Parallel Programming, 20(1):23–53, February 1991.

    Article  MATH  Google Scholar 

  17. M. Griebl and J.-F. Collard. Generation of synchronous code for automatic parallelization of while loops. In S. Haridi, K. Ali, and P. Magnusson, editors, EUROPAR’ 95, Lecture Notes in Computer Science 966, pages 315–326. Springer-Verlag, 1995.

    Google Scholar 

  18. K. Knobe and V. Sarkar. Array SSA form and its use in parallelization. In ACM Symp. on Principles of Programming Languages (PoPL), pages 107–120, San Diego (CA), January 1998.

    Google Scholar 

  19. J. Knoop, O. Rüthing, and B. Steffen. Code motion and code placement: Just synonyms? In Proceedings of the 7th European Symposium on Programming (ESOP’98), volume 1381, pages 154–169, Lisbon, Portugal, May 1998.

    Google Scholar 

  20. C. Lapkowski and L. J. Hendren. Extended SSA numbering: Introducing SSA properties to languages with multi-level pointers. In K. Koskimies, editor, Compiler Construction CC’98, volume 1383 of LNCS, pages 128–143, Lisbon, Portugal, March 1998. Springer-Verlag.

    Chapter  Google Scholar 

  21. B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Global value numbers and redundant computations. In ACM Symp. on Principles of Programming Languages (PoPL), pages 12–27, 1988.

    Google Scholar 

  22. A. V. S. Sastry and R. D. C. Ju. A new algorithm for scalar register promotion based on SSA form. In ACM SIGPLAN Conf on Prog. Lang. Design and Implem. (PLDI), pages 15–25, Montreal, Canada, June 1998.

    Google Scholar 

  23. P. Tu and D. Padua. Automatic array privatization. In Proc. Sixth Workshop on Languages and Compilers for Parallel Computing, number 768 in Lecture Notes in Computer Science, pages 500–521, August 1993. Portland, Oregon.

    Google Scholar 

  24. P. Tu and D. Padua. Gated SSA-Based demand-driven symbolic analysis for parallelizing compilers. In ACM Int. Conf. on Supercomputing, pages 414–423, Barcelona, Spain, July 1995.

    Google Scholar 

  25. D. G. Wonnacott. Constraint-Based Array Dependence Analysis. PhD thesis, University of Maryland, 1995.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Collard, JF. (1999). The Advantages of Instance-Wise Reaching Definition Analyses in Array (S)SA. In: Chatterjee, S., et al. Languages and Compilers for Parallel Computing. LCPC 1998. Lecture Notes in Computer Science, vol 1656. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48319-5_22

Download citation

  • DOI: https://doi.org/10.1007/3-540-48319-5_22

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66426-0

  • Online ISBN: 978-3-540-48319-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics