C++ ユーザーズガイド

-xinline=f[,...f]

指定されたルーチンをインライン展開します。


注 -

このオプションは C++ インライン関数には影響しません。+d オプションとも関係ありません。


このオプションを指定すると、オプティマイザは、コンマで区切って指定されたユーザー作成関数とサブルーチンをインライン展開します。インライン展開とは、コンパイラが関数呼び出しを実際のサブプログラムのコードで実質的に置き換える最適化技法の 1 つです。インライン展開を使えば、オプティマイザが効率的なコードを生成する可能性が高くなります。

次の制約があります。警告は出されません。


demo% cat example.cc
static int twice ( int i ) { return 2*i; }
int main() {return twice( 3 ); }
demo% CC -compat=4 -O example.cc
demo% nm -C a.out | grep twice
[37]  | 68068|8|FUNC|LOCL|0|7|twice(int) [__0FFtwicei]
demo% CC -compat=4 -O -xinline=__0FFtwicei example.cc

相互の関連性

リストに指定した関数が extern "C" で宣言されていない場合は、関数名が符号化されます。実行可能ファイルに対して nm コマンドを使用すれば、符号化された関数名を知ることができます。関数が extern "C" で宣言されている場合は、名前はコンパイラによって符号化されません。

最適化レベルが -x03 より低い場合、-xinline オプションは何の働きもしません。 -x04 では、オプティマイザは、インライン展開するべき関数を決定します (この決定は、 -xinline オプションを指定しなかった場合も行われます)。-x04 では、コンパイラもまた、インライン展開した場合にパフォーマンスの向上につながる関数を特定しようとします。-xinline を使用して関数を強制的にインライン展開した場合、実際にはパフォーマンスが低下することがあります。

関連項目

nm(1)、 +d