编译原理 教学课件 作者 康慕宁 林奕 讲稿_7.pptVIP

  • 5
  • 0
  • 约1.5万字
  • 约 117页
  • 2019-10-09 发布于未知
  • 举报

编译原理 教学课件 作者 康慕宁 林奕 讲稿_7.ppt

LiveOut集合的计算 2、如果这组新的LiveOut集合上一轮迭代相比有所变化,则重新执行上述计算,直到所有节点的LiveOut集合都不再变化为止。 第一次迭代 LiveOut集合的计算 第二次迭代 本轮对LiveOut(B1)的计算得到了两个活跃变量b和c。其中,b是在B1的直接后继基本块B3中引用的,而c则是在B1的间接后继基本块B4中引用的(B1?B2?B4)。 考察其他LiveOut集合时可以发现,这些集合均没有发生变化。 LiveOut集合的计算 第三次迭代 重复上述计算可以看出,所有LiveOut集合都不再发生变化,因此结束活跃变量计算 LiveOut集合的计算 活跃变量的应用 结合上面的例子,对活跃变量的应用进行简要说明。 首先,根据对活跃变量集合的计算得到了以下的LiveOut集合组: LiveOut(B1) = { c, b } LiveOut(B2) = { c } LiveOut(B3) = { e } LiveOut(B4) = { e } LiveOut(B5) = ? 确定变量x是没有初始化的变量 无用变量或无用代码删除的安全性 7.5.3 过程间数据流分析 在进行数据流分析时除了需要考虑子程序内部变量、表达式的引用和定值情况之外,还需要考虑全局变量、参数传递(如C语言的指针做参数)等情况引起的子程序间变量依赖关系。 限于

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档