可以分为本地优化,全局优化,过程间优化
全局优化因为可以拿到多个基本快中的信息,因此会进行*函数整体上的优化,不仅限于顺序执行。 *比如寄存器的图染色算法就用到了这个cfg
可以看到这三个范围越来越大:一个函数里面的一个基本快,一个函数里的多个基本快,多个函数
常见的本地优化场景
基本概念解释: 见上面:专业术语概念解释
删除不可达基本快和子表达式还有常熟折叠,代数优化的原理 是顺序遍历程序指令。
将之前计算过得表达式在后面分析是否还有重复的;
不可达基本快也是根据前面的指令分析永远走不到这个基本快中(比如一直true或者false);
常熟折叠也是分析同样的表达式如果前面计算过就用前面的值。
做法就是顺序遍历指令(如一图的子表达式删除和拷贝传播技术)
如果一个变量在之后的表达式中没有用到那么就是没用的死变量死代码,这种代码存在没有意义因为没有人用它。
因此做法就是倒序遍历,如果这个变量在之前的表达式中出现过那么就意味着用到了这个变量就是活的,反之如果没有出现就是死的需要删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。