部分冗長除去に基づく大域命令スケジューリング
スポンサーリンク
概要
- 論文の詳細を見る
命令レベル並列性を高める有効な手法の1つとして,命令スケジューリングがある.特に,投機的実行を許す命令スケジューリングは,さらに並列度を高められる点で効果的であることが知られている.投機的実行は,元のプログラムに存在しなかった冗長性を導入する可能性があるので,1つの命令をスケジュールするたびに共通部分式の削除を適用することが効果的である.本発表では,共通部分式の削除で取り除くことができない部分冗長性を扱う部分冗長除去に注目し,部分冗長除去に基づく大域命令スケジューリングを提案する.本手法は,あるプログラム点に対して,投機的命令スケジューリングを含むコードの上方移動を行うごとに,部分冗長除去のデータフロー解析を適用する.解析結果から最適化効果が認められる場合,実際にプログラムを変更することで,命令スケジューリングを実現する.部分冗長除去の性質は,プログラムの実行パスを長くしないことを保証し,大域命令スケジューリングで問題となる補償コードを最適なプログラム点に自動的に挿入する.また,本手法は,ループ構造を認識することなく,ループスケジューリング手法の1つである,ループシフティングを実現することができる.さらに本論文では,本手法をCOINSコンパイラ・インフラストラクチャ上で実装し,最適化効果を検証する.
- 2007-08-15
著者
関連論文
- プログラムスライシングに基づく関心事グラフ構築
- 質問伝播に基づく投機的部分冗長除去
- 特集「最新コンパイラ技術とCOINSによる実践」の編集にあたって
- 静的単一代入形式を用いた最適化(発展編)(最新コンパイラ技術とCOINSによる実践)
- 静的単一代入形式を用いた最適化(導入編)(最新コンパイラ技術とCOINSによる実践)
- 部分冗長除去に基づく大域命令スケジューリング
- 式の出現に基づく大域値番号付け
- 部分冗長除去の命令スケジューリングへの応用
- コンパイラ・インフラストラクチャにおける静的単一代入形式最適化部の実現
- 疎な要求駆動型データフロー解析
- 高階移動エージェント向けJavaパッケージの開発 : 関数型言語実装の一手段
- 高階移動エージェントのロボット制御への応用 : 実用システムに向けて
- 一般支配関係の効率的な検査法
- 別名情報に基づくレジスタ促進
- May別名除去
- 別名情報による段階的詳細化に基づいた等価式発見
- 依存グラフを用いたコード移動妨害領域の効果的な除去法
- 拡張値グラフを用いた部分無効コード除去法
- 効率的な完全冗長除去
- 拡張値グラフを用いた部分無効コード除去法
- 拡張値グラフに基づく効果的な部分冗長除去法
- 拡張値グラフに基づくコード最適化 : 定数畳込みと強さの軽減
- 部分的無効コードの効率的除去法
- φ-関数移動による効率的な部分的冗長計算除去
- データフローグラフに基づく部分的冗長計算除去の拡張
- 配列の次元を考慮した大域ロード命令集約(学生及び若手(パラレルセッション:実装))
- 配列の次元を考慮した大域ロード命令集約(学生及び若手(パラレルセッション:実装))
- ARとジェスチャを用いたエージェント用インタフェースの開発(Al応用(1))