コンパイラーが指示するユーザー関数のインライン展開

ユーザーの指示がない場合、コンパイラーはアプリケーション・パフォーマンスを最適化するためにインライン展開するべき関数を見積もります。詳細は、「関数のインライン展開の条件」を参照してください。

以下のオプションは、アプリケーションがユーザー関数をインライン展開することで利点があるが、インライン展開の範囲に関しては特定の指示が必要ない場合に役立ちます。特に記述がない限り、これらのオプションは、IA-32 アーキテクチャー、インテル(R) 64 アーキテクチャー、および IA-64 アーキテクチャーでサポートされています。

Linux* および Mac OS* X

Windows*

効果

-inline-level

/Ob

関数のインライン展開のレベルを指定します。指定される値に応じて、インライン展開を有効または無効にできます。デフォルトでは、このオプションはコンパイラーがインライン展開できる関数だと判断した関数についてはすべてインライン展開を有効にします。

詳細は、次のトピックを参照してください。

-ip-no-inlining

/Qip-no-inlining

次のオプションによって通常有効になるインライン展開のみを無効にします。

  • Linux および Mac OS X: -ip または -ipo

  • Windows: /Qip/Qipo、または /Ob2

その他の IPO 最適化は無効になりません。

詳細は、次のトピックを参照してください。

-ip-no-pinlining

/Qip-no-pinlining

次のオプションによって通常有効になる部分的なインライン展開を無効にします。

  • Linux および Mac OS X: -ip または -ipo

  • Windows: /Qip または /Qipo

その他の IPO 最適化は無効になりません。

詳細は、次のトピックを参照してください。

-fno-builtin

/Qi-

組み込み関数のインライン展開を無効にします。組み込み関数の名前による認識サポートとその最適化を無効にします。このオプションは、標準ライブラリー・ルーチンを独自のバージョンで再定義し、そのルーチンのバージョンが標準ライブラリー・ルーチンと同じ名前の場合に使用します。

デフォルトでは、標準ライブラリー関数と算術ライブラリー関数のいくつかは、関数の呼び出し時点で、コンパイラーによって自動的にインライン展開されます。通常、この処理によって計算速度が速くなります。

詳細は、次のトピックを参照してください。

-inline-debug-info

/Qinline-debug-info

インライン展開される関数のソース情報を保持します。追加のソースコードは、インテル(R) デバッガーで使用することができ、インライン展開中にユーザー定義のコールスタックをトラックするのに使用できます。

このオプションを使用するには、デバッグを有効にするオプションも指定する必要があります。

  • Linux: -g

  • Mac OS X: このオプションはサポートされていません。

  • Windows: /debug

詳細は、次のトピックを参照してください。