2M-2
効率的な要求駆動型部分冗長除去
○澄川靖信,滝本宗宏(東理大)
コンパイラのコード最適化の1つである部分冗長除去は,
プログラム全体から冗長な式を除去する強力な手法である.
部分冗長除去は,プログラム全体を網羅的に解析するのが一般的であるが,
各式の出現ごとに冗長性を除去することによって解析範囲を限定できることが多い,要求駆動型の手法も提案されてきている.
しかしながら,従来の要求駆動型の手法は,
網羅型の手法よりも解析時間が長くなることがあった.
 本研究では,式の値に基づいた番号を生成し,
プログラムの実行経路上に存在する番号を利用することによって解析範囲を限定する手法を提案する.本手法は,番号に基づいた手法なので,
異なる字面の式の冗長性も除去できる.
 本手法をCコンパイラ上で実装し,従来法と比較したところ,
解析時間と目的コードの実行時間の両方を向上させることを確認した.