SSA の利点
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/08 08:22 UTC 版)
変数の性質を簡単なものにすることにより様々なコンパイラ最適化を簡略化すると同時にその結果を改善することが SSA の第一の利点である。 例として、下記のようなコードを考える。 y := 1 y := 2 x := y 人間であれば、最初の代入が不要であり、3行目で使用されている y の値が2行目の代入の結果であることが分かる。これをプログラムで行う場合には、reaching definition analysisにより求める必要がある。しかし、プログラムが静的単一代入形式であれば、いずれも即座に判定可能である。 y1 := 1 y2 := 2 x1 := y2 SSA を利用することにより、下記のコンパイラ最適化アルゴリズムを実現したり、あるいは改善することができる。 定数畳み込み 疎な条件分岐を考慮した定数伝播 デッドコード削除 大域値番号付け 部分冗長性除去 演算子強度低減 レジスタ割り付け
※この「SSA の利点」の解説は、「静的単一代入」の解説の一部です。
「SSA の利点」を含む「静的単一代入」の記事については、「静的単一代入」の概要を参照ください。
- SSA の利点のページへのリンク