【编译原理笔记17】代码优化:数据流分析,到达定值分析,到达定值方程的计算.pdfVIP

【编译原理笔记17】代码优化:数据流分析,到达定值分析,到达定值方程的计算.pdf

  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文档。上传文档
查看更多
【编译原理笔记17】代码优化 :数据流分析,到达定值分析,到达定值⽅程的 计算 本次笔记内 : 8-5 数据流分析 8-6 到达定值分析 8-7 到达定值⽅程的计算 本节课幻灯⽚,见于我的 GitHub 仓库 : ⽂章 ⽬录 数据流分析 数据流分析(data-flow analysis) 数据流分析 :⼀组⽤来获取程序执⾏路径上的数据流信息的技术。 数据流分析应⽤ : 到达-定值分析(Reaching-Definition Analysis) 活跃变量分析(Live-Variable Analysis) 可⽤表达式分析(Available-Expression Analysis) 在每⼀种数据流分析应⽤中,都会把每个 程序点 和⼀个 数据流值 关联起来。 数据流分析模式 语句的数据流模式 IN [s] :语句s之前的数据流值 OUT [s] : 语句s之后的数据流值 f :语句s的传递函数(transfer function) s ⼀个赋值语句s之前和之后的数据流值的关系 传递函数的两种风格 信息沿执⾏路径前向传播(前向数据流问题) OUT [s] = f (IN [s]) s 信息沿执⾏路径逆向传播(逆向数据流问题) IN [s] = f (OUT [s]) s 基本块中相邻两个语句之间的数据流值的关系 设基本块B由语句s , s , … , s 顺序组成,则 1 2 n IN [si+1] = OUT [s ]i = 1, 2, … , n − 1 i 基本块上的数据流模式 到达定值分析 定值(Definition) :变量x的 定值 是(可能)将⼀个值赋给x的 语句 。 到达定值(Reaching Definition) : 如果 存在⼀条 从紧跟在定值d后⾯的点到达某⼀程序点p的路径,⽽且在此路径上d没有被 “杀死” (如果在此路径上有对变量x的其它定 值d′,则称变量x被这个定值 d′ “杀死 ”了) ,则称 定值 d 到达 程序点p。 直观地讲,如果某个变量x的⼀个定值d到达点p,在点p处使⽤的x的值 可能 就是由d 最后赋予 的。 例 :可以到达各基本块的⼊⼝处的定值 假设每个控制流图都有两个 空基本块 ,分别是表⽰流图的开始点的 ENT RY 结点和结束点的 EXIT 结点 (所有离开该图的控制流都流向它)。 如上,是哪些定值可以 到达 B 的⼊⼝处。 i 到达定值分析的主要⽤途 循环不变计算的检测 :如果循环中含有赋值x=y+z ,⽽y和z所有 可能的定值 都在 循环外⾯ (包括y或z是常数的特殊情况) ,那么y+z就是 循环不变计算 常量合并 :如果对变量 x 的某次使⽤ 只有⼀个定值 可以到达,并且该定值把 ⼀个常量赋给x ,那么可以简单地 把x替换为该常量 判定变量x在p点上是否 未经定值 就 被引⽤ “⽣成”与“杀死”定值 对于定值 d :u = v + w。这⾥, “+”代表⼀个⼀般性的 ⼆元运算符 。 该语句 “⽣成 ”了⼀个对变量u的定值d,并 “杀死 ”了程序中其它对u的定值。 到达定值的传递函数 f :定值d :u = v + w的传递函数,f (x) = gen ∪ (x − kill )。 d d d d fB :基本块B的传递

文档评论(0)

147****4268 + 关注
实名认证
文档贡献者

认真 负责 是我的态度

1亿VIP精品文档

相关文档