インテル® Fortran コンパイラは、最適化レポートを生成、管理するオプションを提供します。
-opt_report は、最適化レポートを作成し、-opt_report_filefilename で指定されたファイルに配置します。 -opt_report_file が指定されていない場合、-opt_report はレポートを stderr に送ります。デフォルト状態はオフです。レポートは生成されません。
-opt_report_filefilename は、最適化レポートを作成し filename で指定されたファイルに送ります。
-opt_report_level{min|med|max} は、最適化レポートの詳細レベルを指定します。min 引数は概要を、max 引数は、完全なレポートを作成します。デフォルトは -opt_report_levelmin です。
-opt_report_routine [substring] は、名前の一部に substring を含むすべてのルーチンからレポートを作成します。[substring] が指定されていない場合、すべてのルーチンからのレポートが作成されます。デフォルトでは、コンパイル中のすべてのルーチンのレポートを作成します。
コンパイラは、-opt_report_phasephase オプションの phase 引数で指定される最適化機構のレポートを作成できます。
複数の最適化機構のレポートを作成するために同じコマンドライン上に複数回、オプションを使用できます。
現在、次の最適化機構レポートがサポートされています:
最適化機構の論理名 |
最適化機構のフルネーム |
ipo |
Interprocedural Optimizer (プロシージャ間の最適化機構) |
hlo |
High-level Language Optimizer (高水準言語の最適化機構) |
ilo |
Intermediate Language Scalar Optimizer (中間言語スカラ最適化機構) |
ecg |
Itanium®-based Compiler Code Generator (Itanium コンパイラのコード・ジェネレータ) |
all |
すべての最適化機構 |
上記の最適化機構の論理名の 1 つが指定されるとその最適化機構からのすべてのレポートが作成されます。例えば、-opt_report_phaseipo および -opt_report_phaseecg は、プロシージャ間の最適化機構およびコード・ジェネレータからのレポートを作成します。
各最適化機構は、特定の最適化を行うことができます。これらの各最適化は、論理名の 1 つがプリフィックスになります。次に例を示します。
Optimizer_optimization |
フルネーム |
ipo_inl |
Interprocedural Optimizer (プロシージャ間の最適化機構)、inline expansion of functions (関数のインライン展開) |
ipo_cp |
Interprocedural Optimizer (プロシージャ間の最適化機構)、copy propagation (コピー伝播) |
hlo_unroll |
High-level Language Optimizer (高水準言語の最適化機構)、loop unrolling (ループのアンロール) |
hlo_prefetch |
High-level Language Optimizer (高水準言語の最適化機構)、Prefetching (プリフェッチ) |
ilo_copy_propagation |
Intermediate Language Scalar Optimizer (中間言語スカラ最適化機構)、Copy Propagation (コピー伝播) |
ecg_swp |
Itanium®-based Compiler Code Generator (Itanium コンパイラのコード・ジェネレータ)、Software Pipelining (ソフトウェア・パイプライン処理) |
次のコマンドでは、Itanium コンパイラ のコード・ジェネレータ (ecg) のレポートを生成します。
ifort -c -opt_report -opt_report_phase ecg myfile.f
各アイテムの意味は次のとおりです。
-c は、オブジェクト・コードの生成時にコンパイラに停止するよう命令します。リンク時ではありません。
-opt_report は、レポート・ジェネレータを起動します。
-opt_report_phaseecg は、レポートを生成するフェーズ (ecg) を指定します。オプションとフェーズ間のスペースは任意です。
最適化機構内の特定の最適化のフルネームを指定する必要はありません。 数個の文字だけで十分です。 指定された最適化機構のプリフィックスと一致するすべての最適化レポートが作成されます。例えば、-opt_report_phase ilo_co が指定された場合、定数伝播およびコピー伝播の両方からのレポートが作成されます。
-opt_report_help オプションは、レポートの作成に現在利用可能な最適化機構と最適化の論理名をリストします。
IA-32 システムの場合、次のレポートを生成できます。
ilo
-O3 がオンの場合、hlo
-ip または -ipo でプロシージャ間の最適化を実行した場合、ipo
-O3 と -ip または -ipo がオンの場合、all (上記の最適化機構)
Itanium ベース・システムの場合、次のレポートを生成できます。
ilo
ecg
-O3 がオンの場合、hlo
-ip または -ipo でプロシージャ間の最適化を実行した場合、ipo
-O3 と -ip または -ipo がオンの場合、all (上記の最適化機構)
注
hlo または ipo のレポートを指定しても、制御オプション (-O3 と -ip または -ipo) がそれぞれオンではない場合、コンパイラは空のレポートを生成します。