実際のオブジェクト・ファイルの生成

状況によっては、-ipo を使用して実際のオブジェクト・ファイルを生成する必要があります。IPO を行う場合、擬似オブジェクト・ファイルではなく実際のオブジェクト・ファイルを強制的に生成するために、ipo_obj オプションと -ipo オプションを組み合わせて使用します。

次の場合は、-ipo_obj を使用する必要があります:

バージョン番号による .il ファイルの管理

IPO コンパイルは、コンパイル・フェーズとリンクフェーズの 2 つに分けて行われます。コンパイル・フェーズでは、コンパイラは中間言語 (IL) バージョンのコードを生成します。リンクフェーズでは、コンパイラは IL を読み込んでコンパイルを完了し、実際のオブジェクト・ファイルまたは実行ファイルを生成します。

一般に、コンパイラのバージョンが異なると、異なる定義に基づいて IL が生成されるため、IL は互換がない場合があります。インテル® Fortran コンパイラは各コンパイラの IL 定義に独自のバージョン番号を割り当てます。コンパイラがバージョン番号が異なるファイルの IL を読み込もうとすると、コンパイルは続行されますが、IL は破棄され、コンパイルでは使用されません。コンパイラはその後、互換性のない IL が検出され破棄されたという警告メッセージを出力します。

インテル® コンパイラが生成した IL は、.il という拡張子の付いたファイル名で ライブラリに保存されます。 このライブラリがライブラリに配置された IL を生成した同じコンパイラで起動されて IPO コンパイルに使用された場合、コンパイラはライブラリから .il を抽出してプログラムの最適化に使用することができます。例えば、ライブラリで定義されている関数を、ユーザのソースコードにインライン展開することができます。