- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;
?数据流分析理论与框架
?到达定值分析
?可用表达式分析
?活跃变量分析
?局部优化/全局优化;
?代码优化
O在目标代码中消除不必要的指令
O把一个指令序列替换为一个完成相同功能的更快的指令序列
?全局优化
?基于数据流分析技术
O用以收集程序相关信息的算法;
?编译器只能通过一些相对低层的语义等价转换来优化代码
?冗余运算的原因
O源程序中的冗余
O高级程序设计语言编程的副产品
?比如A[i][j].f=0;A[i][j].k=1;中的冗余运算
?语义不变的优化
O公共子表达式消除
O复制传播
O死代码消除
O常量折叠;
自动化重构技术:
重写规则:
(1)with上下文管理器重写规则;
(2)推导表达式重写规则;
(3)lambda表达式重写规则;
(4)yieldfrom重写规则;
(5)map、reduce、filter、sorted重写规则;
(6)装饰器重写规则等;
拟实现方法:
?源码静态分析,生成AST树
?对AST树进行规则匹配,并完成相应替换;;;;
?数据流分析
O用于获取数据沿着程序执行路径流动的信息的相关技术
O是优化的基础
?例如
O两个表达式是否一定计算得到相同的值?(公共子表达式)
O一个语句的计算结果有没有可能被后续语句使用?(死代码消除);
?程序点
O三地址语句之前或之后的位置
O基本块内部:一个语句之后的程序点等于下一个语句之前的程序点
O如果流图中有B1到B2的边,那么B2的第一个语句之前的点可能紧跟在B1的最后语句之后的点后面执行
?从p1到p2的执行路径:p1,p2,…,pn
O要么pi是一个语句之前的点,且pi+1是该语句之后的点
O要么pi是某个基本块的结尾,且pi+1是该基本块的某个后继的开头;
?出现在某个程序点的程序状态
O在某个运行时刻,当指令指针指向这个程序点时,各个变量和动态内存中存放的值
O指令指针可能多次指向同一个程序点
?因此一个程序点可能对应多个程序状态
?数据流分析把可能出现在某个程序点上的程序状态集合总结为一些特性
O不管程序怎么运行,当它到达某个程序点??,程序状态总是满足分析得到的特性
O不同的分析技术关心不同的信息
?为了高效、自动地进行数据流分析,通常要求这些特性能够被高效地表示和求解;;
?分析得到的性质集合应该是一个安全的估计值
O即根据这些性质进行优化不会改变程序的语义;
?数据流值
O某个程序点所有可能的状态集合的抽象表示
O和某个程序点关联的数据流值:程序运行中经过这个点时必然满足的这个条件
?域
O所有可能的数据流值的集合
?不同的应用选用不同的域,比如到达定值
O目标是分析在某个点上,各个变量的值由哪些语句定值
O因此数据流值是定值(即三地址语句)的集合,
表明集合中的定值对某个变量定值了;
?基于控制流的约束
OIN[si+1]=OUT[si];
?假设我们考虑各个变量在某个程序点上是;
s1:x=3;
?基本块的控制流非常简单
O从头到尾不会中断
O没有分支
?基本块的效果就是各个语句的效果的复合
?可以预先处理基本块内部的数据流关系,给出基本块对应的传递函数;
IN[B]=fB(OUT[B])或者
OUT[B]=fB(IN[B])
?设基本块包含语句s1,s2,…,snfB=fsn?…?fs2?fs1;
?前向数据流问题
OB的传递函数根据IN[B]计算得到OUT[B]
OIN[B]和B的各前驱基本块的OUT值之间具有约束关系
?逆向数据流问题
OB的传递函数根据OUT[B]计算IN[B]
OOUT[B]和B的各后继基本块的IN值之间具有约束关系;
s:z=x+y;
?数据流分析理论与框架
?到达定值分析
?可用表达式分析
?活跃变量分析
?
您可能关注的文档
- 安全生产智能化保障技术(第2版)课件:现代智能技术.pptx
- 安全生产智能化保障技术(第2版)课件:智能专家系统.pptx
- 安全生产智能化保障技术(第2版)绪论.pptx
- 爆破工程(第3版)课件:爆破安全要求.pptx
- 爆破工程(第3版)课件:爆炸及其爆破的基本知识.pptx
- 爆破工程(第3版)课件:爆炸器材与爆破方法.pptx
- 爆破工程(第3版)课件:地下工程掘进爆破.pptx
- 爆破工程(第3版)课件:构 (建) 筑物拆除爆破与特种爆破.pptx
- 爆破工程(第3版)课件:露天爆破技术 .pptx
- 爆破工程(第3版)课件:露天爆破技术.pptx
- 党委中心组学习发言:学习贯彻中央经济工作会议精神,开创2025年高质量发展新篇章.docx
- 党员干部2024年度民主生活会“四个带头”对照检查材料.docx
- 2025年某市市直机关全面从严治党工作要点.docx
- 某市城市管理局党组书记、局长2024年度述职述廉述学述法报告.docx
- 2024年度领导班子年度考核工作述职报告.docx
- 在2025年全市财政工作会议上的讲话提纲.docx
- 在2025年市企业家座谈会上的讲话.docx
- 市直单位2024年组织生活会个人对照检查发言材料.docx
- 市水利局党组书记、局长2024年度述职述廉述学述法报告.docx
- 乡镇党委民主生活会互相批评会议记录.docx
文档评论(0)