アライメント |
スタックの適切な境界でデータを格納すること。 |
代替ループ変換 |
ループのコピーを生成し、境界のサイズに応じて新しいループを実行する最適化。 |
分岐カウント・プロファイラ |
プログラムが各分岐文を実行する回数をカウントするツール。このツールは、プログラムがどのように実行されたかを示すデータベースも生成します。 |
分岐確率データベース |
分岐カウント・プロファイラによって生成されるデータベース。データベースには各分岐が実行された回数も含まれます。 |
キャッシュ・ヒット |
プロセッサが必要とする情報がキャッシュ内にある状況。 |
呼び出しサイト |
呼び出しサイトは、呼び出し命令の直前の命令と呼び出し命令から成る。 |
共通部分式の排除 |
冗長な計算を検出して結合する最適化。 |
条件文 |
特定の条件が真 (true) であるかどうかによって行う操作。 |
定数の伝播 |
ルーチンの引数を実際の定数値に置換する最適化。その後、コンパイラは実際の引数として使用される定数値を伝播します。 |
不変分岐 |
常に同じ分岐が行われる条件文。 |
定数の畳込み |
プログラムを実行する場合に、演算のために数と演算子を格納する代わりに、定数式を評価して結果を使用する最適化。 |
コピーの伝播 |
変数を使用する代わりに、割り当てられた値を使用して不必要な割り当てを排除する最適化。 |
データフロー |
システム内のデータの流れ。 |
不要コードの排除 |
未使用値を生成するコードやプログラム中で実行されないコードを排除する最適化。 |
ダイナミック・リンク |
ランタイム時に、共有オブジェクトがプログラムの仮想アドレス空間にマップされるプロセス。 |
空の宣言 |
セミコロンの前に何も記述されていない宣言。 |
フレームポインタ |
現在のスタックのベースアドレスを保持し、スタックフレームのアクセスに使用されるポインタ。 |
インライン関数の展開 |
各関数呼び出しを、拡張された関数に置換する最適化。 |
誘導変数の排除 |
追加分のみを使用して、複雑な配列インデックス計算処理を減らすする最適化。 |
命令スケジューリング |
複数の命令を並列に実行できるように、生成された機械語命令を並べ替える最適化。 |
命令のシーケンス化 |
効率的でない命令を、特定のプロセッサの機能を利用する命令シーケンスに置換する最適化。 |
プロシージャ間の最適化 |
ライブラリ・ルーチンを除くプログラム全体に適用される最適化。 |
ループ・ブロッキング |
内部ループの反復をすべて完了する前に、外部ループの反復を実行できるように命令の実行順を並べ替える最適化。 |
ループのアンロール |
ループの反復数を減らすために、ループ内で実行された文を複製する最適化。 |
ループ不変コードの移動 |
ループ内で変更されない演算の複数のインスタンスを検出する最適化。 |
パディング |
サイズおよびアライメント条件に一致するように、各データ型の最後にバイトまたはワードを追加すること。 |
プリロード |
ベクトルを一度に 1 つのキャッシュでロードする最適化。ループの演算中に外部バスのターンアラウンドの数が減ります。 |
プロファイリング |
プログラムの実行に関する詳細情報を生成するプロセス。 |
レジスタ変数の検出 |
メモリに格納する必要がない変数を検出して、レジスタ変数に配置する最適化。 |
副作用 |
コードサイズや処理時間を増加させる可能性がある最適化プロセスの結果。 |
スタティック・リンク |
プログラムで使用している関数を含むオブジェクト・ファイルのコピーをリンク時に実行ファイルに組込むプロセス。 |
ストレングス・レダクション |
追加分のみを使用して、複雑な配列インデックス計算処理を簡素化する最適化。 |
ストリップ・マイニング |
キャッシの中に保持できるベクトルで内部ループ演算を可能にするためにネストのレベルを追加する最適化。この最適化により内部ループのサイズが減るため、内部ループで必要なすべてのデータがキャッシュに格納できるようになります。 |
トークンペースト |
コメントで分離された 2 つのトークンを 1 つとして扱うプロセス (例えば、a/**/b は ab になる)。 |
変換 |
コードの再配置。対照的に、最適化とはランタイム・パフォーマンスの向上が保証されているコードの再配置です。 |
未到達コード |
コンパイラで決して実行されない命令。 |
未使用コード |
プログラム中で使用されない結果を生成する命令。 |
変数名の変更 |
別の要素を参照する変数のインスタンス名を変更する最適化。 |