PGO には 3 つの基本フェーズがあります。
-prof_genを使用して、インストルメント済み情報付きの実行ファイルを生成します。また、多くのプログラムに適した -prof_dir オプションを使用してください。特に、複数のディレクトリに渡るソース・ファイルを持つアプリケーションには使用してください。-prof_dir は、プロファイル情報が同じ場所で生成されることを保証します。. 次に例を示します。
prompt>icc -prof_gen -prof_dirc:\profdata -c a1.c a2.c a3.c
prompt>icc a1.o a2.o a3.o
prompt>ecc -prof_gen -prof_dirc:\profdata -c a1.c a2.c a3.c
prompt>ecc a1.o a2.o a3.o
2番目のコマンドの代わりにリンカを直接使用して、インストルメント済みプログラムを生成できます。
prompt>./a.o
作成される動的情報ファイルは、a.o を実行するたびに毎回別の名前と .dyn というサフィックスが付きます。また、このインストルメント済みファイルは、特定のデータセットでこのプログラムを実行したときの振舞いを予測するのに役立ちます。このプログラムは、入力データを変えて何度でも実行できます。
-prof_use を指定してソースファイルのコンパイルとリンクを行い、動的情報を使用して、そのプロファイルに従ってプログラムを最適化します。
最適化のほかに、コンパイラは pgopti.dpi ファイルを生成します。一般に、第1フェーズではデフォルトの最適化(-O2)を行い、第3フェーズでは、さらに高度な最適化(-ipo)を指定します。上の例では第1フェーズで -O2 を使用し、第3フェーズで -O2 -ipo を使用しました。
注
-prof_gen[x] オプションを使用すると、-prof_gen[x] オプションが無視されます。x修飾子を付けると、補足情報が収集されます。