研究概要 |
本年度の成果は以下の通りである. (1)プログラム特化コードの分析:C言語用プログラム特化器C-Mix/IIを用いて,プログラム特化の際の,コード変形の傾向を調査した.ループを含むプログラムについては,ループが展開されることが多く,コードの肥大化につながりやすいことがわかった.特に多重ループを含むプログラムは,コードが大幅に肥大化する. (2)プログラム特化の選択的適用手法の開発:プログラム特化の際に適用されるループ展開を制御することにより,コード肥大化の回避を図った.通常,プログラム特化器は束縛時解析を行い,プログラム中の変数が事前計算可能な静的なものか,そうではない動的なものかを解析し,その結果に基づいて定数伝播,複写伝播,ループ展開,不要コードの削除等のプログラム解析を施す.静的変数を動的と解釈することは安全であり,またループ展開の抑止につながることに着目した.束縛時解析部の出力を加工することでプログラム特化器に一切の改変をすることなく,ループを含むプログラムを特化する際のコード肥大化を回避する手法を開発した.多くのプログラムについて,ループ展開を全く抑止しない場合と比べて実行速度は劣るものの,プログラム特化をしない場合よりは優る.効率(コードサイズの増加に対する実行速度向上率)では,ループを含む多くのプログラムについて,よい結果を示した. (3)プログラム特化コードを対象とするコード圧縮アルゴリズムの開発:今年度の計画として挙げていたが,開発は完了しておらず,来年も継続して行う.
|