IPO サンプルは、複数のファイルにわたるプロシージャー間の最適化 (IPO) の使用方法を示す目的で用意されています。また、これらのサンプルファイルで、IPO レポートの生成方法も示します。
コンパイラーに付属しているその他のサンプルについては、「サンプル」を参照してください。
ソース |
場所 | ||||
---|---|---|---|---|---|
ipo_sample_init.c ipo_sample_main.c ipo_sample_sum.c ipo_sample_defs.h |
|
これらのサンプルファイルは、マルチファイル IPO におけるプロセスと概念を示します。例えば、サンプルには、プログラム全体でプロシージャー間の最適化を使用してコンパイルされるソースの場合のみインライン展開される関数が含まれます。
IPO を有効にしてすべてのソースをコンパイルします。(これらのオプションを適切なコンパイラー・オプションと組み合わせて IPO レポートを生成できます。)
プラットフォーム |
コマンド |
---|---|
Linux および Mac OS |
icc -ipo ipo_sample_main.c ipo_sample_init.c ipo_sample_sum.c |
Windows |
icl /Qipo ipo_sample_main.c ipo_sample_init.c ipo_sample_sum.c |
コンパイラーは、多くの IPO ステージでメッセージを生成します。次の例は、典型的なメッセージです。(Mac OS メッセージは、Linux でリストされているメッセージに似ていますが、リンカーフェーズのメッセージは異なります。)
プラットフォーム |
ステータスメッセージ |
---|---|
Linux |
ipo: remark #11000: マルチファイル最適化を実行しています。 ipo: remark #11005: オブジェクト・ファイル /tmp/ipo_iccAQnHsp.o を生成しています。 |
Windows |
ipo: remark #11000: マルチファイル最適化を実行しています。 ipo: remark #11005: オブジェクト・ファイル ipo_3964.obj を生成しています。 Microsoft (R) Incremental Linker
Version 8.00.50727.42 -out:ipo_sample_main.exe |
Windows のみ: コンパイル・ディレクトリーには、実行ファイルに加えて新しいオブジェクト・ファイル (.obj) が作成されています。
Linux および Mac OS: オブジェクト・ファイル (.o) を作成するには、-c オプションを使用します。
これらのオブジェクト・ファイルには、関連するソースファイルのそれぞれに対応する中間表現が含まれています。これらの擬似オブジェクト・ファイルは、オブジェクト・ファイルを生成するために使用され、そのオブジェクト・ファイルは最終実行ファイルを生成するためにリンクフェーズで使用されます。
これらの擬似オブジェクト・ファイルとその使用方法についての詳細は、「IPO の使用」を参照してください。
実行ファイルを実行します。
プラットフォーム |
コマンド |
---|---|
Linux および Mac OS |
./a.out |
Windows |
ipo_sample_main |