定数畳み込み
定数畳み込みとは、定数式をコンパイル時に単純化する技法である。定数式の項は一般に単純なリテラル(例えば、整数 2)であるが、値が変更されない変数も定数式の項と見なせるし、明示的に定数とされる変数もある。次の文(C言語)を考えてみよう。
最近の多くのコンパイラは乗算命令を2つ生成することはしない。その代わりに、上記の右辺式を計算した結果を定数値(この場合、2,048,000)とし、コンパイル時に中間表現上でその値に置き換えてしまう。
一部のコンパイラでは初期に定数畳み込みを行うため、C言語の配列初期化などで簡単な数式を使うことが可能となっている。ただし、最適化の後の方の工程で再度、定数畳み込みを行うことが多い。
定数畳み込みはコンパイラのフロントエンドで中間表現データ構造を使って行われ、その後、3番地コードに変換される。あるいは、バックエンドで定数伝播に付随して行われる。