Abstract
One task of all Fortran 90 compilers is to scalarize the array syntax statements of a program into equivalent sequential code. Most compilers require multiple passes over the program source to ensure correctness of this translation, since their analysis algorithms only work on the scalarized form. These same compilers then make additional subsequent passes to perform loop optimizations such as loop fusion. In this paper we discuss a strategy that is capable of making advanced scalarization and fusion decisions at the array level. We present an analysis strategy that supports our advanced scalarizer, and we describe the benefits of this methodology compared to the standard practice. Experimental results show that our strategy can significantly improve the runtime performance of compiled code, while at the same time improving the performance of the compiler itself.
Chapter PDF
Similar content being viewed by others
References
J. R. Allen and K. Kennedy. Automatic translation of Fortran programs to vector form. ACM Transactions on Programming Languages and Systems, 9(4):491–542, October 1987. 222
J. R. Allen and K. Kennedy. Vector register allocation. IEEE Transactions on Computers, 41(10):1290–1317, October 1992. 220, 221, 223, 229
D. F. Bacon, S. L. Graham, and O. J. Sharp. Compiler transformations for high-performance computing. ACM Computing Surveys, 26(4):345–420, December 1994. 221
M. Burke and R. Cytron. Interprocedural dependence analysis and parallelization. In Proceedings of the SIGPLAN’ 86 Symposium on Compiler Construction, Palo Alto, CA, June 1986. 223
D. Callahan. A Global Approach to Detection of Parallelism. PhD thesis, Dept. of Computer Science, Rice University, March 1987. 221
M. Chen and J. Cowie. Prototyping Fortran-90 compilers for massively parallel machines. In Proceedings of the SIGPLAN’ 92 Conference on Programming Language Design and Implementation, San Francisco, CA, June 1992. 229
High Performance Fortran Forum. High Performance Fortran language specification. Scientific Programming, 2(1–2):1–170, 1993. 219
E Lewis, C. Lin, and L. Snyder. The implementation and evaluation of fusion and contraction in array languages. In Proceedings of the SIGPLAN’ 98 Conference on Programming Language Design and Implementation, Montreal, Canada, June 1998. 229
John D. McCalpin. A case study of some issues in the optimization of Fortran 90 array notation. Scientific Programming, 5:219–237, 1996. 221
G. Roth. Optimizing Fortran90D/HPF for Distributed-Memory Computers. PhD thesis, Dept. of Computer Science, Rice University, April 1997. 223
G. Roth and K. Kennedy. Dependence analysis of Fortran90 array syntax. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’96), Sunnyvale, CA, August 1996. 220, 223
G. Roth and K. Kennedy. Loop fusion in High Performance Fortran. In Proceedings of the 1998 ACM International Conference on Supercomputing, Melbourne, Australia, July 1998. 229
G. Sabot, (with D. Gingold, and J. Marantz). CM Fortran optimization notes: Slicewise model. Technical Report TMC-184, Thinking Machines Corporation, March 1991. 229
J. Warren. A hierachical basis for reordering transformations. In Conference Record of the Eleventh Annual ACM Symposium on the Principles of Programming Languages, Salt Lake City, UT, January 1984. 221
M. J. Wolfe. Optimizing Supercompilers for Supercomputers. The MIT Press, Cambridge, MA, 1989. 220, 221
M. J. Wolfe. High Performance Compilers for Parallel Computing. Addison-Wesley, Redwood City, CA, 1996. 221, 229
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Roth, G. (2000). Advanced Scalarization of Array Syntax. In: Watt, D.A. (eds) Compiler Construction. CC 2000. Lecture Notes in Computer Science, vol 1781. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46423-9_15
Download citation
DOI: https://doi.org/10.1007/3-540-46423-9_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67263-0
Online ISBN: 978-3-540-46423-5
eBook Packages: Springer Book Archive