大域的データフロー解析 agi.is.s.u-.pptVIP

  • 4
  • 0
  • 约3.12千字
  • 约 19页
  • 2016-12-13 发布于天津
  • 举报
大域的データフロー解析 流れグラフ 基本ブロックをnodeとし、 基本ブロック間の制御関係をedgeとするグラフを、 流れグラフという。 開始ブロック プログラムの開始点を含むブロック 到達定義 B: 基本ブロック gen[B] Bの中で生成され、 Bの終わりに到達する定義の集合 つまり、それ以降に同じ変数への定義はない。 kill[B] Bによって消滅する定義の集合 つまり、Bの中で定義される変数への定義で、 gen[B]に含まれないものの集合 到達定義 in[B] Bの先頭に到達する定義の集合 out[B] Bの終わりに到達する定義の集合 in[B]とout[B]はどうやって求めるのか? 到達可能性 何らかの経路を通って到達すればよい。 (控え目な判断) データの流れ方程式 in[B]とout[B]が満たすべき等式 in[B] = ∪ out[P]PはBの先行ブロック out[B] = gen[B] ∪ (in[B] - kill[B]) 前進型 inからoutを求める。 合併型 ∪を使う アルゴリズム(到達定義) for ?B do out[B] := gen[B] change := true while change dochange := falsefor ?B doin[B] := ∪ out[P]oldout := out[B]out[B] := gen

文档评论(0)

1亿VIP精品文档

相关文档