-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 のマニュアル『 プログラムのパフォーマンス解析 』を参照してください。