基于区域的编译技术和栈寄存器优化

来源 :中国科学院研究生院(计算技术研究所) | 被引量 : 3次 | 上传用户:zhaoml0000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
为了提高指令级并行,编译器必须进行大量的优化。而复杂的编译优化算法需要耗费大量的编译时间和资源。为了减少编译的时间,并且给研究者提供一个灵活的研究平台,同时保证编译性能不受损害,本文提出了一种灵活的区域构造框架。在研究过程中,我们发现RSE(Register Stack Engine)开销在某些程序的运行过程中占有很大的比例,针对这个问题,提出了一种能够有效减少RSE开销提高代码性能的方法。文章的主要贡献有如下几点:1提出了一个新的区域构造框架,作为编译器各优化阶段的统一编译单位。这个区域构造框架是分层次的,其形状和大小可以根据优化阶段的需要灵活控制。控制流图中的所有基本块都至少被一个区域所包含。区域之间是以树状的关系组织在一起。2提出了一个可以参数化设定最大尾复制比率和最小出口概率限制的单入口多出口区域构造算法。实验表明该算法构造的区域对于适应不同的优化阶段以提供足够多的优化机会是非常有效的。3提出了区域属性的概念。区域的属性可以在编译器不同的优化阶段被设定,观察,维护和清除。这些属性对于维护区域前后优化阶段的效果是非常重要的。4提出了一个RSE开销的代价模型;基于这个代价模型,提出了过程间栈寄存器配额分配问题。5基于前述的量化代价模型,给出了一个过程间栈寄存器分配算法。该算法可以有效地减少总的内存访问开销,从而提高程序的执行性能。6提出了一种可重计值活跃区间的优化寄存器分配方法。对于某些可重计值的活跃区间,由于它的定义点的总执行频率大于它的引用点的总执行频率,则它没有被分配到寄存器时,溢出处理会从这些定义点移动到引用点的基本块里去执行,减少了实际执行时的代码执行时间。7上述算法均在ORC编译器中实现,并利用Spec2000Int程序对提出的算法进行了测试,对比了基于区域的编译和基于函数的编译时不同的优化效果。实验结果表明,区域的构造大大地减少了程序的编译时间,同时提高了程序的执行性能。过程间的寄存器分配算法对于RSE开销比较大的程序,性能的提高非常显著。而对于一些RSE开销不是很明显的程序,性能并没有明显的变化,或者略微有所提高。对可重计值活跃区间的优化则对Perlbmk的性能有明显提高。总体而言,程序的执行性能有了比较显著的提高。最后,对以上算法的扩展进行了讨论,提出了可以在未来继续深入研究的问题。随着处理器执行频率的加快,存储优化问题必将越来越受到研究者的重视,
其他文献
中国的耕地面积只占国土面积的12.8%,但是牧草地面积却占了国土面积的27.54%。牧区生态退化、牧业成本攀升、牧民生计困难等"三牧"问题亟待关注和解决。解决"三牧"问题,就要
<正>一、困惑不久前,我听了一节语文公开课,课文是《陈情表》,其教学过程大致可分成如下四个环节:第一环节学生齐读课文。教师要求:一要带着感情诵读;二要思考几个问题:谁在
在近年来微处理器发展的过程中,随着系统频率和复杂度的提升以及移动应用的深入,功耗已成为系统软硬件设计所关心的关键问题。编译技术研究除了追求应用程序运行效率的最优化
<正>我是一位肺癌患者,2002年无意中从《中国养蜂》现《中国蜂业》上看到蜂针、蜂毒能抑制肿瘤,蜂产品能增强体质。这激起了我养蜂的热情,当年就买了几箱。随着蜂群不断发展,
XX地质大队成立于1971年,1984年前为军队编制,1984年后隶属核工业部管辖,为事业单位,所有经费为国家拨款。1989年前XX地质大队仅执行国家计划军品任务,1989年后开始涉足民用
本文根据《国家基础教育课程改革纲要》和《全日制义务教育语文课程标准》(实验稿)等有关课程评价理论的阐述,以新课程课堂教学评价改革的理论思考和实践探索为基础,论述了教学
<正>本课内容是高一政治必修1《经济生活》第三单元第七课第二框的内容。共分两目,第一目"社会公平的重要体现"主要介绍当前我国收入分配是如何实现社会公平的。第二目"处理
1994年11月,《联合国海洋法公约》正式生效,它标志着世界海洋新秩序的诞生,在新的世纪里,海洋事务越来越国际化。岛屿制度作为国际海洋法中一项重要制度,是《公约》的重要内