基于LLVM的迭代间数据重用优化研究

来源 :哈尔滨工程大学 | 被引量 : 0次 | 上传用户:hahanikan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着程序设计语言和计算机系统结构的发展,如何对新的语言特性和系统结构进行优化成为现代编译设计的核心。由于“存储墙问题”,循环中数组访问的时间占程序总执行时间的比重通常都比较大。因此,如何更好地优化循环中的数组访问是提升编译性能的关键问题之一。LLVM是目前比较流行的编译器架构,由于在代码优化上的良好表现,越来越多的编译优化研究转向于此框架。但是在处理循环中数组访问时,LLVM所采取的归纳变量优化造成了数组引用计算过于复杂的问题。为了解决此问题,本文提出了一种迭代间数据重用优化算法,以弥补LLVM在循环优化中对数组引用计算的不足。迭代间数据重用优化算法基于LLVM的循环规范化和循环优化处理,用于简化循环中数组访问的地址运算。在该算法的实现过程中,本文结合了归纳变量优化和数组引用标量替换两种优化技术。即在一次循环迭代中,首先对数组引用进行标量替换,将地址变量转化为可识别的归纳变量,使得寄存器分配对数组引用有效;然后对寻址操作进行强度削弱,针对不同体系结构设定不同的归纳变量自增步长,将地址计算转化为简单的标量运算;最后将地址计算结果保存至新的寄存器,以便用于下一次迭代,从而增加数据在循环迭代之间的重用。该优化算法可以有效降低循环体内地址计算的复杂度,再加上LLVM自身的优势,使整个程序的性能得到提升。实验结果表明,在LLVM中加入本文提出的迭代间数据重用优化算法后,与GCC以及添加优化之前的LLVM的对比中,从汇编代码和程序执行时间两个方面验证了该优化算法对于提升程序性能的作用。
其他文献
AES (Advanced Encryption Standard)高级加密标准是NIST (National Institute of Standards and Technology)于2001年公布,用于信息安全领域的数据加解密。AES可以用软件或
本文介绍并分析了现有负荷预测系统模型的优缺点,然后提出了采用数据挖掘技术的负荷预测系统模型。介绍了数据挖掘技术在负荷预测系统中的作用,在数据挖掘技术的选择上,采用了人工神经网络技术。然后采用“批处理”方法改进了BP算法收敛速度慢的缺陷,提高了网络学习效率。接着用改进后的遗传算法结合改进后的BP算法来改善神经网络的局部收敛性,同时采用了模糊理论的知识,对各种数据进行归一化和修正处理,提高了网络的预测
现场总线在现代工业控制领域有着广泛的应用。然而,在工业控制现场,不同时期和不同的环境下安装着支持不同标准的现场总线。在实际应用中常常需要在不同种类的现场总线间进行
随着计算机网络的发展,网络资源的管理越来越重要。分布式系统是网络资源中重要的组成部分,分布式系统的资源管理对分布式系统发展的发展起着重要的促进作用。金融交易系统作
随着信息技术的发展,竞争市场的不断成熟,现代世界经济已逐步步入电子商务时代。以生产为中心、销售产品为目的的市场战略逐步被以客户为中心、服务为目的的市场战略所取代。这
超大规模集成电路的规模不断增加,面对设计规模的急剧膨胀,对于计算机辅助设计软件来说,除了必须首要保证的正确性之外,效率成为一个非常重要的因素。 集成电路(IC)的开发流程
数据挖掘是从大量数据中提取可信的、新颖的、有效的并能被人们理解的模式的高级处理过程。关联规则挖掘用于从大量数据中揭示项集之间的有趣关联或相关联系,是数据挖掘的一项
序列比对是现代生物信息学中一个最基本的研究课题。通过多序列比对,可以预测新序列的结构和功能,分析序列之间的同源关系,以及进行系统发育分析。本文首先介绍了序列比对涉
需求具有不同的抽象层次,用户与程序设计人员对于业务流程的考察角度与层次的不同,增加了系统设计的复杂度;同时,传统意义上的信息系统没有把管理逻辑与应用逻辑区别开来,使得现有
数据挖掘是信息技术自然演化的结果,是摆脱“数据丰富,知识缺乏”困境的有效途径。它是从大量数据中挖掘出有用的知识的一种方法,其应用涉及、金融业、零售业、电行业和生物医学