IA-32、インテル(R) EM64T、および Itanium(R) アーキテクチャーを対象とするコンパイルで、IPO を有効にするコマンドライン・オプションは同じです。
中間表現 (IR) を含む疑似オブジェクト・ファイルを作成するには、-ipo (Linux*) または /Qipo (Windows*) を使用して次のようにソースファイルをコンパイルします。
プラットフォーム |
コマンド例 |
---|---|
Linux |
icpc -ipo -c a.cpp b.cpp c.cpp |
Windows |
icl /Qipo /c a.cpp b.cpp c.cpp |
上記のコマンド例では、プラットフォームによって出力が異なります。
Linux: コマンドを実行すると、a.o、b.o、および c.o オブジェクト・ファイルが作成されます。
Windows: コマンドを実行すると、a.obj、b.obj、および c.obj オブジェクト・ファイルが作成されます。
.o ファイル (Linux) または .obj ファイル (Windows) が生成された後でコンパイルを停止するには、-c (Linux) または /c (Windows) を使用します。これらのファイルには、コンパイルされたソースファイルに対応するインテル(R) コンパイラーの中間表現 (IR) が含まれます。
インテル・コンパイラーまたはインテル・リンカー (xild (Linux)、xilink (Windows)) とリンクすることによって、プロシージャー間の最適化が実行できます。次の例では、実行ファイル app を作成します。
プラットフォーム |
コマンド例 |
---|---|
Linux |
icpc -oapp a.o b.o c.o |
Windows |
icl /Feapp a.obj b.obj c.obj |
このコマンドは、IR を含むオブジェクトに対してコンパイラーを実行して、リンクされるオブジェクトの新しい一覧を生成します。適切なリンカーオプションとともに icpc (Linux)、icl (Windows) の代わりに、xild ツール (Linux) または xilink ツール (Windows) を使用することができます。
次に例を示します。上記の例で使用した複数のコマンドを組み合わせて、1 つのコマンドにすることができます。
プラットフォーム |
コマンド例 |
---|---|
Linux |
icpc -ipo -oapp a.f b.f c.f |
Windows |
icl /Qipo /Feapp a.cpp b.cpp c.cpp |
上記の例のように、icl/icpc コマンドは指定されたオブジェクト・ファイルにリンクする GCC ld (Linux のみ) または Microsoft* link.exe (Windows のみ) を呼び出し、-o オプション (Linux) または /Fe オプション (Windows) で指定された実行ファイルを生成します。マルチファイル IPO は IR を含むソースファイルにだけ適用され、IR を含まないオブジェクト・ファイルはリンク段階に渡されます。