部分冗余消除优化的SSA算法研究

来源 :清华大学 | 被引量 : 0次 | 上传用户:eagle453
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
表达式的部分冗余消除(Partial Redundancy Elimination,PRE)优化是非常重要的体系结构无关的编译优化,作为全局的标量优化,它涵括循环不变量外提优化和公共子表达式消除优化。由于安全性的限制,常规部分冗余消除优化不能够完全消除程序中存在的部分冗余,也就不能够最优化程序性能。因此,有必要放松该安全性限制,本文称之为前瞻部分冗余消除优化。静态单点赋值(Static Single Assignment,SSA)形式由于包括内生的使用—定义关系,并且基于SSA的数据流分析复杂性只与问题的规模相关,而不取决于程序自身的规模。所以,现代编译器大多基于SSA形式进行全局的稀疏数据流分析,进而实现全局的标量优化。本论文提出了基于SSA形式的前瞻部分冗余消除最优化算法,包括计算最优和生命期最优。计算最优意味着程序执行时该目标表达式的计算次数最少,而生命期最优是指新引入的变量的活跃范围最短。论文的主要贡献包括:1.给定应用程序剖析信息,首次提出基于SSA形式的最优化前瞻部分冗余消除算法,本文称之为MC-SSAPRE算法。MC-SSAPRE根据目标表达式SSA形式中生成网络流,并得到该流网络的最小切割。本文还详细证明了根据最小切割的代码移动满足计算最优和生命期最优。较之既往的工作,MC-SSAPRE更为高效,因为其基于SSA形式,数据流分析的复杂度从O(N2)降为O(N),并且会生成更精简的网络流;MC-SSAPRE只需要基本快执行频度信息,而不是更为重量级的控制流边的频度信息;同时,由于现代编译器大多采用SSA形式,所以较之基于位向量(bit-vector)的算法,MC-SSAPRE更为实用。我们在开源的path64编译器中实现了MC-SSAPRE算法,实验表明,SPECCPU2006在IntelNehalem平台上性能可平均提高2%以上。2.对于常规部分冗余消除,本文基于网络流的最小切割的模型,提出不同于SSAPRE算法的MF-SSAPRE算法。在实现上,MF-SSAPRE和MC-SSAPRE共用绝大部分的步骤。较之SSAPRE算法而言,该算法更加简单易懂,编译器工程师也更容易实现。
其他文献
与中国的幼儿园教育截然不同,日本的幼儿园教育主要以游戏活动为主,几乎不会接受学科性的专业理论知识教育。日本幼儿园的环境建设极为朴素自然,幼儿们在这样朴素的环境下尽情地
图书馆作为学习的第二课堂,在培养少儿阅读习惯、提高阅读水平、形成社会阅读风气等方面承担着重要职责。阅读能力和兴趣需要从小培养,但由于少儿的阅读能力有限理解能力不高,所
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield
就山岳型旅游风景区生态脆弱性评价方法进行了研究,筛选建立了山岳型旅游风景区生态脆弱性评价指标体系,制定了脆弱性评价标准体系,构建了山岳型旅游风景区生态脆弱度计算公
针对舰空导弹协同制导杀伤区的建立问题,给出了协同制导杀伤区的定义,分析了协同制导杀伤区的影响因素,建立了基于目标与导弹位置关系的协同制导舰空导弹杀伤区计算模型,并在
不久前,北京大学黄宗良教授的论文集《从苏联模式到中国道路》,由北京大学出版社出版了。此书汇集了2004年以来他的四十多篇文章,从苏俄革命直到当代中国,对人们时下关心的许
在地空导弹武器系统的研制中,首先根据需用的杀伤区纵深,确定需用杀伤区远界;根据需用杀伤区远界确定导弹的需用最大有效射程(导弹可用过载大于需用过载的射程)以及雷达(或其
目的:筛选超临界CO2流体萃取藏药绿萝花挥发性成分的最佳工艺,并研究萃取物的降血糖作用。方法:采用正交试验设计,以萃取物得率为指标,考察萃取压力、萃取温度、解析压力及解析温
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield
随着计算机网络技术的快速发展,人们的工作生活已进入了一个全新的信息网络化时代,社会正在向信息网络化、数字化、智能化的时代迈进,传统的手工操作的人事代理档案管理模式面临