|
定数畳み込み(ていすうたたみこみ、)および定数伝播(ていすうでんぱ、)は、多くのコンパイラで使われている最適化技法である。定数伝播の進化したものを疎な条件分岐を考慮した定数伝播と呼び、定数伝播と同時にデッドコード削除も行って、より正確な伝播を行う。 == 定数畳み込み == 定数畳み込みとは、定数式をコンパイル時に単純化する技法である。定数式の項は一般に単純なリテラル(例えば、整数 2 )であるが、値が変更されない変数も定数式の項と見なせるし、明示的に定数とされる変数もある。次の式を考えてみよう。i = 320 * 200 * 32; 最近の多くのコンパイラは乗算命令を2つ生成することはしない。その代わりに、上記の式を計算した結果を定数値(この場合、2,048,000)とし、コンパイル時に中間表現上でその値に置き換えてしまう。 一部のコンパイラでは初期に定数畳み込みを行うため、C言語の配列初期化などで簡単な数式を使うことが可能となっている。ただし、最適化の後の方の工程で再度、定数畳み込みを行うことが多い。 定数畳み込みはコンパイラのフロントエンドで中間表現データ構造を使って行われ、その後、3番地コードに変換される。あるいは、バックエンドで定数伝播に付随して行われる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「定数畳み込み」の詳細全文を読む スポンサード リンク
|