Sun Studio 12: Fortran プログラミングガイド

9.1.4.2 副プログラムの呼び出しを削減する

副プログラムがループの深い入れ子から呼び出されると、何千回と呼び出される可能性もあります。呼び出しごとの各ルーチン内で消費される時間は少なくても、その合計の影響はかなりのものです。また、副プログラムの呼び出しは、その呼び出しを含むループの最適化を抑制します。 なぜなら、コンパイラは、その呼び出しのレジスタの状態に関して仮定を行うことができないからです。

副プログラム呼び出しの自動インライン化 (-inline=x,y,..z、または -O4 を使用する) は、コンパイラが実際の呼び出しを副プログラム自身で置き換える (副プログラムをループの中に入れる) ための 1 つの方法です。インライン化されるべきルーチンの副プログラムのソースコードは、呼び出し側のルーチンと同じファイルに存在しなければいけません。

副プログラム呼び出しを削減する方法はほかにもあります。