For many scientific and engineering applications efficient compilation of Fortran 90 code is of paramount importance in order to exploit computing power of high performance systems. Fortran 90 subroutine calls can cause serious performance losses if copy-in/copy-out argument passing has to be applied. We present an interprocedural cloning algorithm that prevents redundant argument copying. Our approach is novel with respect to utilizing probabilistic data-flow analysis, which allows us to identify profitable procedure clones, to control code growth by a parameterizable threshold, and to create multiple calls of procedure clones even for single call-sites. On high-performance systems experimental results illustrate the importance and effectivity of this kind of optimization. Keywords— Procedure Cloning, Fortran 90, Probabilistic Data-Flow Analysis.
[1]
Siegfried Benkner.
VFC: The Vienna Fortran Compiler
,
1999,
Sci. Program..
[2]
G. Ramalingam.
Data flow frequency analysis
,
1996,
PLDI '96.
[3]
Keith Daniel Cooper.
Interprocedural data flow analysis in a programming environment
,
1983
.
[4]
Probabilistic data flow system with two-edge profiling
,
2000,
DYNAMO '00.
[5]
K. Cooper,et al.
A Methodology for Procedure Cloning
,
1993,
Comput. Lang..
[6]
Mary Hall.
Managing interprocedural optimization
,
1992
.
[7]
Thomas W. Reps,et al.
Precise interprocedural dataflow analysis via graph reachability
,
1995,
POPL '95.