Fred Chow 讲义--1

来源:互联网 发布:织梦cms调用文章内容 编辑:程序博客网 时间:2024/05/17 23:02
原先发表在百度博客上的,以后技术问题都在此写了。
    
今天还看了下Fred Chow在某学校的讲义,对open64理解多了一点。open64对C和C++使用的是gcc的前端,对Fortran貌似用的是Cray90的前端。
1、在whirl高层做依赖分析,数据流分析和别名分析。在高层做优化的优势是,可以有更多的程序信息可以分析,处理的代码量要小,变量的变化小。在底层做优化的优势是:计算更精确,优化更准确。
2、Very High Whirl 包括 VHO, inline阶段
High Whirl 包括IPA,Pre-opt,LNO,
Middle Whirl 包括WOPT
3、O0 是FE和CG的所有优化都关闭;O2 是打开FE的本地优化,打开WOPT和CG优化; O3 打开LNO
4、DSE(Dead Store Elimination),算法:
(1) 假设所有的赋值都是不活跃的,所有的语句都是不需要的;
(2) 函数中的返回值;有side effect (副作用)的语句;对全局变量的赋值;对这三种情况,假设其语句是需要的
(3) 上述需要语句中的变量都是活跃的
(4) 反向查找,上述变量的定值语句是活跃的;控制依赖的语句是活跃的
5、复写传播 Copy Propagation
根据DU链,对没有phi赋值的变量,用其前面定值处的r.h.s代替。如果r.h.s是一个表达式,则传播此表达式。注意:不准越过相关变量的phi传播;不准越过有对相关变量的赋值进行传播。
原创粉丝点击