研究概要 |
平成23年度は,昨年度の成果である要求駆動型部分無用コード除去(以降,DDPDEと呼ぶ)の論文を執筆し,論文誌に投稿するとともに(掲載済),次の新しい2つのコード最適化を提案し,コンパイラ共通基盤COINS上で実現した. 1.PREに基づく大域スケジューリングの拡張 2.大域ロード命令集約 以降で,実現したPREに基づく大域スケジューリングの拡張と,大域ロード命令集約について詳しく述べる. 1.PREに基づく大域スケジューリングの拡張 PREに基づく大域スケジューリングは,補償コードの挿入を含めて有効なスケジューリングが可能かどうかをデータフロー解析し,その結果を基にプログラムを変形する手法であり,同時にスケジューリングで生じる冗長性を除去したり,ループ内で依存する命令をスケジューリングを行ったりすることができる.本拡張では,スケジュール先に,可能性のあるすべての式を配置し,PREを適用することで,スケジュール元の選択順序によらず,並列にスケジューリングすることを可能にした.本手法をCOINS上に実現し,SPECベンチマークで,その有効性を確認した. 2.大域ロード命令集約 同じ配列への参照が近くに来るようにロード命令を並べ替えることで,キャッシュのヒット率を向上させる手法を提案した.本手法は,単に同じ配列への参照を近くに寄せるだけでなく,なるべく元の位置に近い場所を移動先とすることで,ロードされた値を格納する一時変数の生存区間を短くし,レジスタスピルを低減する効果をもつ.本手法をCOINS上に実現し,SPECベンチマークで,その有効性を確認した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
非メモリアクセス領域を関数として抽出する部分は,まだ実現していないものの,メモリアクセスを低減するための手法は,拡張および新規提案ともに実現できており,おおむね順調に進んでいると判断する.
|