マシンコード変換による最適化コンパイラ
スポンサーリンク
概要
- 論文の詳細を見る
移植可能コンパイラは通常、マシンに依存しない中間コードを生成し、それからコード生成部でマシンコードを生成する。移植のときにはコード生成部だけを書き換える。ところが、最適化されたコードを、生成するためには、コード生成部で多くの場合分けが必要で、しかもマシンにより異なるので、移植は実際には容易ではない。マシンに依存しない最適化を中間コードに対して行うこともあるが、中間コードが複雑になって、コード生成部の書き換えはさらに困難になる。コード生成後に、マシンの記述に従って覗穴的最適化(peephole optimization)を行うものもある。オプティマイザ自体はマシン非依存だが、特定のマシン向けのコンパイラに匹敵する性能がでる。このようにした場合の利点は、コード生成部は単純な中間コードから単純なマシンコードへの変換でよいこと、マシンに依存した共通部分式など、コード生成前には発見できないような最適化を行えることである。しかし、マシンコードに対する最適化では、以下で述べるように、通常あまり表に出て来なかった問題を含んでおり、既存のオプティマイザでは、適当な仮定をおいて問題を避けている。ここでは、現在製作中の、マシンコードの最適化を行うコンパイラの概要を述べ、問題点と解決方法を示す。
- 一般社団法人情報処理学会の論文
- 1988-09-12