IPO サンプル

IPO サンプルは、複数のファイルにわたるプロシージャー間の最適化 (IPO) の使用方法を示す目的で用意されています。また、これらのサンプルファイルで、IPO レポートの生成方法も示します。

コンパイラーに付属しているその他のサンプルについては、「サンプル」を参照してください。

サンプルファイルと保存場所

ソース

場所

ipo_sample_init.c

ipo_sample_main.c

ipo_sample_sum.c

ipo_sample_defs.h

Linux* および Mac OS*

<install-dir>/samples/ipo_samples/

Windows*

<install-dir>\samples\ipo_samples\

説明

これらのサンプルファイルは、マルチファイル IPO におけるプロセスと概念を示します。例えば、サンプルには、プログラム全体でプロシージャー間の最適化を使用してコンパイルされるソースの場合のみインライン展開される関数が含まれます。

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
Copyright (C) Microsoft Corporation. All rights reserved.

-out:ipo_sample_main.exe

Windows のみ: コンパイル・ディレクトリーには、実行ファイルに加えて新しいオブジェクト・ファイル (.obj) が作成されています。

Linux および Mac OS: オブジェクト・ファイル (.o) を作成するには、-c オプションを使用します。

これらのオブジェクト・ファイルには、関連するソースファイルのそれぞれに対応する中間表現が含まれています。これらの擬似オブジェクト・ファイルは、オブジェクト・ファイルを生成するために使用され、そのオブジェクト・ファイルは最終実行ファイルを生成するためにリンクフェーズで使用されます。

これらの擬似オブジェクト・ファイルとその使用方法についての詳細は、「IPO の使用」を参照してください。

実行ファイルを実行します。

プラットフォーム

コマンド

Linux および Mac OS

./a.out

Windows

ipo_sample_main