- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
优化对代码进行的变换必须遵守以下原那么:
1.等价原那么:经优化的代码执行结果不变;
2.有效原那么:优化后确实执行时间短、占用空间少;
3.合算原那么:以较低的代价,换取较好的优化效果。;该语句段的中间代码见P274图10.2;i:=m-1;j:=n;
T1:=4*n;v:=a[T1];;一.删除公共子表达式〔多余运算〕;二.复写传播;三.删除无用代码;四.代码外提;六.删除归纳变量(图10.4〕;经前述各种优化处理后,最终的中间代码如下:;10.2局部优化;1.求出程序中可做根本块入口的语句,它们是:;3.代数变换:x:=y**2可变换为x:=y*y(强度削弱);二.根本块的DAG表示及其应用;1型:A:=OPB
1、NODE(B)无定义,那么构造叶结点n,NODE(B)=n;
2、假设B为常数,那么计算OPB=P,假设NODE(P)无定义,
那么构造叶结点n,NODE(P)=n,执行0型2。
3、假设B非常数,查有无OPB子树:
有:设NODE(OP)=n,执行0型2;
无:构造n结点OP,执行0型2。;2型:A:=BOPC或A:=B[C]
1、NODE(B)无定义,那么构造叶结点B;
NODE(C)无定义,那么构造叶结点C;
2、假设B,C均为常数,那么计算BOPC=P,假设NODE(P)无
定义,那么构造叶结点n,NODE(P)=n,执行0型2。
3、假设B,C不是常数,查有无BOPC子树:
有:设NODE(OP)=n,执行0型2;
无:构造n结点OP,执行0型2。;8;由该图重写的代码序列如下:;对该根本块还可进行如下优化:;目标代码生成器的位置:;11.1一个简单的代码生成器;那么前述中间码可翻译为:
LD R,B
ADD R,C
ST R,T1
LD R,T1
MUL R,D
ST R,T2
LD R,T2
ADD R,E
ST R,A;为完成上述简化工作,应考虑到:
1、为省略LDR,T1,必须知道T1已在存放器中;
2、为省略STR,T1,必须知道T1在根本块外不用。
文档评论(0)