研究概要 |
本年度は,リターゲッタブルコンパイラのコード生成の研究を推進するための基盤整備を行った。 まず,プロセッサ合成システムASIP Meisterのプロセッサアーキテクチャ記述を行うための「VLIWプロセッサ記述言語」を構文解析してプロセッサモデルをC++のデータ構造として構築する処理系を開発した。また、ASIP MeisterのVLIWプロセッサのモデルについて分析を行い、コード生成にどのような処理が必要になるかを検討した。この結果、従来からの懸案であったバイディング、スケジューリングの処理に加えて、リターゲッティングのためには各命令間の依存距離をフォワーディング回路を考慮して抽出することや、命令選択を行うためには言語に記述された命令を分解するなどの処理が新たに必要なことがわかった。命令間依存距離に関しては、その定式化を行い、フォワーディング回路が存在下でも正確な依存距離を抽出したり、逆にフォワーディング回路の設計ミスを検出するための方式を検討した。命令選択、バインディング、スケジューリングのアルゴリズムに関しても検討を行い、グラフ埋め込みを利用した命令選択、整数線形計画法を用いてバインディングとスケジューリンクを一度に解く方法などが有効であろうとの見通しを得た。 これと並行して、コンパイラの入力となるCプログラムの前処理系の構成を検討し、TrimaranシステムのImpactを用いてCプログラムを中間形式に変換する処理系を開発した。If-conversionを行ってhyperblockと呼ばれる構造を構築することが可能で、これにより条件付命令を持つDSPに対するコード生成を行うための準備を整えることができた。
|