程序优化与程序变换方法的研究

被引量 : 0次 | 上传用户:lafang123456
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序优化与变换是编译器领域一个热门的研究问题。本文分别在源代码层次、编译器的抽象语法树层次和编译器的中间表示层次进行研究,为程序优化与变换提供工具和支撑。本文在这三个层次分别提出了:一个C到C/CUDA的程序变换工具DPOET;一个结构体数组分拆工具structTrans;一个针对于堆内存对象的结构分析算法。它们分别能:对程序进行并行化;提高程序的数据局部性;为程序存储优化提供支撑。1、实现一种C到CUDA的程序变换工具程序并行化是程序优化中提高性能的一个重要途径,本文基于程序变换工具POET实现一个脚本驱动的、C程序到C/CUDA程序的变换工具DPOET。使用DPOET对程序进行变换时,用户只需要在DPOET的脚本中贴出模板代码以及其参数化和目的代码。DPOET就可以自动为用户生产POET脚本,调用POET对待变换的程序进行解析,识别出其中可以变换的代码片段,进行变换。使用DPOET进行C到C/CUDA的程序变换非常简单。2、实现结构体数组分拆的工具程序中结构体(特别是结构体数组)的大量使用会降低数据局部性,影响程序的性能。为了提高程序的数据局部性,本文基于编译器LLVM的抽象语法树Clang AST实现了一个结构体数组分拆工具,它能够在保持程序语义不变的情况下,把结构体数组按域进行分拆,分拆成其各个域的数组。3、提出针对堆内存对象的结构分析算法如果对多个堆内存对象进行分离进行存储优化,需要获取它们的结构信息从而判断它们是否相互独立。像C这样语言,由于可以使用指针直接操作内存,程序员可以构造出任意深度的堆内存对象。堆内存对象的具体结构无法直接通过指向它的指针或者指针指向的顶层节点获得,需要对其进行指向分析。为此,本文提出了一种域敏感的、流敏感的、上下文敏感的针对于堆内存对象的结构分析算法。本算法主要分为两个部分:流敏感的、域敏感的过程内分析和上下文敏感的过程间分析。
其他文献
改革开放以来,公共物品供给作为国家建设的重要组成部分,对经济社会发展和居民生活水平的提高有着积极的推动作用。随着市场经济体制逐步的确立,政府公共物品的供给也逐步趋
《古兰经》、圣训是伊斯兰教律法的源头,谈及伊斯兰教的女性观不能略过二者。客观来讲,《古兰经》经文为女性着想关心的地方有36处,而引发对女性轻视的地方只有12处,是3比1的
Software-as-a-service(软件即服务)是云服务的一种,通过互联网向企业和提供云应用的服务。SaaS服务商将软件部署在自己的服务器上,通过租赁的方式给租户提供应用服务。租户
采煤机减速箱用轴齿轮在仓库存放期间发生贯穿性轴向纵裂,采用宏观分析、化学成分分析、力学性能试验、断口分析以及金相检验等方法,并结合轴齿轮具体加工工艺对轴齿轮开裂原
通过基于密度泛函理论和非平衡态格林函数的第一性原理计算,研究了CoFe/Cu/MgAl2O4(001)/CoFe磁性隧道结(MTJ)的隧穿磁电阻(TMR)效应。结果显示,在一个完整的MgAl2O4(001)晶
以城市景观移植原生大树为研究对象,以原生大树的移植前处理,移栽定植及处理,移植后期的养护,树木倒伏后的处理4个方面为基础,构建了景观树木的移栽与抗倒伏技术。
在服装发展的历史长河中牛仔裤_直以来都十分流行,深受各个阶层的青年人们所喜爱,并且在服装业中占得比重逐渐增加,牛仔裤之所以时刻处于服装时尚潮流的顶端,是因为牛仔裤的独特
水下是1个复杂的动态场景,会受到光照、水波和倒影等影响,同时考虑到水下视频智能监控的实时性的要求,由此该文提出了1种快速有效的运动目标检测算法——基于YUV颜色空间的码
网络成瘾已成为当今中国大学生中存在的重要问题,对其成因的研究具有重大的理论及实践的价值。虽然有有限的研究从情感支持的角度来探讨网络成瘾的成因,但并没区分现实与网络
本文采用文献资料法、问卷调查法、数理统计法、逻辑分析法等研究方法,通过就江苏省普通高校体育教育专业羽毛球普修课程的教学大纲的分析研究,就江苏省体育教育专业的羽毛球普