[发明专利]针对结构体成员的重组优化方法在审
申请号: | 201910794733.X | 申请日: | 2019-08-27 |
公开(公告)号: | CN112445479A | 公开(公告)日: | 2021-03-05 |
发明(设计)人: | 漆锋滨;王飞;周文浩;武文浩;朱琪;钱宏;肖谦;吴伟 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 结构 成员 重组 优化 方法 | ||
本发明公开一种针对结构体成员的重组优化方法,包括以下步骤:S11、编译器扫描目标程序中的每个基本块,构建待优化的结构体类型集合;S12、对程序中所有结构体的引用进行分析,从待优化的结构体类型集合中移除不满足优化条件的结构体类型;S13、根据结构体定义、声明以及引用的信息对满足优化条件的结构体的成员进行重组,并将结果记录在sbitmap类型的变量中;S14、根据步骤S13记录的待重组的结构体成员的信息,创建多个新结构体的定义;S15、遍历目标程序的所有基本块,将目标程序中对旧结构体的引用替换为对新结构体的引用,对结构体声明及引用信息进行更新。本发明解决了现有的数据变换技术无法针对结构体成员进行数据重组优化的问题,达到了进一步提升数据Cache性能的效果。
技术领域
本发明涉及一种针对结构体成员的重组优化方法,属于计算机技术领域。
背景技术
处理器和内存之间的速度差距日益增大,使内存访问成为系统主要的性能瓶颈之一,现代计算机体系结构中广泛采用Cache(高速缓存)来缓解这个问题。Cache功能的充分利用很大程度上取决于程序自身的局部性,特别是程序的数据局部性。优化程序数据的布局,改善程序的数据局部性,从而提高数据Cache的性能,已经成为优化程序性能的一种重要方法。
目前主流的编译器在优化程序数据布局,从而提高数据Cache的性能方面的工作主要可以分为两类:一类是代码变换,这类工作主要通过改变程序指令的执行顺序,从而优化程序访问数据的局部性,其难点是需要分析指令之间的依赖关系,且变换复杂,难以保持变换前后的执行语义不变;另一类是数据变换,这类工作主要通过改变数据在内存中的排列顺序,仅优化数据的空间局部性,因此所需的变换也相对较简单。
现有的编译器在优化程序数据布局方面普遍存在着如下缺陷:一方面,循环融合、循环分块和循环交换等代码变换优化方法需要分析指令之间的依赖关系,且变换复杂,难以保持变换前后的执行语义不变;另一方面,数据重组、数据拆分等数据变换优化方法只改变数据在内存中的排列顺序,仅优化数据的空间局部性,能够获得的性能提升空间有限;同时,目前已有的数据变换技术无法针对结构体成员进行数据重组的优化,而结构体类型存在于大量的科学计算程序中,严重影响了程序性能的提升。
发明内容
本发明的目的是提供一种针对结构体成员的重组优化方法,该针对结构体成员的重组优化方法增强了结构体成员的数据局部性,解决了现有的数据变换技术无法针对结构体成员进行数据重组优化的问题,达到了进一步提升数据Cache性能的效果。
为达到上述目的,本发明采用的技术方案是:一种针对结构体成员的重组优化方法,包括以下步骤:
S11、编译器扫描目标程序中的每个基本块,收集目标程序中的结构体定义、声明及引用信息,构建待优化的结构体类型集合;
S12、对步骤S11中构建的结构体类型集合中的所有结构体的引用进行分析,确保引用不依赖于结构体域的特定排布方式,从待优化的结构体类型集合中移除不满足优化条件的结构体类型;
S13、根据步骤S12收集到结构体类型集合中记录的结构体定义、声明以及引用的信息对满足优化条件的结构体的成员进行重组,并将结果记录在sbitmap类型的变量中;
S14、根据步骤S13记录的待重组的结构体成员的信息,创建多个新结构体的定义;
S15、遍历目标程序的所有基本块,将目标程序中对旧结构体的引用替换为对步骤S14创建的新结构体的引用,对结构体声明及引用信息进行更新。
上述技术方案中进一步改进的方案如下:
1. 上述方案中,在S11前,还包括以下步骤:编译器通过插桩手段收集程序运行时各函数代码段的运行信息,包括调用频率、调用关系和运行时间。
2. 上述方案中,在S13中,根据编译器通过插桩手段收集到的程序运行时的各个函数代码段的运行信息,分析结构体的热点成员,将结构体中的热点成员进行剥离,并将结果记录在sbitmap类型的变量中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910794733.X/2.html,转载请声明来源钻瓜专利网。