Pruned SSA
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/08 08:22 UTC 版)
「静的単一代入」の記事における「Pruned SSA」の解説
Pruned SSA 形式は非常に簡単な観察:すなわち「 Φ 関数は、それ以降に『生存している』変数にのみ必要であるに基づいており(ここでの「生存」とは変数の値が問題の Φ 関数から始まるパス上で使用されることを意味する)、変数が「生存」していなければ、Φ 関数の結果が使用されることはなく、Φ 関数による割り当ては無効である。 Pruned SSA を構築する場合には、Φ 関数を挿入する際に、生存変数情報(live variable information)を用いて与えられた Φ 関数が必要なのかどうかを判断する。もともとの変数が Φ 関数を挿入する場所ですでに「生存」していなければ、Φ 関数は挿入されない。 刈り込み(pruning)を扱うもう一つの方法としてデッドコード削除の問題がある。Φ 関数は、入力プログラム内の変数の使用箇所のいずれかがΦ 関数に置き換えられる場合のみ SSA 形式に Φ 関数が各変数の参照箇所は、その変数を支配する最も近い定義に置き換えられる。最低でも一箇所の参照箇所ないし生きた Φ 関数の引数を支配する最も近い定義であれば、生きているとみなすことができる。
※この「Pruned SSA」の解説は、「静的単一代入」の解説の一部です。
「Pruned SSA」を含む「静的単一代入」の記事については、「静的単一代入」の概要を参照ください。
- Pruned SSAのページへのリンク