Data parallel languages like High Performance Fortran (HPF) are emerging
as the architecture independent mode of programming distributed memory
parallel machines. In this paper, we present the interprocedural
optimizations required for compiling applications having irregular data
access patterns, when coded in such data parallel languages. We have
developed an Interprocedural Partial Redundancy Elimination (IPRE)
algorithm for optimized placement of runtime preprocessing routine and
collective communication routines inserted for managing communication in
such codes. We also present three new interprocedural optimizations:
placement of scatter routines, deletion of data structures and use of
coalescing and incremental routines. We then describe how program slicing
can be used for further applying IPRE in more complex scenarios. We have
done a preliminary implementation of the schemes presented here using the
Fortran D compilation system as the necessary infrastructure. We present
experimental results from two codes compiled using our system to
demonstrate the efficacy of the presented schemes.
(Also cross-referenced as UMIACS-TR-95-43