Scalarizing Fortran 90 Array Syntax
Array syntax is an important feature introduced in Fortran 90. It adds more expressive power to the language by allowing operations and assignments on the array sections. Programmers will benefit from this new feature directly by writing simple and concise programs. The remaining work is left to compilers that finally compile these statements with array syntax onto targeted machines. This compiling process is usually called scalarization. One problem facing Fortran 90 compilers is the temporary arrays generated during the scalarization in order to maintain the semantics of the array syntax. For many years, techniques have been developed to avoid the use of temporary arrays in certain cases. In this paper, we will present two new approaches to improve the scalarization. Our approaches show that in certain cases, the temporary array can be eliminated or reduced, when exact dependence information can be obtained. By doing so, our approaches help improve the memory hierarchy performance on a single scalar machine, in terms of the memory bandwidth.