`
javatar
  • 浏览: 1708903 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

YanRong完成常量编译期计算优化

    博客分类:
  • HTTL
阅读更多
首先感谢YanRong做出的成果.

以前的版本只做了1+2+b优化成3+b, 但b+2+1因结合律问题未作处理(同优先级操作符从左至右结合,因而无法判断常量计算).
YanRong对此问题进行了解决.

优化:
a*(1+2+b) 优化成 a*(3+b)
a*(1+2*b) 仍然是 a*(1+2*b)
a*1+2+3 优化成 a*1+5
等等

测试后可能会在下一版本加入.
分享到:
评论
2 楼 javatar 2008-02-21  
2+b+1=3+b 还在考虑

指令级优化, 因为第一个if(a=b)内可能有其它内容, 不考虑合并子if.

但会考虑在常量参数时优化, 如: if(true), 延后有空时处理.
1 楼 leadyu 2008-02-21  
能讲讲具体的算法吗?是怎么解决2+b+1=3+b? 表达式解析的时候怎么算?

还有指令级优没优化算法有没什么考虑,比如:

if(a=b){
  if(c=d){
     //do sthing
  }
}

等同于

if(a=b & c=d){
    //do sthing
}


相关推荐

Global site tag (gtag.js) - Google Analytics