Interprocedural compilation of Fortran D for MIMD distributed-memory machines
Mary W. Hall, Seema Hiranandani, Ken Kennedy, Chau Wen Tseng · 1992
Algorithms exist for compiling Fortran D for MIMD distributed-memory machines, but are significantly restricted in the presence of procedure calls. This paper presents interprocedural analysis, optimization, and code generation algorithms for Fortran D that limit compilation to only one pass over each procedure. This is accomplished by collecting summary information after edits, then compiling procedures in reverse topological order to propagate necessary information. Delaying instantiation of the computation partition, communication, and dynamic data decomposition is key to enabling interprocedural optimization. Recompilation analysis preserves the benefits of separate compilation. Empirical results show that interprocedural optimization is crucial in achieving acceptable performance for a common application. 1 Introduction Fortran D is an enhanced version of Fortran that allows the user to specify data placement---the partitioning of data onto processors. Its goal is to provide a m...