高レベル最適化 (HLO) とは、Fortran や C++ といった高水準プログラミング言語で開発されたアプリケーションに含まれているループや配列など、ソースコード上の特性を利用した最適化手法です。これには、ループ交換、ループ融合、ループ展開、ループ分配、アンロール・ジャム、ブロッキング、データ・プリフェッチ、スカラ置換、データ・レイアウトの最適化といった手法があります。高レベルな最適化をオンにするオプションは -O3 です。
IA-32 および Itanium® ベース・アプリケーション | |
---|---|
-O3 | -O2 オプションに加えて、さらに強力な最適化 (例えば、ループ変換やプリフェッチ) を有効にします。-O3 は、最も高速になるように最適化を行いますが、パフォーマンスが向上しないプログラムもあります。 |
IA-32 アプリケーション | |
-O3 | ベクトル化オプション -ax{K|W|N|B|P} および -x{K|W|N|B|P} と -O3 を組み合わせて指定すると、-O2 よりも詳細にデータの依存性を分析します。そのためコンパイル時間が長くなる場合があります。 |
注
-fast オプションは、実行時のパフォーマンスを向上させる次のオプションを含めることで、プログラム全体にわたって実行速度を上げます:
-fast で設定されるオプションの 1 つを無効にするには、コマンドラインで -fast オプションの後に無効にするオプションを指定します。-fast で設定されるオプションは、バージョンによって変更になる場合があります。
特定のプロセッサ用に -fast の最適化を行うには、-x オプションのうちの 1 つを使用してください。
例:
prompt>icpc -fast -xW source_file.cpp