-g デバッグオプションを使用してコンパイルする場合、Sun Studio パフォーマンス解析ツールの一部である er_src(1) ユーティリティーを使用して、コンパイラにより生成されたソースコードの注釈を表示することができます。生成されたアセンブリ言語の注釈付きソースコードを表示することもできます。次に、er_src によって生成された、単純な do ループに関するコメントの例を示します。
demo% f95 -c -g -O4 do.f
demo% er_src do.o
Source file: /home/user21/do.f
Object file: do.o
Load Object: do.o
1. program do
2. common aa(100),bb(100)
関数 x は、ソースファイル do.f から次の行のコードにインライン化される
次のループは定常サイクル数 = 3 でスケジュールされました
次のループは 5 回、展開されました
次のループは繰り返しにつき 2 のロード、1 のストア、0 の先読み、1 の Fpadds、1 の
Fpmuls、0 の Fpdivs を行います
3. call x(aa,bb,100)
4. end
5. subroutine x(a,b,n)
6. real a(n), b(n)
7. v = 5.
8. w = 10.
次のループは定常サイクル数 = 3 でスケジュールされました
次のループは 5 回、展開されました
次のループは繰り返しにつき 2 のロード、1 のストア、0 の先読み、1 の Fpadds、1 の
Fpmuls、0 の Fpdivs を行います
9. do 1 i=1,n
10. 1 a(i) = a(i)+v*b(i)
11. return
12. end
|
コメントのメッセージにより、コンパイラにより実行された最適化処理の詳細が分かります。この例では、サブルーチンの呼び出しをインライン化し、ループを 5 回展開しています。この情報を検証することで、将来の最適化戦略に役立てることができるでしょう。
コンパイラのコメントおよび逆アセンブルコードの詳細については、Sun Studio のマニュアル『 プログラムのパフォーマンス解析 』を参照してください。