研究概要 |
1.本研究は,コード移動に基づく最適化一般に対して,データフロー解析の共通な枠組みを,カスタマイズしやすい形で実現する.本研究の目的は次のとおりである. (1)オブジェクト指向記述が可能な関数型言語によって,コンポーネントからなる変更が容易なコンパイラを記述する. (2)コンパイラの各コンポーネントを組み合わせて,基本最適化や新しい最適化を実現する. (3)VLIWアーキテクチャ用の最適化や並列プログラム用の最適化を実現する. 2.平成14年度に得た成果は次のとおりである. (1)既成のコンパイラlccが生成する中間表現を入力とするバックエンドを,関数型言語OCamlを用いて実現した. このバックエンドは,OCamlのクラス表現によって,制御フローグラフクラス,データフロー解析クラス,別名解析クラス,支配木クラス,支配辺境クラス等にモジュール化してあり,メソッドを使って容易に利用し,組み合わせることができる.また,記述を関数型言語によって実現してあるので,記述の付加や変更も容易である. (2)(1)のコンパイラ上に,従来得られなかった別名情報を発見できる最適化手法を実現した(研究発表2). この手法は,コンパイラのデータフロー解析クラスを利用して実現している. (3)同様に,(1)のコンパイラ上に,冗長なロード命令を従来研究以上に除去できる最適化手法を実現した(研究発表1). この手法は,(2)と同様に,データフロー解析クラスを利用して実現している.
|