Meet the HP Superdome servers - 日本HP (ヒューレット・パッカード) - HP
Meet the HP Superdome servers - 日本HP (ヒューレット・パッカード) - HP
Meet the HP Superdome servers - 日本HP (ヒューレット・パッカード) - HP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
はじめに<br />
<strong>HP</strong> Itanium ベースのオプティマイザは、コードを変換し、Itanium TM ベースの <strong>HP</strong>-UX システム上でのコードの実行効率を<br />
高めます。オプティマイザは、アプリケーションのパフォーマンスを大幅に改善します。最適化のレベルが上がるほど実<br />
行される解析の複雑さが増すため、コンパイル時間とメモリ消費量は増大します。<br />
このドキュメントで取り扱う内容は、次のとおりです。<br />
• 最適化の 6 つのレベル<br />
• プロシージャ間の最適化<br />
• 高度な最適化オプションとプラグマ<br />
• プロファイル ベースの最適化<br />
最適化の 6 つのレベル<br />
最適化には、6 つのレベルがあります。各レベルは、下位レベルの上位集合となっています。追加のパラメータを使用し<br />
て、最適化の程度、コンパイル時間、生成される実行可能プログラムのサイズを制御できます。<br />
レベル ゼロ<br />
+O0<br />
説明:<br />
• 単純なレジスタ割り当て<br />
• 単純なスケジューリング(1 命令/サイクル、1 バンドル/サイクル)<br />
• ほとんどの場合、使用しないこと<br />
利点:<br />
コンパイル時間は最速。ただし、生成コードの質の点から、この最適化レベルを使用しないことを強く推奨します。<br />
レベル1<br />
+O1(デフォルト)<br />
説明:<br />
• 共通の部分式の削除、定数の畳み込み、ロード/ストアの削除など、単一基本ブロックを対象とするローカルな最適<br />
化<br />
• レベル ゼロより高度な命令スケジューリング<br />
• ローカル スカラー、C/C++ のフォーマル スカラーに対するレジスタ プロモーション<br />
• C++で、変換ユニット内の逆方向(backward) 呼び出しのインライン化<br />
利点:<br />
• +O0 より格段に高速なコードを生成、かつ、+O2 よりコンパイル時間が高速<br />
• コードのデバッグ性を維持<br />
レベル2<br />
+O2 または–O<br />
説明:<br />
• レベル 1 の最適化に加えて、関数全体を対象とする最適化を実行<br />
• 高速なコンパイル時間とパフォーマンス向上を保証するため、調整した経験則に基づいて、モジュール内インライン化<br />
を実行<br />
• グルーバル最適化、コード モーション(移動)、レジスタ プロモーションを実行<br />
• データ プリフェッチ、合計の削減(sum reduction)、スカラー置換、強度の低減(strength reduction)、アンローリング、イ<br />
ンクリメント後統合(post-increment syn<strong>the</strong>sis)など、ループ最適化を実行<br />
2