定数伝播
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:40 UTC 版)
定数伝播とは、コンパイル時に数式内の値を既知の定数値に置き換える技法である。定数としては、定数畳み込みで述べたようなものの他に、定数値を引数とした Intrinsic Function(コンパイラが関数呼び出しではなく、機械語に置き換えてしまうような関数)も定数となる。次のC言語コードを見てみよう。 int x = 14;int y = 7 - x / 2;return y * (28 / x + 2); これに一回、定数伝播を適用すると、次のようになる。 int x = 14;int y = 7 - 14 / 2;return y * (28 / 14 + 2); これに同時に定数畳み込みを施すことが多く、そうするとさらに単純化される。 定数伝播を行うと、条件分岐が無条件の文に単純化されることがある。これは、条件文の条件式がコンパイル時に評価されて、常に真または偽となることが確定した場合である。これをさらに一般化して、プログラム自体の変換と見たものが部分評価である。
※この「定数伝播」の解説は、「定数畳み込み」の解説の一部です。
「定数伝播」を含む「定数畳み込み」の記事については、「定数畳み込み」の概要を参照ください。
- 定数伝播のページへのリンク