インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
IPO についての一般的な最適化ガイドラインを示します。
大規模なプログラムで IPO を使用すると、ほかのコンパイラーの最適化フェーズの内部制限を引き起こすことがあります。
C++ アプリケーションの最適化では、IPO と PGO を組み合わせることが重要なポイントです。O3、[Q]ipo、および [Q]prof-use コンパイラー・オプションを使用することで、パフォーマンスが向上することがあります。
プログラム全体の解析を行うための十分な中間言語 (IR) カバレッジを持たないアプリケーションは、完全な IR 情報を持つアプリケーションに比べると、最適化は十分に行われません。
一般的なガイドラインに加えて、IPO を使用するときに回避するべき作業があります。次にその回避する作業を示します。
異なるコンパイラーでアプリケーション用に生成された擬似オブジェクト・ファイルを使用して、IPO コンパイルのリンクフェーズを行わないでください。インテル® コンパイラーは、別のコンパイラーで生成された擬似オブジェクト・ファイルで最適化の機会を検証することはできません。
擬似ファイルが [Q]prof-use コンパイラー・オプションを使用してコンパイルされた場合を除いて、[Q]prof-use コンパイラー・オプションを使用して擬似ファイルをリンクしないでください。
makefile を更新して、スクリプトから IPO を使用する際に適切なインテル・リンカーを呼び出してください。Linux* および macOS* の場合、ld のインスタンスをすべて xlid に置換してください。Windows* の場合は、link のインスタンスをすべて xilink に置換してください。