免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2530 | 回复: 4
打印 上一主题 下一主题

关于优化 pass 的疑问 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:53:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-18 09:44 |只看该作者 |倒序浏览
拿LLVM或者GCC来说,优化的pass有好多种。
各个特性,比如:循环不变外提,常量传播,代数化简等等。。。
(先不考虑过程间的优化)
这些优化的pass并不是简简单单的选择几种组合就算是一个优化级别。

比如有 pass_a pass_b pass_c,在做完pass_a后,再做pass_b和pass_c的组合,
可是完事之后,又有可以被pass_a优化的可能。
就象这样:

while(pass_a(tree) == 有变化)
{
  pass_b(tree);
  pass_c(tree);
}

这只是简单的情况,在100多种pass的时候,这之间的穿插关系我想会极为复杂。

我想问的问题是:有没有 方法 、 理论 或者 标准,说明如何达到某种特定的优化程度?

论坛徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
2 [报告]
发表于 2013-06-18 11:46 |只看该作者
优化pass之间是有联系的,对于一个程序,有时候随机改变下pass顺序,可能会带来性能提升。有一种做法,叫做迭代编译,利用选项组合或者pass排列顺序来调优。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:53:17
3 [报告]
发表于 2013-06-18 13:05 |只看该作者
如果有一个优化程度的目标,奔着这个目标去的话,有没有算法解能找到如何排列和组合已知的pass们呢?

论坛徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
4 [报告]
发表于 2013-06-19 08:49 |只看该作者
关键看你这个“优化程度的目标”怎么定义了,呵呵。

论坛徽章:
0
5 [报告]
发表于 2014-09-27 04:09 |只看该作者
Michael Wolfe, Scalar vs. Parallel Optimizations, 1990
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP