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

prof-gen、Qprof-gen

プロファイルに基づく最適化 (PGO) で使用できるインストルメント済みオブジェクト・ファイルを生成します。

アーキテクチャーの制限

インテル® グラフィックス・テクノロジーをターゲットとする IA-32 アーキテクチャーおよびインテル® グラフィックス・テクノロジーをターゲットとするインテル® 64 アーキテクチャーでは利用できません。

構文

Linux* および OS X*:

-prof-gen[=keyword[,keyword],...]

-no-prof-gen

Windows®:

/Qprof-gen[:keyword[,keyword],...]

/Qprof-gen-

引数

keyword

インストルメント済みファイルの詳細を指定します。設定可能な値は以下のとおりです。

default

インストルメント済みオブジェクト・ファイルを生成します。これは、キーワードなしで [Q]prof-gen オプションを指定した場合と同じです。

srcpos

ソース位置の補足情報を含むインストルメント済みオブジェクト・ファイルを生成します。

globdata

グローバル・データ・レイアウト情報を含むインストルメント済みオブジェクト・ファイルを生成します。

[no]threadsafe

高度に並列化されたアプリケーションの PGO データを含むインストルメント済みオブジェクト・ファイルを生成します。 [Q]prof-gen オプションが keyword なしで指定された場合、デフォルトは nothreadsafe です。

インテル® Xeon Phi™ コプロセッサー x100 製品ファミリー (開発コード名 Knights Corner) をターゲットとするインテル® 64 アーキテクチャーでは、threadsafe モードのみ有効です。

デフォルト

-no-prof-gen または /Qprof-gen-

プロファイル生成は無効になります。

説明

このオプションは、プロファイルに基づく最適化 (PGO) で使用できるインストルメント済みオブジェクト・ファイルを生成します。 各基本ブロックの実行カウントを取得します。

[Q]prof-gen では複数の設定を指定できます。 例えば、次のように指定します。

-prof-gen=scrpos -prof-gen=threadsafe (Linux* および OS X*)
-prof-gen=scrpos, threadsafe (this is equivalent to the above)
/Qprof-gen:scrpos /Qprof-gen:threadsafe (Windows®)
/Qprof-gen:scrpos, threadsafe (this is equivalent to the above)

srcpos または globdata キーワードを指定すると、静的プロファイル情報ファイル (.spi) が作成されます。 これらの設定は、.spi ファイルの書き込み競合のため、並列ビルドを行うのに必要な時間が増加する可能性があります。

これらのオプションは、プロファイルに基づく最適化 (PGO) の第 1 フェーズで使用され、インストルメント済み実行の準備として、インストルメント済みコードをオブジェクト・ファイル内に生成するようにコンパイラーに指示します。

プロファイルを生成するためのインストルメント済みバイナリーファイルの生成に [Q]prof-gen オプションを使用すると、一部の最適化が無効になります。 これらの最適化は、生成されたプロファイルを使用する [Q]prof-use オプションを指定した後続のプロファイルに基づくコンパイルでは、無効になりません。

IDE オプション

Visual Studio®: [General (全般)] > [Profile Guided Optimization (プロファイルに基づく最適化)]

[General (全般)] > [Code Coverage Build Options (コードカバレッジのビルドオプション)]

Eclipse*: [Optimization (最適化)] > [Profile Guided Optimization (プロファイルに基づく最適化)]

Xcode*: なし

代替オプション

なし