インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

xi* ツールによるコンパイラー・レポートの生成

コンパイラー・オプション -qopt-report (Linux* および macOS*) と /Qopt-report (Windows*) は、最適化レポートをさまざまな詳細レベルで生成できます。「最適化レポートオプション」にリストされている関連するコンパイラー・オプションを使用して、フェーズの指定、(stderr ではなく) ファイルへの出力指示、名前の一部に特定の文字列を含むすべてのルーチンからのレポートを生成することができます。

xi* ツールは、IPO コンパイルの最終段階でプロシージャー間の最適化 (IPO) とともに使用されます。特定のオプションを使用して、コンパイラー・レポートを最終 IPO コンパイルで生成するように指定することができます。サポートされている xi* ツールは次のとおりです。

次の表は、最終 IPO コンパイル中に xi* ツールと一緒に使用できるコンパイラー・レポート・オプションのリストです。

最適化レポートオプション

説明

-qopt-report[=n] (Linux* および macOS*)

/Qopt-report[:n] (Windows*)

最適化レポートをさまざまな詳細レベルで生成できます。n の有効な値は、0 から 5 です。コンパイラーに値を渡さずにこのオプションを指定すると、デフォルトでは中レベルの詳細が含まれるレポートが生成されます。数値が大きいほど、より詳細なレポートが出力されます。

-qopt-report-file=filename (Linux* および macOS*)

/Qopt-report-file:filename (Windows*)

最適化レポートを作成し、指定されたファイル名 (file) にレポートを出力します。パスを指定しない場合、ファイルは現在のディレクトリーに作成されます。別のディレクトリーにファイルを作成するには、出力ファイルとファイル名へのフルパスを指定します。

-qopt-report-phase[=list] (Linux* および macOS*)

/Qopt-report-phase[:list] (Windows*)

レポートを生成する際に使用する最適化フェーズのカンマ区切りのリスト (list) を指定します。フェーズを指定しないと、コンパイラーによりデフォルトのすべてに設定されます。[Q]opt-report-help オプションを使用して、利用可能なすべてのフェーズのリストを表示できます。

IPO フェーズのレポートを生成するには、-qopt-report-phase=ipo (Linux* および macOS*) または /Qopt-report-phase:ipo (Windows*) を使用します。

-qopt-report-routine=substring (Linux* および macOS*)

/Qopt-report-routine:substring (Windows*)

名前の一部に指定する文字列 (substring) を含むすべてのルーチンからレポートを生成します。一連の文字列をカンマで区切って指定することもできます。その場合、コンパイラーは、それらの 1 つまたは複数の文字列が名前に含まれる各ルーチンの最適化レポートを生成します。

substring を指定しない場合、コンパイラーはすべてのルーチンのレポートを作成します。

-qopt-report-filter=string (Linux* および macOS*)

/Qopt-report-filter:string (Windows*)

string で指定されたアプリケーションの部分を検索し、その部分に対する最適化レポートを生成するように指定します。

-qopt-report-routine=string1-qopt-report-filter=string2 の両方を指定すると、-qopt-report-filter=string1;string2 として扱われます。

-qopt-report-help (Linux* および macOS*)

/Qopt-report-help (Windows*)

-qopt-report-phase (Linux* および macOS*) または /Qopt-report-phase (Windows*) オプションで利用可能な最適化フェーズを表示します。

-qopt-report-names (Linux* および macOS*)

/Qopt-report-names (Windows*)

最適化レポートでマングル名と非マングル名のどちらを使用するかを指定します。このオプションを指定しない場合は、デフォルトで非マングル名が使用されます。

mangled を指定すると、最適化レポートで名前にエンコード (修飾子) が追加されます。これは、アセンブリー・リストとアノテーションを一致させたい場合に適しています。unmangled を指定すると、最適化レポートで名前にエンコード (修飾子) は追加されません。これは、ソースリストとアノテーションを一致させたい場合に適しています。このオプションを使用する場合、-qopt-report (Linux* および macOS*) または /Qopt-report (Windows*) オプションを指定する必要はありません。

関連情報