複数の IPO オブジェクト・ファイルの生成

多くの場合、IPO はリンク時のコンパイルで 1 つのオブジェクト・ファイルを生成します。これは、非常に大きいアプリケーションでは効率が悪く、最悪の場合、アプリケーションで -ipo を使用できないこともあります。この問題を回避するには、次の 2 つの方法のいずれかを行います。1 つめの方法は、サイズベースのヒューリスティックです。このヒューリスティックでは、大きいアプリケーションのリンク時のコンパイルにおいて複数のオブジェクト・ファイルを自動生成します。  2 つ目の方法は、明示的なコマンドライン・コントロールを 1 つまたは 2 つ使用して、マルチオブジェクト IPO を処理するようコンパイラに指示します。 

これらのオプションは、-ipo オプションの代わりとして使用されます。マルチオブジェクト IPO コンパイルを明示的に指示すると、サイズベースのヒューリスティックはオフになります。

リンク時のコンパイルで生成されるファイルの数は、-ipo_c または -ipo_S オプションが使用されていない限り表示されません。  この場合、コンパイラは番号をファイル名に追加します。  例えば、次のコマンドラインを考えてみます。

ifort a.o b.o c.o -ipo_separate -ipo_c

このコマンドラインで、a.ob.o、および c.o にはすべて IR が含まれているため、コンパイラは ipo_out.oipo_out1.oipo_out2.o、および ipo_out3.o を生成します。

最初のオブジェクト・ファイルには、グローバル・シンボルが含まれています。  その他のオブジェクト・ファイルは、ソースファイルに対応しています。

また、命名規則にはユーザ指定の名前が適用されます。  例:

ifort a.o b.o c.o -ipo_separate -ipo_c -o appl.o

コンパイラは、appl.oappl1.oappl2.o、および appl3.o を生成します。