-ipo-c オプション (Linux*) または /Qipo-c オプション (Windows*) と -ipo-S オプション (Linux) または /Qipo-S オプション (Windows) は、マルチファイル IPO の効果を解析する場合や、完成したプログラムになる前の複数のモジュール間でマルチファイル IPO の実験をする場合に便利です。
複数のファイル全体にわたって最適化を行い、オブジェクト・ファイルを生成するには、-ipo-c オプション (Linux) または /Qipo-c オプション (Windows) を使用します。このオプションを使用すると、ipo の解説で述べた最適化処理を行いますが、最後のリンク段階に進む前にその処理は停止し、最適化されたオブジェクト・ファイルはそのまま残ります。このファイルのデフォルトのファイル名は、ipo_out.s (Linux) または ipo_out.obj (Windows) です。-o オプション (Linux) または /Fe オプション (Windows) を使用して、別のファイル名を指定できます。次に例を示します。
プラットフォーム |
コマンド例 |
---|---|
Linux |
icpc -ipo-c -ofilename a.cpp b.cpp c.cpp |
Windows |
icl /Qipo-c /Fefilename a.cpp b.cpp c.cpp |
複数のファイル全体にわたって最適化を行い、アセンブリー・ファイルを生成するには、-ipo-S オプション (Linux) または /Qipo-S オプション (Windows) を使用します。このオプションを使用すると、ipo の解説で述べた最適化処理を行いますが、最後のリンク段階に進む前にその処理は停止し、最適化されたアセンブリー・ファイルはそのまま残ります。このファイルのデフォルトのファイル名は、ipo_out.s (Linux) または ipo_out.asm (Windows) です。
-o オプション (Linux) または /Fe オプション (Windows) を使用して、別のファイル名を指定できます。次に例を示します。
プラットフォーム |
コマンド例 |
---|---|
Linux |
icpc -ipo-S -ofilename a.cpp b.cpp c.cpp |
Windows |
icl /Qipo-S /Fefile a.cpp b.cpp c.cpp |
マルチオブジェクト IPO を使用した場合、これらのオプションは、複数の出力を生成します。最初のファイルの名前は、-o オプション (Linux) または /Fe オプション (Windows) で指定されるファイル名から取得します。それ以降のファイルの名前には、取得したファイル名に番号が追加されます。例えば、最初のオブジェクト・ファイルの名前が foo.o (Linux) または foo.obj (Windows) の場合、次のオブジェクト・ファイルの名前は foo1.o (Linux) または foo1.obj (Windows) となります。
コンパイラーは、生成される各オブジェクトまたはアセンブリー・ファイルの名前を示すメッセージを表示します。これらのファイルは、実際のリンク段階で追加することで、最終的なアプリケーションをビルドすることができます。
インライン化およびインライン化の最低基準についは、「関数のインライン展開の条件」および「コンパイラーが指示するユーザー関数のインライン展開」を参照してください。