Sun Studio 12: C ユーザーズガイド

B.2.81 -xcrossfile[= n]

最適化とインライン化を複数のソースファイルに渡って有効にします。n を指定する場合は、0 か 1 のいずれかです。

デフォルトは、-xcrossfile=0 で、ファイル間の最適化は行われません。-xcrossfile-xcrossfile=1 と同義です。

次にコマンド行の例を示します。


example% cc -xcrossfile -xO4 -c f1.c f2.c
example% cc -xcrossfile -xO4 -c f3.c f4.c

f1.c ファイルと f2.c ファイルの間、および f3.c ファイルと f4.c ファイルの間でクロスモジュールの最適化が行われます。f1.cf3.c または f4.c の間では最適化は行われません。

通常、コンパイラの解析のスコープは、コマンド行上の各ファイルに制限されます。たとえば、-xO4 の自動インライン化は、同じソースファイル内で定義および参照されるサブプログラムに制限されます。

-xcrossfile を指定すると、コンパイラは、コマンド行に指定したすべてのファイルを (1 つのソースファイルに連結したように) 解析します。-xcrossfile は、-xO4 または -xO5 と併用したときだけ有効です。

ただし、-S オプションを指定することによってアセンブリソースを生成するようコンパイラに指示している場合、このオプションは何の働きもしません。アセンブリ ( .s) ファイルは、ソースファイルにまたがる最適化およびインライン化に関係しません。

このオプションを使ってコンパイルされたファイルは、インライン化されたコードを 含む可能性があるため、相互に依存しています。したがって、プログラムにリンクす るときは、1 つの単位として使用しなければいけません。あるルーチンを変更したために、関連するファイルを再コンパイルした場合は、すべてのファイルを再コンパイルする必要があります。つまり、このオプションを使用すると、メイクファイルの構成にも影響があります。

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