常见的代码优化技术

常见的代码优化技术有:复写传播,删除死代码, 强度削弱,归纳变量删除

(下面抄几页PPT和别人的博客,QAQ,关键是编译原理没认真学过,咱家不太会。。。)

如果有同学有研究过这部分内容,并总结过,有更好的答案,请联系我删除本篇非原创解答
复写传播:

图片说明

复写语句:形式为f = g 的赋值
    优化过程中会大量引入复写
    复写传播变换的做法是在复写语句f = g后,尽可能用g代表f
    复写传播变换本身并不是优化,但它给其他优化带来机会
        常量合并(编译时可完成的计算)
        死代码删除

死代码删除

死代码是指计算的结果决不被引用的语句
一些优化变换可能会引起死代码

代码外提

代码外提是循环优化的一种
循环优化的其它重要技术
    归纳变量删除
    强度削弱

例:

复制代码
1
2
3
4
	
while(i <= limit - 2) ...
// 代码外提后变成
t = limit - 2;
while(i <= t) ...
归纳变量删除
复制代码
1
2
3
4
	
j = j - 1
t4 = 4 * j
t5 = a[t4]
if t5 > value goto B3
j和t4的值步伐一致地变化,这样的变量叫作归纳变量
在循环中有多个归纳变量时,也许只需要留下一个
这个操作由归纳变量删除过程来完成
对本例可以先做强度削弱,它给删除归纳变量创造机会

强度削弱

强度削弱的本质是把强度大的运算换算成强度小的运算,例如将乘法换成加法运算。

参考资料
某个不知名PPT
《编译原理之代码优化》(By 墨篙和小奶猫)”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值