疎な条件分岐を考慮した定数伝播(英: Sparse conditional constant propagation)とは、計算機科学におけるコンパイラ最適化手法の一つで、静的単一代入(SSA)形式に変換した後に適用されることが多い。

この手法は、プログラム全体に対してある種のデッドコードの除去と、定数畳み込みを同時に実施する。重複の回数によらず、単純なデッドコード削除と定数畳み込みより強力な方法である。

アルゴリズムはSSA形式のコードに抽象解釈を実施することにより働く。抽象解釈を実施する間、典型的には、値に対応する定数の値と定数のフラットな束と、束に対する大域的な SSA 変数と値の割り当てを用いる。アルゴリズムの最重要な点は分岐命令をどのように扱うかにある。分岐命令に遭遇すると、抽象化された値を、可能な限り正確に条件の変数に割り当てるようにする。

値が完全に正確で、抽象解釈で分岐のどちらに進むかが決定できる場合もある。値が定数ではない場合、あるいは条件文における変数が未定義の場合、保守的にいずれの分岐方向も残される。

抽象解釈が完了すると、到達しない命令はデッドコードとされる。定数であることが判明した SSA 変数は使用される箇所でインライン展開(伝播)される。

脚注

参考文献

  • Cooper, Keith D. and Torczon, Linda. Engineering a Compiler. Morgan Kaufmann. 2005.

量子情報処理にむけての クラスター変分法と確率伝搬法の定式化 ppt download

電気回路学Ⅱ コミュニケーションネットワークコース 5セメ 山田 博仁. ppt download

算法数理工学 第7回 定兼 邦彦. ppt download

Schematische Darstellung eines neuronalen Netzwerks und der neuronalen

【第七講義】 大域分岐. ppt download