インテル(R) コンパイラーは、次の 2 つの方法で、実行ファイル内の関数のレイアウトを最適化します。
関数順序リストを使用する
/Qipo (Windows) コンパイラー・オプションを使用する
2 つの方法にはそれぞれ長所があります。proforder によって作成される関数順序リストを使用すると、非スタティック関数 (すなわち、リンカーに対して関数名を公開する外部関数およびライブラリー関数) のレイアウトを最適化できます。
コンパイラーは、他のコンパイラーでコンパイルされた関数 (ライブラリー関数など) のレイアウト順序を操作できません。IPO がアクティブな場合、関数レイアウトの最適化は自動的に実行されます。
関数の型 |
IPO コードレイアウト |
proforder による関数の順序配置 |
---|---|---|
スタティック |
X |
影響なし |
外部関数 |
X |
X |
ライブラリー関数 |
影響なし |
X |
関数順序リストを作成するには、次のガイドラインに従ってください。
順序リストは非スタティック関数の順序にのみ影響します。
関数レベルのリンクを有効にするには、/Gy オプションを使用してコンパイルする必要があります (このオプションは、/O1 または /O2 オプションのいずれかを指定するとアクティブになります)。