Oracle Solaris Studio 12.2: C ユーザーガイド

B.2.96 -xinline=list

list for -xinline の書式を次に示します。[{%auto ,func_name,no%func_name }[,{%auto,func_name, no%func_name}]...]

-xinline は、オプションのリストで指定した関数だけのインライン化を試行します。リストには、空白のリストか、func_nameno%func_name%auto をコンマで区切ったリストを指定します。ここでの func_name は関係数を表します。-xinline は、-xO3 以上の最適化レベルでだけ有効です。

表 B–26 -xinline のフラグ

フラグ  

意味  

%auto

コンパイラでソースファイル内のすべての関数を自動的にインライン化するように指定します。%auto は、-xO4 以上の最適化レベルでだけ有効です。%auto は、-xO3 以下の最適化レベルでは無視されます。

func_name

指定した関数をコンパイラでインライン化するように指定します。 

no%func_name

指定した関数をコンパイラでインライン化しないように指定します。 

値のリストは、左から右に累積されます。したがって、-xinline=%auto,no%foo と指定した場合は、foo 以外のすべての関数のインラインが試行されます。-xinline=%bar,%myfunc,no%bar と指定した場合は、myfunc だけのインライン化が試行されます。

最適化レベルを -xO4 以上に設定してコンパイルすると、通常はソースファイルで定義されたすべての関数参照のインライン化が試行されます。-xinline オプションを使用することで、特定の関数をインライン化しないように制限できます。引数として関数名や %auto を指定せずに、-xinline= だけを指定した場合は、ソースファイル中のルーチンはいずれもインライン化されません。リストで func_name および no%func_name%auto なしで指定した場合は、リストで指定した関数のオンラインオプションだけが試行されます。最適化レベルが -xO4 以上のときに、-xinline オプションのリストで %auto を指定した場合は、no%func_name で明示的に除外していない関数がすべてインライン化されます。

次のいずれかの条件に該当する場合、ルーチンはインライン化されません。警告は出力されませんので注意してください。

コマンド行で -xinline を複数指定した場合は、それらは累積されません。コマンド行で最後に指定した -xinline によって、コンパイラがインライン化する関数が決定されます。

-xldscope も参照してください。