定数畳み込み
定数伝播とは、コンパイル時に数式内の値を既知の定数値に置き換える技法である。定数としては、定数畳み込みで述べたようなものの他に、定数値を引数とした Intrinsic Function(コンパイラが関数呼び出しではなく、機械語に置き換えてしまうような関数)も定数となる。次のC言語コードを見てみよう。
これに一回、定数伝播を適用すると、次のようになる。
これに同時に定数畳み込みを施すことが多く、そうするとさらに単純化される。
定数伝播を行うと、条件分岐が無条件の文に単純化されることがある。これは、条件文の条件式がコンパイル時に評価されて、常に真または偽となることが確定した場合である。これをさらに一般化して、プログラム自体の変換と見たものが部分評価である。