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

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

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

以下のオプションは、アプリケーションがユーザー関数をインライン展開することで利点があるが、インライン展開の範囲に関しては特定の指示が必要ない場合に役立ちます。

オプション

効果

inline-level(Linux* および macOS*) または Ob (Windows*)

関数のインライン展開のレベルを指定します。

/Ob2 (Windows*) オプションと -inline-level=2 (Linux* および macOS*) オプションは同等です。設定可能な値は、0、1、および 2 です。

[Q]ip-no-inlining

[Q]ip[Q]ipo、または Ob2 オプションによって有効になるインライン展開のみを無効にします。

[Q]ip-no-pinlining

[Q]ip オプションまたは [Q]ipo オプションによって有効にされた部分的なインライン展開を無効にします。

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

fno-builtin (Linux* および macOS*) または Oi- (Windows*)

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

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

libirclibm、または svml ライブラリーの多くのルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより高度に最適化されます。

debuginline-debug-info

インライン展開される呼び出しのソース位置情報に置換せずに、インライン展開された関数のソース位置情報が保持されることを示します。

関連情報