静的単一代入形に基づく最適化に関する研究.pptVIP

静的単一代入形に基づく最適化に関する研究.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
静的単一代入形に基づく最適化に関する研究

静的単一代入形式に基づく最適化に関する研究 東京工業大学 大学院情報理工学研究科 佐々政孝 目標 静的単一代入形式(SSA形式) データフロー解析や最適化を見通しよく行える SSA形式に基づく変換と最適化をCOINSの低水準中間表現LIRの上に組み込む SSA形式への変換と逆変換 SSA形式上の種々の最適化と有用な変換 これにより,共通インフラストラクチャを教育,研究用基盤として有用なものとする 設計と実装の方針 複数のアルゴリズムが知られているもの  → 比較検討の上,採用するアルゴリズムを決定 共通インフラストラクチャとして  → 基本的な最適化を含める 研究基盤として活用できることの例示  → オリジナルなアルゴリズムによる最適化も含める アルゴリズムの比較評価のため  → アルゴリズムのヴァリエーションをオプションで指定できる 教育?研究基盤として  → 詳しい仕様書を提供,読解性?保守性のよいコーディング SSA形式への変換 2つの有力なアルゴリズムをプロトタイプで比較し,Cytron法(支配辺境を用いる)を採用. SSA形式から通常形式への 逆変換 主なアルゴリズム Briggsらの方法 Sreedharらの方法 これらを比較検討したところ,SSA逆変換の際に挿入されるコピー文の数などからSreedharらの方法が優位性があると認められた. 既存のコンパイラでは採用が稀であったが,Sreedharらの方法を採用した. その後この方針の妥当性が実証された Sreedhar法による目的コードの実行時間が最小 (後にBriggs法もCOINSに組み込んだ) SSA最適化  (1)基本的な最適化 (共通インフラストラクチャとして基本的な最適化を含める) コピー伝播,条件分岐を考慮した定数伝播,支配関係に基づく共通部分式除去,無用命令除去,無用φ命令除去,空ブロック除去,ループ不変計算のループ外移動,ループの帰納変数に関わる演算の強さの軽減と判定の置き換え. この他,前処理として,ループ構造の変換(while型ループを if-do-while型ループへ). SSA最適化  (2)高度最適化 大域的再結合(global reassociation) メモリ全体を一つの塊とみなす素朴な別名解析 効率的な質問伝播を用いた部分冗長性除去 (後者2つはこのSSA最適化部が研究基盤になることの例示として新たに考案したものを入れた) 最適化の例 条件付定数伝播 SSA最適化部の評価 (SPEC CPU2000) SSA最適化部の評価 (SPEC CPU2000) SSA最適化部の評価 (SPEC CPU2000) * * * * a = x + y a = a + 3 b = x + y SSA形式 (a) 通常形式 a1 = x0 + y0 a2 = a1 + 3 b1 = x0 + y0 (b) SSA形式 SSA形式:各変数の定義が字面上一つ. SSA形式  φ関数 (a) 通常形式 (b) SSA形式 a1 = 1 a2 = 2 a3 = f(a1:L1,a2:L2) … = a3 a = 1 a = 2 … = a L3 L2 L1 L1 L2 L3 a = x + y a = a + 3 b = x + y SSA形式最適化の例 (a) 通常形式 a1 = x0 + y0 a2 = a1 + 3 b1 = x0 + y0 (b) SSA形式 a1 = x0 + y0 a2 = a1 + 3 b1 = a1 (c) SSA形式最適化後 a1 = x0 + y0 a2 = a1 + 3 b1 = a1 (d) 最適化された通常形式 SSA変換 SSA形式最適化(共通部分式除去) SSA逆変換 SSA形式では,データフロー解析や最適化が見通しよく行なえる. 言語 解析 高水準中間表現(HIR) HIR to LIR 低水準中間表現(LIR) (通常形式LIR)  SSA最適化 コード 生成 ソース プログラム 目的 コード LIR-SSA変換 (3種類のヴァリエーション) SSA形式LIR SSA最適化  コピー伝播  共通部分式除去  質問伝播大域値番号付  条件付定数伝播  無用命令除去  ループ不変式移動  帰納変数の最適化 最適化された SSA形式LIR SSA-LIR逆変換 2種類 (1つは3種類のヴァリエーション) + 合併(2種類) 基盤部 約14,000行 SSA形式上の 有用な変換  危険辺の除去  無用φ除去  空ブロック除去 静的単一代入(SSA)形式最適化の構成図 0 100 200 300 400 500 600 700 800

文档评论(0)

精华文库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7111022151000002

1亿VIP精品文档

相关文档