ここでは、最適化レポートの作成に関連するコンパイラー・オプション、代表的なレポート生成構文、およびレポートで利用可能な最適化フェーズについて説明します。
インテル(R) コンパイラーは、最適化レポートを生成、管理する次のオプションを提供します。
Windows* |
Linux* |
説明 |
---|---|---|
/Qopt-report |
-opt-report |
最適化レポートを生成して stderr に送ります。デフォルトでは、コンパイラーは最適化レポートを生成しません。 詳細は、次のトピックを参照してください。
|
/Qopt-report-phase |
-opt-report-phase |
レポートを生成する際に使用する最適化フェーズを指定します。サポートしているフェーズに関する詳細は、この後の「レポートを作成する最適化の指定」を参照してください。 詳細は、次のトピックを参照してください。
|
/Qopt-report-file |
-opt-report-file |
最適化レポートを作成し、指定されたファイル名にレポート出力を送ります。ファイルがローカル・ディレクトリーにない場合、出力ファイルへのフルパスを指定します。 このオプションは、opt-report オプションよりも優先されます。 詳細は、次のトピックを参照してください。
|
/Qopt-report-level |
-opt-report-level |
最適化レポートの詳細レベルを指定します。min 引数は概要レポートを、max 引数は完全なレポートを作成します。
詳細は、次のトピックを参照してください。
|
/Qopt-report-routine |
-opt-report-routine |
名前の一部に文字列を含むすべてのルーチンからレポートを生成し、その文字列を引数としてこのオプションへ渡します。指定されない場合、コンパイラーはすべてのルーチンからレポートを作成します。 詳細は、次のトピックを参照してください。
|
最適化レポートを生成するには次のような構文を使用します。
プラットフォーム |
構文例 |
---|---|
Linux |
icc -opt-report -opt-report-phase all prog.cpp |
Windows |
icl /Qopt-report /Qopt-report-phaseall prog.cpp |
これらのコマンド例は、レポートを生成して stderr に送るようにコンパイラーに指示し、レポートにすべての利用可能な最適化機構に関する情報を含めるように指定します。
ほとんどの場合、フェーズとして all を指定すると、非常に多くの情報が生成されます。
レポートを stderr ではなく出力ファイルに送る場合、-opt-report-file (Linux) または /Qopt-report-file (Windows) を使用し、出力ファイル名を指定します。-c (Linux) または /c (Windows) を指定し、リンカーを起動しないようコンパイラーに指示すると、オブジェクト・コードを生成後、コンパイラーは停止します。
コンパイラーは、-opt-report-phase オプション (Linux) または /Qopt-report-phase オプション (Windows) の phase 引数で指定される最適化機構のレポートを作成できます。次の最適化機構がサポートされています。
最適化機構フェーズ |
高レベルのカテゴリー |
---|---|
all |
すべてのフェーズ |
ecg |
Itanium(R) コンパイラー・コード・ジェネレーター
|
hlo |
高水準言語最適化機構 |
ilo |
中間言語スカラー最適化機構 |
ipo |
プロシージャー間の最適化機構 |
pgo |
プロファイルに基づく最適化機構 |
これらの最適化レポートの使用例は、「プロシージャー間の最適化 (IPO) レポート」、「高レベルな最適化 (HLO) レポート」および「ソフトウェアのパイプライン化 (SWP) レポート」を参照してください。
(上記の表のように) 論理名の 1 つが指定されると、その最適化機構からのすべてのレポートが作成されます。複数の最適化機構のレポートを作成するために同じコマンドライン上に複数回、オプションを使用できます。例えば、-opt-report-phase ipo -opt-report-phase hlo (Linux) または /Qopt-report-phase ipo /Qopt-report-phase hlo (Windows) を指定した場合、コンパイラーは、プロシージャー間の最適化機構と高レベルな最適化機構からのレポートを生成します。
次の表に、アーキテクチャー別の利用可能な最適化を示します。
アーキテクチャー |
サポートされている最適化機構 |
---|---|
IA-32、インテル(R) EM64T、および Itanium ベース・システム |
|
Itanium ベース・システムのみ |
|
各最適化機構の論理名は、特定のプロセッサーを対象にした多くの最適化をサポートします。しかし、これらの最適化では、最適化機構の論理名がプリフィックスとして使用されています。サポートされている最適化機構の名前をリストするには、-opt-report-help (Linux) または /Qopt-report-help (Windows) を入力します。次の表に、いくつかの例を示します。
最適化機構の最適化 |
説明 |
---|---|
ipo_inl |
プロシージャー間の最適化機構、関数のインライン展開 |
ipo_cp |
プロシージャー間の最適化機構、定数伝播 |
hlo_unroll |
高レベルな最適化機構、ループのアンロール |
hlo_prefetch |
高レベルな最適化機構、プリフェッチ |
ecg_swp |
Itanium コンパイラー・コード・ジェネレーター、ソフトウェアのパイプライン化 |
最適化機構内の特定の最適化のフルネームを指定する必要はありません。多くの場合、レポートの生成には数個の文字だけで十分です。一致するすべての最適化レポートが作成されます。
テキストベースの最適化レポートに加えて、インテル・コンパイラーは、インテル(R) VTune(TM) Linux 8.x の OptReport 機能を使用して最適化レポートをグラフィカルに表示するために必要な情報を生成できるようになりました。詳細は、VTune アナライザーのドキュメントを参照してください。
グラフィカル・レポート表示を生成するには、次のことを行う必要があります。
VT_ENABLE_OPTIMIZATION_REPORT 環境変数を ON に設定します。
(これは VTune アナライザーの環境設定です。コンパイラーがテキストベースの最適化レポートを生成する場合は必要ありません。)
最低でも、最適化レポートオプション -opt-report-phase および -opt-report-file を使用してアプリケーションをコンパイルします。
テキストベースのレポートと同じように、グラフィカル・レポート情報はすべてのアーキテクチャーで生成することができます。しかし、グラフィカル・レポートの表示は、インテル EM64T および IA-32 アーキテクチャーでのみ行うことができます。